lambda python

本日の発表でlambdaのpython対応が発表されました。

また、スケジュールイベントの機能も追加され、時間指定でlambdaを実行できます。

今までAPIサーバを構築し、cronにて実行していたようなバッチ処理などが

サーバ無しで実装することが可能になりました。

 

というわけで、試しにAMIを定期的に取得するファンクションを書いてみました。

lambda1

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

lambda2

コードは下記内容を入力します。

import boto3

client = boto3.client('ec2')

def lambda_handler(event, context):
client.create_image(InstanceId='i-xxxxxxxx',Name='test')

lambda3

roleの設定は下記内容を入力します。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:::"
] },
{
"Effect": "Allow",
"Action": "ec2:
",
"Resource": "*"
}
] }

lambda5

 

lambda4

イベントリソースはcronにてご希望の日時を指定出来ます。

?が入っていますが、ちょっと良く分りませんでした。

無いとエラーになってしまいました。。

 

lambda7 lambda9 lambda8

後は実行を待つのみです。

ログはCloudWatchにて確認可能です。

lambda9

 

ローテート、成功確認など未実装ですが、pythonで書けるものは何でも追加出来ます。

 

投稿者プロフィール

スカイブロガー

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.