本日の発表でlambdaのpython対応が発表されました。
また、スケジュールイベントの機能も追加され、時間指定でlambdaを実行できます。
今までAPIサーバを構築し、cronにて実行していたようなバッチ処理などが
サーバ無しで実装することが可能になりました。
というわけで、試しにAMIを定期的に取得するファンクションを書いてみました。

テンプレートは今回使用しないためスキップします。

コードは下記内容を入力します。
import boto3
client = boto3.client('ec2')
def lambda_handler(event, context):
client.create_image(InstanceId='i-xxxxxxxx',Name='test')

roleの設定は下記内容を入力します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:::"
]
},
{
"Effect": "Allow",
"Action": "ec2:",
"Resource": "*"
}
]
}


イベントリソースはcronにてご希望の日時を指定出来ます。
?が入っていますが、ちょっと良く分りませんでした。
無いとエラーになってしまいました。。



後は実行を待つのみです。
ログはCloudWatchにて確認可能です。

ローテート、成功確認など未実装ですが、pythonで書けるものは何でも追加出来ます。
投稿者プロフィール
最新の投稿
AWS2021年12月2日AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
セキュリティ2021年7月14日ゼロデイ攻撃とは
セキュリティ2021年7月14日マルウェアとは
WAF2021年7月13日クロスサイトスクリプティングとは?