AWS CodeBuildでCodeCommitリポジトリのLambdaをデプロイする
前提
AWS CodeCommitに「test」リポジトリ作成済み。
gulpでaws cloudformation packageしてaws cloudformation deployするような仕組みとしている。
"deploy": "gulp --gulpfile gulpfile.js deploy"
このnpm scriptsが実行できればCloudFormationのスタックが作成され、Lambdaが作成される。
今回は、CodeBuildをマネジメントコンソールから「ビルドを開始」でビルドする。
buildspec.yml
npmプロジェクト直下にbuildspec.ymlファイルを作成します。
このファイルをCodeCommitのリポジトリ直下に配置します。
リモートリポジトリ作成されました。
git add buildspec.yml git commit -m "commit" git push origin master
今回はnpm scriptsが実行できればよいのでnpm installしてnode_modulesを作成し、そのあとnpm scriptsを実行しています。
version: 0.2 phases: install: runtime-versions: nodejs: 16.x commands: - npm ci build: commands: - npm run deploy
buildspec.ymlの仕様はコチラ参照ください。
CodeCommitのリポジトリはこんな感じです。node_modulesはありません。
ビルドプロジェクトを作成する
ビルドプロジェクトを作成します。
ロールにアタッチしているポリシーは以下です。
- IAMFullAccess
- AmazonS3FullAccess
- AWSCloudFormationFullAccess
- AWSLambda_FullAccess
aws lambda packageでS3にアップロードされるのでS3へのアクセス、aws cloudformation deployでスタックが作成されるのでCloudFormationへのアクセス、LambdaデプロイするのでLambdaへのアクセス、その際にIAMを作るようなCloudFormationにしている場合はIAMへのアクセスが必要です。
CodeBuild のデフォルトでは、buildspec.yml という名前のファイルがソースコードルートディレクトリで検索されます。buildspec ファイルに別の名前または場所を使用している場合は、ここにソースルートからのパス (buildspec-two.yml や configuration/buildspec.yml など) を入力します。
「ビルドプロジェクトを作成する」をクリックして作成されます。
ビルドを開始
ビルドプロジェクトが作成されたので、ビルドを開始します。
buildspec.ymlに基づいて実行されるだけなので
- npm ci
- npm run deploy
これが実行されるだけです。
2~4分くらいかかりますが、ステータスが成功になればスタック、Lambda作成されます。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント