Github Actions から Lambda をデプロイする
個人のローカル PC からデプロイする場合
- 他の人がデプロイしづらい
- 個人のローカル PC 内のツールのバージョンが変わる
といった問題があり、Lambda や Cloud Functions 等も CI/CD からデプロイできた方が良さそうかもと感じている。
とりあえず、Lambda を Github Actions からデプロイするようにしてみた。
.github/workflows/ci.yml
name: deploy to lambda on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 with: go-version: "1.15" - name: Build binary run: GOOS=linux go build main.go && zip function.zip main - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ap-northeast-1 - name: Deploy AWS Lambda run: aws lambda update-function-code --function-name ラムダ関数名 --zip-file fileb://function.zip
Github Actions 公式、AWS 公式のモノのみでデプロイする形にしたが、こちらを使っても良さそう。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "iam:ListRoles", "lambda:UpdateFunctionCode", "lambda:CreateFunction", "lambda:UpdateFunctionConfiguration" ], "Resource": "*" } ] }