JenkinsからAWS Lambdaをデプロイする


Jenkinsとは

初心者ですが、私の解釈としては自由度の高いCI/CDツールという位置付けです。
実行したい内容をJobという形で登録しておくことで自動で実行してくれます。
今回初めて触ってみたので、忘れないうちにメモしておきます。

手順 

  • コンソールから「新規ジョブ作成」を選択します。

  • そのジョブの中に入り「新規アイテム作成」を選択。
    基本的に一番上のフリースタイルでいいと思います。

  • アイテムの設定をしていきます。
    ソースコード管理ビルドだけ設定すれば今回は動きます。
    ソースコード管理にはgitを選択しました。これによってJenkinsが、設定したレポジトリをcloneしてくれます。

ビルドでは、シェルの実行を選択します。これでシェルスクリプトと同じ操作ができます。

  • シェルスクリプトを書いていく。 このシェルスクリプトが実行されるタイミングでは既にcloneが実行されています。 ※なぜかclone元の親ディレクトリ配下のファイル群が展開されるので注意
script.sh
cd /path/to/lambda_dir
zip -r lambda.zip .
aws aws lambda update-function-code --function-name function-name --zip-file fileb://lambda.zip #function-nameはlambda上の上書き対象の関数名
  • 権限周りで問題が出る場合は、Jenkinsサーバにsshするなりして.aws/credentialsや.aws/configを編集しましょう。
  • 出力は「コンソール出力」から確認できるのでエラーを読みたい場合などはここを確認。