Amazon VPC エンドポイントでlambdaにアクセス

Pocket

Amazon VPC エンドポイントを使ってVPCからlambdaにアクセスするサンプル。

手順

  1. プライベートサブネットにlambdaを呼び出すインスタンを作成
  2. インスタンスにlambdaを実行するロールを付与
  3. lambdaのエンドポイントを作成(サービス:com.amazonaws.ap-northeast-1.lambda)プライベートサブネットに配置
  4. lambdaを作成(関数名はhello-worldにした)
  5. インスタンスからlambdaを呼び出す

エンドポイントを作成

インスタンスにlambdaを実行するロールを付与

  • 許可
  • 信頼関係

許可:

  • AWSLambdaExecute
  • AWSLambdaRole

信頼関係:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

lambdaを作成

ランタイムにNode.js 14.xを選択したときのデフォルトサンプルを使用。
関数名はhello-worldにした。

exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

インスタンスからlambdaを呼び出す

$ aws --region ap-northeast-1 lambda invoke --function-name hello-world response.json

{
    "ExecutedVersion": "$LATEST",
    "StatusCode": 200
}

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。