Amazon DynamoDB を Amazon Virtual Private Cloud (Amazon VPC) の AWS Lambda インスタンスと統合したいと考えています。
前提条件:
次の手順を実行します。
import json import boto3 client = boto3.client('dynamodb') def lambda_handler(event, context): response = client.get_item( TableName='Music', Key={ 'Artist': { 'S': 'No One You Know', }, 'SongTitle': { 'S': 'Call Me Today', }, } ) print(response) return { 'statusCode': 200, 'body': json.dumps('Success!') }
VPC にアタッチされている Lambda 関数をトラブルシューティングするには、以下のアクションを実行します。
Lambda 関数からパブリックサブネットへの接続をすべて削除します。パブリックサブネットに接続した場合は、トラフィックはパブリックサブネットを通過しようとするため、断続的にタイムアウトの問題が発生する可能性があります。
DynamoDB に、ゲートウェイエンドポイントが正しく設定されていることを確認します。
Lambda 関数に関連付けられているプライベートサブネットを更新して、DynamoDB VPC ゲートウェイエンドポイント経由でルーティングします。これらのエンドポイントには、Lambda と DynamoDB 間のセキュリティグループ設定の設定を補助する AWS マネージドプレフィックスリストがあります。 プライベートサブネットルートテーブルの例:
Route Table: rtb-12345 Destination Gateway Status 10.0.0.0/16 local active pl-1234 vpce-1234 active
すべてのトラフィックを許可するように Lambda セキュリティグループのルールを更新します。
コンソールで Lambda 関数を作成する
Amazon VPC エンドポイントを使用して DynamoDB にアクセスする
ネットワークと VPC の設定