

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

# aws-lambda-sns
<a name="aws-lambda-sns"></a>

![](https://docs.aws.amazon.com/ja_jp/solutions/latest/constructs/images/experimental.png)


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

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


|  **言語**  |  **パッケージ**  | 
| --- | --- | 
|  ![](https://docs.aws.amazon.com/ja_jp/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_lambda\_sns  | 
|  ![](https://docs.aws.amazon.com/ja_jp/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-lambda-sns  | 
|  ![](https://docs.aws.amazon.com/ja_jp/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdasns  | 

## Overview
<a name="overview-20"></a>

 この AWS ソリューション構築物は、Amazon SNS トピックに接続された AWS Lambda 関数を実装します。

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

```
import { LambdaToSns, LambdaToSnsProps } from "@aws-solutions-constructs/aws-lambda-sns";

new LambdaToSns(this, 'test-lambda-sns', {
    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'
    }
});
```

## Initializer
<a name="initializer-20"></a>

```
new LambdaToSns(scope: Construct, id: string, props: LambdaToSnsProps);
```

 *パラメータ* 
+  scope[`Construct`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html) 
+  id`string` 
+  props[`LambdaToSnsProps`](#pattern-construct-props-20) 

## パターン構成プロパティ
<a name="pattern-construct-props-20"></a>


|  **名前**  |  **タイプ**  |  **説明**  | 
| --- | --- | --- | 
|  ExistingLambdaObj？  |  [`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Lambda Functionオブジェクトの既存のインスタンス。これとlambdaFunctionPropsはエラーを発生させます。 | 
|  LambdaFunctionProps？  |  [`lambda.FunctionProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  Lambda 関数のデフォルトプロパティを上書きするオプションのユーザー指定のプロパティ。の場合は無視されます。existingLambdaObjが提供される。 | 
|  ExistingTopicobj？  |  [`sns.Topic`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.Topic.html)  |  SNS トピックオブジェクトの既存のインスタンス。これとtopicPropsはエラーを発生させます。 | 
|  TopicProps？  |  [`sns.TopicProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.TopicProps.html)  |  SNS トピックのデフォルトプロパティを上書きするオプションのユーザー指定のプロパティ。 | 
|  既存のVPCかな？  |  [`ec2.IVpc`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  このパターンをデプロイするオプションの既存の VPC。VPC にデプロイされると、Lambda 関数は VPC 内の ENI を使用してネットワークリソースにアクセスし、インターフェイスエンドポイントは Amazon SQS 用の VPC 内に作成されます。既存の VPC が提供されている場合、deployVpcプロパティは、できません。true。これは、を使用します。ec2.IVpcを使用して、クライアントがスタックの外部に存在する VPC を提供できるようにします。[`ec2.Vpc.fromLookup()`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options)メソッド。 | 
|  DeployVPC？  |  boolean  |  に基づいて新しい VPC を作成するかどうかvpcPropsこのパターンを展開します。これをに設定するtrueは、パターンを実行するために、最小限のほとんどのプライベート VPC をデプロイします。+   CDK プログラムによって使用されるアベイラビリティーゾーンごとに 1 つずつ分離されたサブネット。 <br />+   `enableDnsHostnames`および`enableDnsSupport`はどちらも`true`。  このプロパティがtrue、次にexistingVpcは指定できません。デフォルトは false です。 | 
|  vPCProps? |  [`ec2.VpcProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)  |  新しい VPC のデフォルトプロパティを上書きするオプションのユーザー指定のプロパティ。enableDnsHostnames,enableDnsSupport,natGatewaysおよびsubnetConfigurationはパターンによって設定されるため、ここで指定されたプロパティの値はすべて上書きされます。もしdeployVpcではありませんtrueの場合、このプロパティは無視されます。 | 
|  topicArnEnvironmentVariableName  |  string  |  Lambda 関数に設定された SNS トピック ARN 環境変数のオプション名。 | 
|  トピック名環境変数名ですか? |  string  |  Lambda 関数に設定された SNS トピック名環境変数のオプション名。 | 

## パターンプロパティ
<a name="pattern-properties-20"></a>


|  **名前**  |  **タイプ**  |  **説明**  | 
| --- | --- | --- | 
|  LambdaFunction  |  [`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  パターンによって作成された Lambda 関数のインスタンスを返します。 | 
|  snsTopic  |  [`sns.Topic`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sns.Topic.html)  |  パターンによって作成された SNS トピックのインスタンスを返します。 | 
|  vpcかな  |  [`ec2.IVpc`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)  |  パターンによって使用される VPC のインスタンスを返します（存在する場合）。これは、パターンによって作成された VPC、またはパターンコンストラクタに提供された VPC です。 | 

## デフォルト設定
<a name="default-settings-20"></a>

 オーバーライドなしでコンストラクトをすぐに使用すると、次のデフォルトが設定されます。

### AWS Lambda 関数
<a name="aws-lambda-function-12"></a>
+  Lambda 関数の制限付き特権アクセス IAM ロールを設定します。
+  NodeJS Lambda 関数のキープアライブで接続を再利用できるようにします。
+  X-Ray によるトレースを有効にします。
+  環境変数の設定:
  +  `SNS_TOPIC_NAME` (デフォルト)
  +  `SNS_TOPIC_ARN` (デフォルト)
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`（ノード10.x以上の機能の場合）

### Amazon SNS トピック
<a name="amazon-sns-topic"></a>
+  SNS トピックの最小権限アクセス権限を設定します。
+  AWS マネージド KMS キーを使用してサーバー側の暗号化を有効にします。
+  転送時のデータの暗号化を強制する。

## Architecture
<a name="architecture-20"></a>

![](https://docs.aws.amazon.com/ja_jp/solutions/latest/constructs/images/aws-lambda-sns.png)


## GitHub
<a name="github-20"></a>


<table>
<thead>
  <tr><th colspan="2"> <b>このパターンのコードを表示するには、問題を作成/表示し、プル要求などを行います。</b> </th></tr>
</thead>
<tbody>
  <tr><td> <img src="https://docs.aws.amazon.com/ja_jp/solutions/latest/constructs/images/GitHub-Mark-32px.png" alt="" /> </td><td> <a href="https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-sns">@aws-solutions-構築/aws-lambda-sns</a> </td></tr>
</tbody>
</table>
