AWS/Lambda
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
-イベントドリブンで軽い処理をするのに使える
-ライブラリはlayerにして共有化するべし。
*layer [#tc69e31c]
出来合いのものがある!これは便利
https://github.com/keithrozario/Klayers
*Lambda関数のstatusの全体適用について [#q83a4775]
-以前はVPC Lambdaのみ存在したステータスがすべての関数に適...
-最新のAPIを利用していれば特に対応不要
-2021/12/06より全適用
*同時実行数の制限 [#cc38147f]
-リージョンごとに1000で上限緩和申請可能
-上限超えると 429 Too Many Request
-関数ごとに同時実行数を設定でき、0にすると起動しないので...
*環境変数 [#k7453284]
|LAMBDA_TASK_ROOT|lambda実行ディレクトリのパス。画像など...
|PYTHON_PATH|実行時のライブラリ検索パス。いじった場合はla...
*デプロイ [#ye50d0c5]
**Layer [#aaaaf9c6]
***制限 [#t40c114e]
-展開後に250Mbまで
***java [#v5696dde]
lib/*.jarとなるようにアーカイブする
~java/lib/hoge.jar
cd java
zip -r /var/tmp/java_layer.zip lib/*
**本体 [#w3a90362]
*本 [#cb5e5d2d]
**Pythonで作るはじめてのサーバレスアプリケーション [#w677...
-FLask+pynamodb(DynamoDB)
https://github.com/chaingng/serverless_python_tutorial
**ほぼPythonだけでサーバーレスアプリをつくろう [#sc0cb821]
-Chalice AWS謹製のサーバーレス
*後から入れるlibrary [#g2b67218]
|request|
|pytz||
*起動イベント [#c57ecd50]
**CLIから起動 [#lf9c4afe]
https://qiita.com/ekzemplaro/items/7dc187885dffe0be6341
-起動
aws lambda invoke --function-name simple_wget output.txt
-環境変数設定
aws lambda update-function-configuration --function-name...
-環境変数確認
aws lambda get-function-configuration --function-name si...
**CloudWatch events [#webb5109]
1. イベントを定義(aws_cloudwatch_event_rule)
2. イベントに対して実行する関数をターゲット指定(aws_cloud...
**S3 [#t16b0d20]
***S3にPUTされたらLambdaをデプロイするLambda [#oc6794f5]
https://qiita.com/bowz_standard/items/c1856821be19e660f06f
**SQS [#eb09379a]
*terraform deploy [#p7420bb0]
-差分のみデプロイする
https://dev.classmethod.jp/articles/terraform-lambda-depl...
-定期実行
https://qiita.com/ktsujichan/items/c0804f155c2cf1962ed3
*VPC Lambda [#q051ce4e]
-VPCタブで変更できる。
-実行するほうに下記のロールが必要(作成時の権限ではないの...
AWSLambdaVPCAccessExecutionRole
-権限がないと以下のエラーが出てしまう。
The provided execution role does not have permissions to...
-コールドスタートの問題
かつてはENIをコールドスタートしたり、その分ENI&サブネット...
-RDSと相性悪い問題 RDS Proxyで解消
*ローカル開発環境 [#f8ae300a]
**Dockerで実行 [#s445d545]
https://github.com/lambci/docker-lambda
# Test a `lambda_handler` function in `lambda_function.p...
docker run --rm -v "$PWD":/var/task:ro,delegated lambci/...
CentOS7のDockerだとdelegatedオプションがサポートされてな...
**ローカルで実行 [#l3d72e31]
pip install python-lambda-local
echo '{"key1": "test"}' > event.json
python-lambda-local -f lambda_handler lambda_function.py...
**Serverless [#ve30737d]
lambda以外にも対応している
http://momota.github.io/blog/2018/11/05/serverless-framew...
*デプロイ [#dc99b250]
-Zappa
*イベントトリガーの一例 [#id1ab9d1]
|S3へのput|
|SESへの着信|
|Amazon SNS からの通知の送信|
*IAMロールの作成 [#u05482d3]
-ロールlambda作成時に追加することもできるが、Lambdaで触り...
-信頼関係でlambda.aws.comを追加しないとlambdaからロールを...
**EC2のEBS Snapshotを作成削除などを許可するポリシー [#cfc...
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:*"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot",
"ec2:CreateTags",
"ec2:ModifySnapshotAttribute",
"ec2:ResetSnapshotAttribute"
],
"Resource": [
"*"
]
}
]
}
**CloudWatchからElasticSearchServiceへ投入を許可するポリ...
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
},
{
"Effect": "Allow",
"Action": "es:ESHttpPost",
"Resource": "arn:aws:es:*:*:*"
}
]
}
*言語 [#pbe9d568]
*例 [#n628e1d2]
**EBSのバックアップ [#w7ab6143]
https://serverlesscode.com/post/lambda-schedule-ebs-snaps...
https://serverlesscode.com/post/lambda-schedule-ebs-snaps...
上記ページに従い実行した。backupというキーを設定したイン...
まずはlambdaに対しての信頼関係を定義して、lambaで実行する...
*ログ [#q3633345]
- console.log()したものがログストリームに行くらしい。
-通常の出力はどこかへ消える?
*Parameter Storeとの連携 [#c0ed8bd6]
https://qiita.com/hoto17296/items/5f17af9b5261b9f219ee
#counter
終了行:
#contents
-イベントドリブンで軽い処理をするのに使える
-ライブラリはlayerにして共有化するべし。
*layer [#tc69e31c]
出来合いのものがある!これは便利
https://github.com/keithrozario/Klayers
*Lambda関数のstatusの全体適用について [#q83a4775]
-以前はVPC Lambdaのみ存在したステータスがすべての関数に適...
-最新のAPIを利用していれば特に対応不要
-2021/12/06より全適用
*同時実行数の制限 [#cc38147f]
-リージョンごとに1000で上限緩和申請可能
-上限超えると 429 Too Many Request
-関数ごとに同時実行数を設定でき、0にすると起動しないので...
*環境変数 [#k7453284]
|LAMBDA_TASK_ROOT|lambda実行ディレクトリのパス。画像など...
|PYTHON_PATH|実行時のライブラリ検索パス。いじった場合はla...
*デプロイ [#ye50d0c5]
**Layer [#aaaaf9c6]
***制限 [#t40c114e]
-展開後に250Mbまで
***java [#v5696dde]
lib/*.jarとなるようにアーカイブする
~java/lib/hoge.jar
cd java
zip -r /var/tmp/java_layer.zip lib/*
**本体 [#w3a90362]
*本 [#cb5e5d2d]
**Pythonで作るはじめてのサーバレスアプリケーション [#w677...
-FLask+pynamodb(DynamoDB)
https://github.com/chaingng/serverless_python_tutorial
**ほぼPythonだけでサーバーレスアプリをつくろう [#sc0cb821]
-Chalice AWS謹製のサーバーレス
*後から入れるlibrary [#g2b67218]
|request|
|pytz||
*起動イベント [#c57ecd50]
**CLIから起動 [#lf9c4afe]
https://qiita.com/ekzemplaro/items/7dc187885dffe0be6341
-起動
aws lambda invoke --function-name simple_wget output.txt
-環境変数設定
aws lambda update-function-configuration --function-name...
-環境変数確認
aws lambda get-function-configuration --function-name si...
**CloudWatch events [#webb5109]
1. イベントを定義(aws_cloudwatch_event_rule)
2. イベントに対して実行する関数をターゲット指定(aws_cloud...
**S3 [#t16b0d20]
***S3にPUTされたらLambdaをデプロイするLambda [#oc6794f5]
https://qiita.com/bowz_standard/items/c1856821be19e660f06f
**SQS [#eb09379a]
*terraform deploy [#p7420bb0]
-差分のみデプロイする
https://dev.classmethod.jp/articles/terraform-lambda-depl...
-定期実行
https://qiita.com/ktsujichan/items/c0804f155c2cf1962ed3
*VPC Lambda [#q051ce4e]
-VPCタブで変更できる。
-実行するほうに下記のロールが必要(作成時の権限ではないの...
AWSLambdaVPCAccessExecutionRole
-権限がないと以下のエラーが出てしまう。
The provided execution role does not have permissions to...
-コールドスタートの問題
かつてはENIをコールドスタートしたり、その分ENI&サブネット...
-RDSと相性悪い問題 RDS Proxyで解消
*ローカル開発環境 [#f8ae300a]
**Dockerで実行 [#s445d545]
https://github.com/lambci/docker-lambda
# Test a `lambda_handler` function in `lambda_function.p...
docker run --rm -v "$PWD":/var/task:ro,delegated lambci/...
CentOS7のDockerだとdelegatedオプションがサポートされてな...
**ローカルで実行 [#l3d72e31]
pip install python-lambda-local
echo '{"key1": "test"}' > event.json
python-lambda-local -f lambda_handler lambda_function.py...
**Serverless [#ve30737d]
lambda以外にも対応している
http://momota.github.io/blog/2018/11/05/serverless-framew...
*デプロイ [#dc99b250]
-Zappa
*イベントトリガーの一例 [#id1ab9d1]
|S3へのput|
|SESへの着信|
|Amazon SNS からの通知の送信|
*IAMロールの作成 [#u05482d3]
-ロールlambda作成時に追加することもできるが、Lambdaで触り...
-信頼関係でlambda.aws.comを追加しないとlambdaからロールを...
**EC2のEBS Snapshotを作成削除などを許可するポリシー [#cfc...
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:*"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot",
"ec2:CreateTags",
"ec2:ModifySnapshotAttribute",
"ec2:ResetSnapshotAttribute"
],
"Resource": [
"*"
]
}
]
}
**CloudWatchからElasticSearchServiceへ投入を許可するポリ...
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
},
{
"Effect": "Allow",
"Action": "es:ESHttpPost",
"Resource": "arn:aws:es:*:*:*"
}
]
}
*言語 [#pbe9d568]
*例 [#n628e1d2]
**EBSのバックアップ [#w7ab6143]
https://serverlesscode.com/post/lambda-schedule-ebs-snaps...
https://serverlesscode.com/post/lambda-schedule-ebs-snaps...
上記ページに従い実行した。backupというキーを設定したイン...
まずはlambdaに対しての信頼関係を定義して、lambaで実行する...
*ログ [#q3633345]
- console.log()したものがログストリームに行くらしい。
-通常の出力はどこかへ消える?
*Parameter Storeとの連携 [#c0ed8bd6]
https://qiita.com/hoto17296/items/5f17af9b5261b9f219ee
#counter
ページ名: