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

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

この記事は公開されてから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、まだまだ楽しめそうです。