😶🌫️
AWS初心者がGitHub Actionsからsamを使ってlambdaへデプロイする
0. はじめに
前回、localからlambdaへデプロイしました。
今回はGitHub Actionsを使ってlambdaへデプロイします。
1. IAM Identity プロバイダを登録する
こちらが参考になります。
2. IAMロールを登録
こちらが参考になります。
ただし、割り当てるロールは前回のIAMユーザーに割り当てたロールになります。ここで登録したロールのARMは使うのでコピーしておいてください。
3. GitHub Actionsにシークレットを登録する。
これも(ry
4. deploy.ymlを作成
.github/workflows/の下にdeploy.ymlを作成します。
ブランチやディレクトリの設定は適宜変更してください。
name: AWS Lambda Deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: checkout
uses: actions/checkout@v3
- name: configure-aws-credentials
uses: aws-actions/configure-aws-credentials@master
with:
aws-region: ${{ secrets.AWS_REGION }}
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
role-session-name: GitHubActions
- name: get-caller-identity is allowed to run on role.
run: aws sts get-caller-identity
- name: Setup aws-sam
uses: aws-actions/setup-sam@v2
- name: build & deploy
run: |
cd sam-app
sam build
sam deploy
5. samconfig.tomlの修正
そのままの設定だと、GitHub Actions実行中に確認画面(y/nか入力されるやつ)が発生して失敗するのでその設定をOFFにします。
# More information about the configuration file can be found here:
# https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html
version = 0.1
[default]
[default.global.parameters]
stack_name = "sam-app"
[default.build.parameters]
cached = true
parallel = true
[default.validate.parameters]
lint = true
[default.deploy.parameters]
capabilities = "CAPABILITY_IAM"
- confirm_changeset = true
+ confirm_changeset = false
resolve_s3 = true
s3_prefix = "sam-app"
region = "ap-northeast-1"
disable_rollback = true
image_repositories = []
[default.package.parameters]
resolve_s3 = true
[default.sync.parameters]
watch = true
[default.local_start_api.parameters]
warm_containers = "EAGER"
[default.local_start_lambda.parameters]
warm_containers = "EAGER"
これでmainにマージした時にLambdaへデプロイされるようになりました。
Discussion