AWS CLI v2のWizardを使ってLambdaをデプロイした #reinvent

AWS CLI v2で追加になったwizardを用いてLambdaをデプロイしてみました。
2018.11.27

好物はインフラとフロントエンドのかじわらゆたかです。

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、まだまだ楽しめそうです。