はじめに
GCP好きですが、わけあってAWSを使う必要がでてきました。
そんなAWS初心者のメモです。
AWS CLIインストール
macOSの手順は以下にまとめられています。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-mac.html
色々書いていますがユーザーインターフェースを使用したインストールが楽そうだったので、最新バージョンのAWS CLIをダウンロードしてインストールしました。
インストールの検証
以下のコマンドで確かめます。
$ which aws
/usr/local/bin/aws
$ aws --version
aws-cli/2.1.29 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0
AWS CLIのセットアップ
手順は以下にまとめられています。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html
まずアクセスキーIDとシークレットアクセスキーが必要になるため作成します。
IAM→ユーザー→適当なユーザーを選択→認証情報タブ→アクセスキーの作成
をクリックすると作成できます。
次に以下のコマンドでアクセスキーIDとシークレットアクセスキーを設定します。
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAxxxx
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json
Lambda作成
手順は以下にまとめられています。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/gettingstarted-awscli.html
実行ロール作成
aws iam create-role --role-name lambda-ex --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'
ロールにポリシーをアタッチ
AWSLambdaBasicExecutionRole
というCloudWatchにログを書き込むポリシーをアタッチします。
aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
関数を作成
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
デプロイパッケージを作成
zip test.zip test.py
Lambda関数を作成
--function-name
で関数名を指定し、
--zip-file
でzipファイル名を指定し、
--handler
でファイル名+ピリオド+実行する関数名を指定し、
--runtime
でランタイムを指定し、
--role
で先ほど作成したロールを指定します。
123456789012
の部分はアカウントIDを指定してください。
aws lambda create-function --function-name test4 \
--zip-file fileb://test.zip --handler test.lambda_handler --runtime python3.9 \
--role arn:aws:iam::123456789012:role/lambda-ex
Lambdaの確認
以下のように作成されています。