CodeBuild × Node.js
事前準備
- CodeBuildを構築する前に以下の設定を実施
- ビルドしたファイルをS3に保存する為のS3を作成
- VPCへのアクセスの為にSubnetにNATを設定
- なお、CodeBuild構築中に「サービスロール」の作成も実施される為、作成するユーザのIAMのアクセス権に「IAMFullAccess」も必要
配置用S3作成
名前とリージョン
バケット名 | リージョン |
---|---|
example-codebuild-output | アジアンパシフィック(東京) |
プロパティ設定
バージョニング | サーバアクセスのログ記録 | Tags | オブジェクトレベルのログ記録 | デフォルト暗号化 |
---|---|---|---|---|
無効 | 無効 | 0 Tags | 無効 | 無効 |
※デフォルト
アクセス許可の設定
- ユーザを管理
ユーザID | オブジェクト | オブジェクトへのアクセス許可 |
---|---|---|
gpl_example_ml(所有者) | 読み込み書き込み | 読み込み書き込み |
他のAWSアカウントのアクセス
アカウント | オブジェクト | オブジェクトへのアクセス許可 |
---|---|---|
なし | なし | なし |
パブリックアクセス許可を管理
このバケットにパブリック読み取りアクセス権限を付与しない(推奨) |
システムのアクセス許可の管理
Amazon S3 ログ配信グループにこのバケットへの書き込み権限を付与しない |
NAT設定
NATゲートウェイ作成
- PublicサブネットにNATゲートウェイを作成
サブネット | Elastic IP割り当てID | Name | NATゲートウェイID |
---|---|---|---|
subnet-xxxxxx | example-public-subnet | eipalloc-xxxxxxxx(EIPの作成ボタンから作成) | example-nat-gateway |
ルートテーブルへのNATゲートウェイ追加
- VPC作成時にデフォルトで作成されたルートテーブルのルートに上記作成したNATゲートウェイを追加
送信先 | ターゲット |
---|---|
0.0.0.0/0 | nat-xxxxxxxxxxxxxxx |
CodeBuild設定
ビルドプロジェクト作成
- CodeBuild設定は、Gulpでのjs及びcss生成目的
大項目 | 中項目 | 設定値 |
---|---|---|
プロジェクトの設定 | プロジェクト名 | example-xxxxxx-codebuild |
ソースビルド:対象 | ソースプロバイダ | AWS CodeCommit |
リポジトリ | example-xxxxxx-repository | |
バッチ | なし | |
環境:ビルド方法 | 環境イメージ | AWS CodeBuild によって管理されたイメージの使用 |
オペレーティングシステム | Ubuntu | |
ランタイム | Node.js | |
ランタイムバージョン | aws/codebuild/nodejs:7.0.0 | |
特権付与 | チェックしない | |
ビルド仕様 | ソースコードのルートディレクトリのbuildspec.ymlを使用 | |
buildspec名 | buildspec.yml | |
アーティファクト | タイプ | Amazon S3 |
名前 | example-xxxxxx-codebuild_artifact.zip | |
パス | なし | |
名前空間のタイプ | ビルドID | |
バケット名 | example-xxxxxx-codebuild-output | |
キャッシュ | タイプ | |
サービスロール | アカウントでサービスロール作成 | |
ロール名 | codebuild-example-xxxxxx-codebuild-service-role | |
VPC | VPC | vpc-xxxxxxxx |
サブネット | 複数選択可 | subnet-xxxxx ,ap-northeast-1a ,example-private-subnet-1 |
サブネット | 複数選択可 | subnet-yyyyy ,ap-northeast-1c ,example-private-subnet-2 |
サブネット | ※NATインターフェースを設定したルートテーブルにあるサブネットを設定する | |
セキュリティーグループ | 以下を選択(複数選択可) | |
sg-xxxxxxxxxx | default | |
sg-yyyyyyyyyy | example-web-sg | |
詳細設定 | ほぼデフォルト設定のまま(パッケージングだけZipに変更) | |
ビルドタイムアウト | 60分 | |
暗号化キー | デフォルトキー | |
パッケージング | Zip | |
コンピューティングタイプ | 3GBメモリ、2vCPU | |
バッチ | 無効 |
buildspec.yml作成
- buildspec.ymlファイルを作成 CodeCommitリポジトリのルートフォルダに格納
version: 0.1
phases:
install:
commands:
- npm install -g gulp
pre_build:
commands:
- npm install
build:
commands:
- echo Build started on `date`
- node -v
- npm -v
- gulp -v
- echo Compiling the js and css code
- gulp build
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- 'app/**/*'
- 'common/**/*'
- 'etc/**/*'
- 'appspec.yml'
関連
Author And Source
この問題について(CodeBuild × Node.js), 我々は、より多くの情報をここで見つけました https://qiita.com/ezaqiita/items/ddbed9fd7939a28ee93f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .