misc.tech.notes

主に技術的な雑記的な

Lamveryが速攻でLambdaのVPCサポートに対応したぞ!

本題

念願の(?)LambdaのVPCサポートが来ましたね!

aws.typepad.com

これはもうすぐにでも使いたいやつなので、速攻で対応しました。

github.com

v0.12.0~対応済みとなっております。

他にも随時機能が増えたりしてるので、以下の記事やREADMEをご確認ください。

qiita.com

github.com

設定ファイルはこんな感じ

vpc_config以下が該当部分です。
今後、SecurityGroupとかIDじゃなくて名前で解決できるようにしたい。

profile: private
region: us-east-1
versioning: true
default_alias: test
configuration:
  name: lamvery-test
  runtime: python2.7
  role: {{ env['AWS_LAMBDA_ROLE'] }}
  handler: lambda_function.lambda_handler
  description: This is sample lambda function.
  timeout: 10
  memory_size: 128
  vpc_config:
    subnets:
    - subnet-cadf2993
    security_groups:
    - sg-4d095028

補足

VPC内でのLambdaの起動(や削除等も含めた諸々)にはENIに関する権限が必要になります。
以下の様なIAM Role Policyの設定が必要です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeNetworkInterfaces",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:AttachNetworkInterface",
                "ec2:DetachNetworkInterface"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:<region>:<account-number>:key/<key-id>"
            ]
        }
    ]
}

最速だろコレは!