【Python で AWS を操る】AMI の作成

記事タイトルとURLをコピーする

こんにちは、山中です。 AWS Lambda でとりあえずサクッと AWS の各種サービスを動かすプログラムを載せています。
※ 正常系のみ (エラー処理などは書いていない) なので、あくまで検証環境で試すことを想定しています。

今回は AWS Lambda で EC2 インスタンスの AMI を取得するプログラムです。

コード

import boto3

client = boto3.client('ec2')

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

i-xxxxxxxxxxxxxxxxx 部分をイメージを取得したいインスタンスのインスタンス ID に置き換える

その他設定

AWS Lambda の環境

項目 設定値
ランタイム Python 3.9
アーキテクチャ x86_64

必要なポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "action",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "*"
        }
    ]
}

CloudWatch Logs にログを出力する場合は、以下

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

参考