aws-lambda-dynamodb - AWS ソリューション構造

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

aws-lambda-dynamodb

すべてのクラスは積極的に開発されており、将来のバージョンでは下位互換性がない変更または削除の対象となります。これらは、セマンティックバージョン管理モデル。つまり、これらのパッケージを使用するかもしれませんが、このパッケージの新しいバージョンにアップグレードするときにソースコードを更新する必要があるかもしれません。

注意: 正しく機能するためには、プロジェクト内の AWS ソリューション構築パッケージと AWS CDK パッケージが同じバージョンである必要があります。

言語 パッケージ
Python
aws_solutions_constructs.aws_lambda_dynamodb
TypeScript
@aws-solutions-constructs/aws-lambda-dynamodb
Java
software.amazon.awsconstructs.services.lambdadynamodb

Overview

この AWS ソリューション構成では、AWS Lambda 関数と Amazon DynamoDB テーブルが最小限の権限で実装されています。

TypeScript の最小限のデプロイ可能なパターン定義は次のとおりです。

import { LambdaToDynamoDBProps, LambdaToDynamoDB } from '@aws-solutions-constructs/aws-lambda-dynamodb'; const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { runtime: lambda.Runtime.NODEJS_14_X, // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' } }; new LambdaToDynamoDB(this, 'test-lambda-dynamodb-stack', props);

Initializer

new LambdaToDynamoDB(scope: Construct, id: string, props: LambdaToDynamoDBProps);

パラメータ

パターン構成プロパティ

名前 タイプ 説明
ExistingLambdaObj? lambda.Function Lambda Functionオブジェクトの既存のインスタンス。これとlambdaFunctionPropsはエラーを発生させます。
LambdaFunctionProps? lambda.FunctionProps Lambda 関数のデフォルトプロパティを上書きするオプションのユーザー指定のプロパティ。の場合は無視されます。existingLambdaObjが提供される。
DynamoTableProps? dynamodb.TableProps DynamoDB テーブルのデフォルトのプロップを上書きするオプションのユーザー提供の小道具
ExistingTableObj? dynamodb.Table DynamoDB テーブルオブジェクトの既存のインスタンス。これとdynamoTablePropsはエラーを発生させます。
テーブルパーミッション? string Lambda 関数に付与されるオプションのテーブルパーミッション。以下のいずれかのオプションを指定できます。All,Read,ReadWrite, またはWrite
表環境変数名ですか? string Lambda 関数に設定された DynamoDB テーブル環境変数のオプション名。
既存のVPCかな? ec2.IVpc このパターンをデプロイするオプションの既存の VPC。VPC にデプロイされると、Lambda 関数は VPC 内の ENI を使用してネットワークリソースにアクセスし、ゲートウェイエンドポイントは Amazon DynamoDB 用の VPC 内に作成されます。既存の VPC が提供されている場合、deployVpcプロパティをtrue。これはec2.IVpcを使用して、クライアントがスタックの外部に存在する VPC を提供できるようにします。ec2.Vpc.fromLookup()方法。
vPCProps? ec2.VpcProps 新しい VPC のデフォルトプロパティを上書きするオプションのユーザー指定のプロパティ。enableDnsHostnames,enableDnsSupport,natGateways, およびsubnetConfigurationはパターンによって設定されるため、ここで指定されたプロパティの値はすべて上書きされます。もしdeployVpcではありませんtrueの場合、このプロパティは無視されます。
DeployVPC? boolean に基づいて新しい VPC を作成するかどうかvpcPropsこのパターンを展開します。これをtrueに設定すると、パターンを実行するために最小限のほとんどのプライベート VPC がデプロイされます。
  • CDK プログラムで使用される各アベイラビリティーゾーン内の 1 つに分離されたサブネット

  • enableDnsHostnamesおよびenableDnsSupportはどちらもtrue

このプロパティがtrue、次にexistingVpcは指定できません。デフォルトは false です。

パターンプロパティ

名前 タイプ 説明
ダイナモテーブル dynamodb.Table パターンによって作成された DynamoDB テーブルのインスタンスを返します。
LambdaFunction lambda.Function パターンによって作成された Lambda 関数のインスタンスを返します。
vpcay ec2.IVpc パターンによって使用される VPC 上のインターフェイスを返します(存在する場合)。これは、パターンによって作成された VPC、またはパターンコンストラクタに提供された VPC です。

デフォルト設定

オーバーライドなしでこのパターンをすぐに実装すると、次のデフォルトが設定されます。

AWS Lambda 関数

  • Lambda 関数の制限付き特権アクセス IAM ロールを設定します。

  • NodeJS Lambda 関数のキープアライブで接続を再利用できるようにします。

  • X-Ray によるトレースを有効にします。

  • 環境変数の設定:

    • DDB_TABLE_NAME (デフォルト)

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(ノード10.x以上の機能の場合)

Amazon DynamoDB テーブル

  • DynamoDB テーブルの請求モードをオンデマンドに設定します(リクエストごとの支払い)。

  • AWS マネージド KMS キーを使用して DynamoDB テーブルのサーバー側の暗号化を有効にします。

  • DynamoDB テーブルの 'id' という名前のパーティションキーを作成します。

  • CloudFormation スタックを削除するときに、テーブルを保持します。

  • 継続的なバックアップとポイントインタイムリカバリを可能にします。

Architecture

GitHub

このパターンのコードを表示するには、問題を作成/表示し、プル要求などを行います。
@aws-ソリューション-構築/aws-lambda-dynamodb