GitHub Actionsを使ってNodeJSのaws-lambdaをデプロイする
前回の内容
こちらで作ったコードを少し参考にする。
ちなみに、バージニア北部で作っちゃったので、東京で作り直してます。
これがデプロイの設定の時に関係するので、ap-northeast-1で作るようにします。
デプロイする内容を作成
Lambdaにデプロイする内容を作っていきます。
以下ディレクトリでやります。
/mnt/c/root/work/learn/AWS/lambda/github-actions-aws-lambda-sample#
前回作成したlambdaの内容を生かすというか、どうレスポンスを返すかというのを確認します。
っでめちゃくちゃシンプルにhello worldだけ返すようにします。
const responseBody = "hello world"
/**
* Returns an HTML page containing an interactive Web-based
* tutorial. Visit the function URL to see it and learn how
* to build with lambda.
*/
exports.handler = async (event) => {
const response = {
statusCode: 200,
headers: {
'Content-Type': 'text/html',
},
body: responseBody,
};
return response;
};
workflowsを作成
# ディレクトリ作成
mkdir -p .github/workflows
# ファイル作成
deploy.yml
GitHub Actionsについてのお作法とかについては後日ということで、とりあえず以下内容をdeploy.ymlに書けばOKです。
バージニアから東京で作り直したのは、aws-region:
ap-northeast-1
の部分が関係するからでした。これのせいで少しはまった。
name: lambda-deployment-with-github-action
on:
push:
branches:
- main
jobs:
deploy_lambda:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '14'
- 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
# 今回はnpm使わないのでとりあえずここの部分はなしで。
#- name: npm install
# env:
# CI: true
# run: |
# npm ci
- name: deploy
run: |
zip -j deploy.zip ./*
aws lambda update-function-code --function-name=myFirstLambda --zip-file=fileb://deploy.zip
aws lambda update-function-codeでzip化したソースを渡しています。
npm使って依存関係解消するような時は、/distを圧縮してアップする感じでしょう。
Secretsを登録する
aws lambda update-function-codeするために、aws側のアクセスキーとかを登録する必要があります。githubの設定からやっていきます。
以下の内容で追加
デプロイ用で新規IAMを作るのがお勧めです。
ディスカッション
コメント一覧
まだ、コメントがありません