✨
AWS CodePipeline CodeDeploy CodeDeploy触ってみた
はじめに
AWS Certified DevOps Engineer - Professionalの勉強中にCodeシリーズが出てきたので、 AWS公式のチュートリアルに沿って学習しました。 その手順を記録しておきます。
GitHub https://github.com/goda-kazuki/codepipeline-serverless
AWS SAM
準備
AWS SAM CLIのインストール https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-install-mac.html
重要なファイル
- template.yaml
- SAMリソースを定義
- hello_world/app.py
- Lambdaハンドラーロジック
- hello_world/requirements.txt
- 依存関係の定義。
-
sam build
時に利用
メモ
-
sam build
- .aws-samディレクトリに依存関係を解消したものを配置
- 要らないディレクトリも生成されている(Python経験が無いだけで、必要なのかも)
-
sam deploy --guided
- guidedはCLIのプロンプトガイドを表示するオプション
- 裏ではCloudFormationが動いてるっぽい
-
aws cloudformation delete-stack --stack-name sam-app --region region
- クリーンアップ
CodePipeline
やったこと
- パイプラインの作成
- ソースステージをGitHubにして接続
- CodeBuildの設定
- S3にzipファイルが出力されていることを確認
- CodeDeployの設定
- Lambdaにデプロイされることを確認
- おまけ
- SNSでデプロイされたら通知してみる
メモ
資料にちゃんと書いてくれてるのに、勝手に詰まってたポイント
-
CodeBuild
- buildspec.ymlに
template.yml
と指定してたが、正しくはtemplate.yaml
だったので、エラーでコケてた。 - ビルドする際に、S3に出力されるが、IAMロールに権限を追加する必要がある
- buildspec.ymlに
-
CodeDeploy
-
既存のLambdaにデプロイしようとすると、デプロイが完了しなかった。
-
メタデータをtemplate.yamlに記入しないとデプロイできないようなので、以下を記載
Metadata: AWS::ServerlessRepo::Application: Name: codepipeline-serverless Description: hello world Author: goda
-
Discussion