この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
好物はインフラとフロントエンドのかじわらゆたかです。
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で圧縮しました。
lambda_function.py
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、まだまだ楽しめそうです。