AWS CLI v2のWizardを使ってLambdaをデプロイした #reinvent
好物はインフラとフロントエンドのかじわらゆたかです。
AWS CLI v2のこの機能良かったですよって同僚に話したら、 レポートブログ楽しみにしています!!と言われたので、 その内容を記載したいと思います。
AWS CLI wizard
望月のブログでも書かれていますが、AWS CLI v2にはインタラクティブなプロンプトを提供するWizardという機能が実装されました。
これを用いてLambdaに付与するIAM Roleを作成し、 作成たIAM Roleを使うLambdaをデプロイしていきます。
IAMRoleの作成
AWS CLI v2には各コマンドにWizardというコマンドが付与されていたりします。 例えば、IAMRoleの作成は以下のようになります。
aws iam wizard new-role
上記のように入力することで、Roleを作成するWizardが起動します。
今回は、AWS Serviceを選択します。 今回では扱いませんが、クロスアカウントで用いるRoleも作成できる模様です。
Lambdaに付与するRoleを作成したいので、 AWS Lambdaを選択します。
付与するPolicyを選択します。
ここでは、S3FullAccess
を選択しました。
作成したRoleを参照するProfileを設定するかを聞かれているので、Noを選択します。
Role名と説明を設定します。
上記の流れを経て、CLIからWizardでRoleが作成されました。
上記のようにWizardを進んでいくと、IAM Roleが作成されたことが確認できます。
LambdaのDeploy
Lambda用のPythonコードを作成し、zipで圧縮しておきます。 以下のようなコードを作成し、zipで圧縮しました。
import json def lambda_handler(event, context): # TODO implement return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }
$ zip lambda_function ./lambda_function.py
次に、AWS CLI v2を用いて、Lambdaをデプロイしていきます。
$ aws lambda wizard new-function Enter the function name: cm-kajiwara-hello-world-aws-cli-v2
最後にCLIから実行してみます。
$ aws lambda invoke --function-name cm-kajiwara-hello-world-aws-cli-v2 ./output { "StatusCode": 200, "ExecutedVersion": "$LATEST" }
CLI経由でデプロイしたLambdaが実行されたことが確認できました。
まとめ
IAM Roleの作成や、LambdaのデプロイをCLIからWizardに沿って行えるのは、何をやっているかわからないCLIのオプションの羅列とはことなり、 作業内容を意識しながら作業ができそうな印象です。
AWS CLI v2、まだまだ楽しめそうです。