

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

# AWS Event Fork Pipelines を Amazon SNS トピックにサブスクライブする
<a name="sns-subscribe-event-fork-pipelines"></a>

イベント駆動型アプリケーションの開発を加速するには、Event Fork Pipelines を搭載した AWS イベント処理パイプラインを Amazon SNS トピックにサブスクライブできます。 AWS Event Fork Pipelines は、[AWS Serverless Application Model](https://aws.amazon.com/serverless/sam/) (AWS SAM) に基づくオープンソースの[ネストされたアプリケーションの](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html)スイートです。[AWS Event Fork Pipelines スイート](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (**カスタム IAM ロールまたはリソースポリシーを作成する Show アプリケーション**を選択) から AWS アカウントに直接デプロイできます。詳細については、「[AWS Event Fork Pipelines の仕組み](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works)」を参照してください。

このセクションでは、 を使用してパイプライン AWS マネジメントコンソール をデプロイし、 AWS Event Fork Pipelines を Amazon SNS トピックにサブスクライブする方法について説明します。開始する前に、[Amazon SNS トピック](sns-create-topic.md)を作成します。

パイプラインを構成するリソースを削除するには、 AWS Lambda コンソールの の**アプリケーション**ページでパイプラインを見つけ、**SAM テンプレートセクション**を展開し、**CloudFormation スタック**を選択し、**その他のアクション**、**スタックの削除**を選択します。

# イベントのストレージとバックアップパイプラインを Amazon SNS にデプロイしてサブスクライブする
<a name="deploy-event-storage-backup-pipeline"></a>


|  | 
| --- |
| イベントのアーカイブと分析のために、Amazon SNS は Amazon Data Firehose とのネイティブ統合の使用を推奨するようになりました。Firehose 配信ストリームを SNS トピックにサブスクライブできます。これにより、Amazon Simple Storage Service (Amazon S3) バケット、Amazon Redshift テーブル、Amazon OpenSearch Service (OpenSearch Service) などのアーカイブと分析エンドポイントへ通知を送信することができます。Firehose 配信ストリームで Amazon SNS を使用するのは、フルマネージド型のコードレスソリューションであり、 AWS Lambda 関数を使用する必要はありません。詳細については、「[Firehose 配信ストリームへのファンアウト](sns-firehose-as-subscriber.md)」を参照してください。 | 

このページでは、[イベントのストレージおよびバックアップパイプライン](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline)をデプロイして Amazon SNS トピックにサブスクライブする方法を説明します。このプロセスは、パイプラインに関連付けられた AWS SAM テンプレートを自動的に CloudFormation スタックに変換し、スタックを にデプロイします AWS アカウント。また、このプロセスでは、イベントのストレージおよびバックアップパイプラインを構成する、以下のようなリソースのセットを作成して設定します。
+ Amazon SQS キュー
+ Lambda function
+ Firehose 配信ストリーム
+ Amazon S3 バックアップバケット

Amazon S3 バケットを送信先としてストリームを設定する方法の詳細については、「*Amazon Data Firehose API リファレンス*」の「`[S3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_S3DestinationConfiguration.html)`」を参照してください。

イベントの変換、イベントバッファ処理の設定、イベント圧縮の設定、およびイベント暗号化の設定の詳細については、「*Amazon Data Firehose デベロッパーガイド*」の「[配信ストリームの作成](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)」を参照してください。

イベントのフィルター処理の詳細については、このガイドの「[Amazon SNS サブスクリプションフィルターポリシー](sns-subscription-filter-policies.md)」を参照してください。

1. [AWS Lambda コンソール](https://console.aws.amazon.com/lambda/) にサインインします。

1. ナビゲーションパネルで [**関数**] を選択し、[**関数の作成**] を選択します。

1. [**関数の作成**] ページで、次の操作を実行します。

   1. [**サーバーレスアプリケーションリポジトリ**の参照]、**[パブリックアプリケーション]**、**[カスタム IAM ロールまたはリソースポリシーを作成するアプリケーションの表示] を選択します**。

   1. `fork-event-storage-backup-pipeline` を検索し、このアプリケーションを選択します。

1. [**fork-event-storage-backup-pipeline**] ページで、以下の操作を行います。

   1. [**アプリケーション設定**] セクションで、[**アプリケーション名**] に名前 (`my-app-backup` など) を入力します。
**注記**  
名前は、デプロイごとに一意にする必要があります。アプリケーション名を再利用すると、デプロイは (新しいスタックを作成するのではなく) 以前にデプロイされた CloudFormation スタックのみを更新します。

   1. (オプション) **[BucketArn]** に、着信イベントのロード先となる Amazon S3 バケットの ARN を入力します。値を入力しない場合、 AWS アカウントに新しい Amazon S3 バケットが作成されます。

   1. (オプション) [**DataTransformationFunctionArn**] に、着信イベントを変換する Lambda 関数の ARN を入力します。値を入力しないと、データ変換は無効になります。

   1. (オプション) アプリケーションの Lambda 関数の実行のためも以下の **LogLevel** 設定のいずれかを入力します。
      + `DEBUG`
      + `ERROR`
      + `INFO` (デフォルト)
      + `WARNING`

   1. [**TopicArn**] に、このフォークパイプラインのインスタンスをサブスクライブする Amazon SNS トピックの ARN を入力します。

   1. (オプション) [**StreamBufferingIntervalInSeconds**] および [**StreamBufferingSizeInMBs**] に、着信イベントのバッファ処理を設定するための値を入力します。値を入力しないと、300 秒と 5 MB が使用されます。

   1. (オプション) 着信イベントを圧縮する形式として次の [**StreamCompressionFormat**] 設定のいずれかを入力します。
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (デフォルト)
      + `ZIP`

   1. (オプション) **[StreamPrefix]** に、Amazon S3 バックアップバケットに保存されているファイルを指定するための文字列プレフィックスを入力します。値を入力しないと、プレフィックスは使用されません。

   1. (オプション) [**SubscriptionFilterPolicy**] に、着信イベントをフィルター処理するために使用する Amazon SNS サブスクリプションフィルターポリシーを JSON 形式で入力します。フィルターポリシーは、OpenSearch Service インデックスでインデックスを作成するイベントを決定します。値を入力しないと、フィルター処理は使用されません (すべてのイベントにインデックスが作成されます)。

   1. (オプション)**SubscriptionFilterPolicyScope** には、文字列 `MessageBody` または `MessageAttributes` を入力して、ペイロードベースまたは属性ベースのメッセージフィルタリングを有効にします。

   1. [**I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications.**] を選択して、[**デプロイ**] を選択します。

[***my-app* のデプロイステータス**] ページに、Lambda によって **[Your application is being deployed**] ステータスが表示されます。

**リソース**セクションで、スタックの作成 CloudFormation を開始し、各リソースの **CREATE\$1IN\$1PROGRESS** ステータスを表示します。プロセスが完了すると、 は **CREATE\$1COMPLETE** ステータス CloudFormation を表示します。

デプロイが完了すると、Lambda によって [**アプリケーションはデプロイ済みです**] ステータスが表示されます。

Amazon SNS トピックに発行されたメッセージは、イベントのストレージおよびバックアップパイプラインによってプロビジョニングされた Amazon S3 バックアップバケットに自動的に保存されます。

# イベントの検索および分析パイプラインを Amazon SNS にデプロイしてサブスクライブする
<a name="deploy-event-search-analytics-pipeline"></a>


|  | 
| --- |
| イベントのアーカイブと分析のために、Amazon SNS は Amazon Data Firehose とのネイティブ統合の使用を推奨するようになりました。Firehose 配信ストリームを SNS トピックにサブスクライブできます。これにより、Amazon Simple Storage Service (Amazon S3) バケット、Amazon Redshift テーブル、Amazon OpenSearch Service (OpenSearch Service) などのアーカイブと分析エンドポイントへ通知を送信することができます。Firehose 配信ストリームで Amazon SNS を使用するのは、フルマネージド型のコードレスソリューションであり、 AWS Lambda 関数を使用する必要はありません。詳細については、「[Firehose 配信ストリームへのファンアウト](sns-firehose-as-subscriber.md)」を参照してください。 | 

このページでは、[イベントの検索および分析パイプライン](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline)をデプロイして Amazon SNS トピックにサブスクライブする方法を示します。このプロセスは、パイプラインに関連付けられた AWS SAM テンプレートを自動的に CloudFormation スタックに変換し、スタックを にデプロイします AWS アカウント。また、このプロセスでは、イベントの検索および分析パイプラインを構成する、以下のようなリソースのセットを作成して設定します。
+ Amazon SQS キュー
+ Lambda function
+ Firehose 配信ストリーム
+ Amazon OpenSearch Service ドメイン
+ Amazon S3 配信不能バケット

インデックスを送信先としてストリームを設定する方法の詳細については、「*Amazon Data Firehose API リファレンス*」の「`[ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html)`」を参照してください。

イベントの変換、イベントバッファ処理の設定、イベント圧縮の設定、およびイベント暗号化の設定の詳細については、「*Amazon Data Firehose デベロッパーガイド*」の「[配信ストリームの作成](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)」を参照してください。

イベントのフィルター処理の詳細については、このガイドの「[Amazon SNS サブスクリプションフィルターポリシー](sns-subscription-filter-policies.md)」を参照してください。

1. [AWS Lambda コンソール](https://console.aws.amazon.com/lambda/) にサインインします。

1. ナビゲーションパネルで [**関数**] を選択し、[**関数の作成**] を選択します。

1. [**関数の作成**] ページで、次の操作を実行します。

   1. [**サーバーレスアプリケーションリポジトリ**の参照]、**[パブリックアプリケーション]**、**[カスタム IAM ロールまたはリソースポリシーを作成するアプリケーションの表示] を選択します**。

   1. `fork-event-search-analytics-pipeline` を検索し、このアプリケーションを選択します。

1. [**fork-event-search-analytics-pipeline**] ページで、以下の操作を行います。

   1. [**アプリケーション設定**] セクションで、[**アプリケーション名**] に名前 (`my-app-search` など) を入力します。
**注記**  
名前は、デプロイごとに一意にする必要があります。アプリケーション名を再利用すると、デプロイは (新しいスタックを作成するのではなく) 以前にデプロイされた CloudFormation スタックのみを更新します。

   1. (オプション) **[DataTransformationFunctionArn**] に、着信イベントの変換に使用する Lambda 関数の ARN を入力します。値を入力しないと、データ変換は無効になります。

   1. (オプション) アプリケーションの Lambda 関数の実行のためも以下の **LogLevel** 設定のいずれかを入力します。
      + `DEBUG`
      + `ERROR`
      + `INFO` (デフォルト)
      + `WARNING`

   1. (オプション) **[SearchDomainArn]** に、OpenSearch Service ドメインの ARN を入力します。このドメインは、必要なコンピューティングおよびストレージ機能を設定するクラスターです。値を入力しないと、新しいドメインがデフォルト設定で作成されます。

   1. [**TopicArn**] に、このフォークパイプラインのインスタンスをサブスクライブする Amazon SNS トピックの ARN を入力します。

   1. **[SearchIndexName]** に、イベントの検索と分析用の OpenSearch Service インデックスの名前を入力します。
**注記**  
インデックス名には、次の制限が適用されます。  
大文字を含めることはできません
次の文字を含めることはできません: `\ / * ? " < > | ` , #`
次の文字で始めることはできません: `- + _`
次の形式にすることはできません: `. ..`
80 文字より長くすることはできません
255 バイトより長くすることはできません
コロンを含めることはできません (OpenSearch Service 7.0 から)

   1. (オプション) OpenSearch Service インデックスのローテーション期間に、以下の **[SearchIndexRotationPeriod]** 設定のいずれかを入力します。
      + `NoRotation` (デフォルト)
      + `OneDay`
      + `OneHour`
      + `OneMonth`
      + `OneWeek`

      インデックスのローテーションでは、インデックス名にタイムスタンプを付加し、古いデータの有効期限切れをわかりやすくします。

   1. **[SearchTypeName]** に、インデックスでイベントを整理するための OpenSearch Service タイプの名前を入力します。
**注記**  
OpenSearch Service タイプ名には任意の文字 (null バイトを除く) を含めることができますが、先頭に `_` を使用することはできません。
OpenSearch Service 6.x では、インデックスあたり 1 つのタイプのみが存在できます。別のタイプが既にある既存のインデックスに新しいタイプを指定すると、Firehose はランタイムエラーを返します。

   1. (オプション) [**StreamBufferingIntervalInSeconds**] および [**StreamBufferingSizeInMBs**] に、着信イベントのバッファ処理を設定するための値を入力します。値を入力しないと、300 秒と 5 MB が使用されます。

   1. (オプション) 着信イベントを圧縮する形式として次の [**StreamCompressionFormat**] 設定のいずれかを入力します。
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (デフォルト)
      + `ZIP`

   1. (オプション) **[StreamPrefix]** に、Amazon S3 配信不能バケットに保存されているファイルを指定するための文字列プレフィックスを入力します。値を入力しないと、プレフィックスは使用されません。

   1. (オプション) **[StreamRetryDurationInSecons]** に、Firehose が OpenSearch Service インデックスでイベントのインデックスを作成できない場合の再試行期間を入力します。値を入力しないと、300 秒が使用されます。

   1. (オプション) [**SubscriptionFilterPolicy**] に、着信イベントをフィルター処理するために使用する Amazon SNS サブスクリプションフィルターポリシーを JSON 形式で入力します。フィルターポリシーは、OpenSearch Service インデックスでインデックスを作成するイベントを決定します。値を入力しないと、フィルター処理は使用されません (すべてのイベントにインデックスが作成されます)。

   1. [**I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications.**] を選択して、[**デプロイ**] を選択します。

[***my-app-search* のデプロイステータス**] ページに、Lambda によって [**Your application is being deployed**] ステータスが表示されます。

**リソース**セクションで、スタックの作成 CloudFormation を開始し、各リソースの **CREATE\$1IN\$1PROGRESS** ステータスを表示します。プロセスが完了すると、 は **CREATE\$1COMPLETE** ステータス CloudFormation を表示します。

デプロイが完了すると、Lambda によって [**アプリケーションはデプロイ済みです**] ステータスが表示されます。

Amazon SNS トピックに発行されたメッセージは、イベントの検索および分析パイプラインによってプロビジョニングされた OpenSearch Service インデックスで自動的にインデックスが作成されます。パイプラインでイベントのインデックスを作成できない場合、イベントは Amazon S3 配信不能バケットに保存されます。

# Amazon SNS 統合によるイベントの再生パイプラインのデプロイ
<a name="deploy-event-replay-pipeline"></a>

このページでは、[[イベントの再生パイプライン](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline)] をデプロイして Amazon SNS トピックにサブスクライブする方法を示します。このプロセスは、パイプラインに関連付けられた AWS SAM テンプレートを自動的に CloudFormation スタックに変換し、スタックを にデプロイします AWS アカウント。また、このプロセスでは、イベントの再生パイプラインを構成する Amazon SQS キューや Lambda 関数などのリソースのセットを作成して設定します。

イベントのフィルター処理の詳細については、このガイドの「[Amazon SNS サブスクリプションフィルターポリシー](sns-subscription-filter-policies.md)」を参照してください。

1. [AWS Lambda コンソール](https://console.aws.amazon.com/lambda/) にサインインします。

1. ナビゲーションパネルで [**関数**] を選択し、[**関数の作成**] を選択します。

1. [**関数の作成**] ページで、次の操作を実行します。

   1. [**サーバーレスアプリケーションリポジトリ**の参照]、**[パブリックアプリケーション]**、**[カスタム IAM ロールまたはリソースポリシーを作成するアプリケーションの表示] を選択します**。

   1. `fork-event-replay-pipeline` を検索し、このアプリケーションを選択します。

1. [**fork-event-replay-pipeline**] ページで、以下の操作を行います。

   1. [**アプリケーション設定**] セクションで、[**アプリケーション名**] に名前 (`my-app-replay` など) を入力します。
**注記**  
名前は、デプロイごとに一意にする必要があります。アプリケーション名を再利用すると、デプロイは (新しいスタックを作成するのではなく) 以前にデプロイされた CloudFormation スタックのみを更新します。

   1. (オプション) アプリケーションの Lambda 関数の実行のためも以下の **LogLevel** 設定のいずれかを入力します。
      + `DEBUG`
      + `ERROR`
      + `INFO` (デフォルト)
      + `WARNING`

   1. (オプション) [**ReplayQueueRetentionPeriodInSeconds**] に、Amazon SQS 再生キューでメッセージを保持する時間を秒単位で入力します。値を入力しないと、1,209,600 秒 (14 日間) が使用されます。

   1. [**TopicArn**] に、このフォークパイプラインのインスタンスをサブスクライブする Amazon SNS トピックの ARN を入力します。

   1. [**DestinationQueueName**] に、Lambda 再生関数がメッセージを転送する先の Amazon SQS キューの名前を入力します。

   1. (オプション) [**SubscriptionFilterPolicy**] に、着信イベントをフィルター処理するために使用する Amazon SNS サブスクリプションフィルターポリシーを JSON 形式で入力します。フィルターポリシーは、再生用にバッファ処理するイベントを決定します。値を入力しないと、フィルター処理は使用されません (すべてのイベントが再生用にバッファ処理されます)。

   1. [**I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications.**] を選択して、[**デプロイ**] を選択します。

[***my-app-replay* のデプロイステータス**] ページで、Lambda によって [**Your application is being deployed**] ステータスが表示されます。

**リソース**セクションで、スタックの作成 CloudFormation を開始し、各リソースの **CREATE\$1IN\$1PROGRESS** ステータスを表示します。プロセスが完了すると、 は **CREATE\$1COMPLETE** ステータス CloudFormation を表示します。

デプロイが完了すると、Lambda によって [**アプリケーションはデプロイ済みです**] ステータスが表示されます。

Amazon SNS トピックに発行されたメッセージは、イベントの再生パイプラインによってプロビジョニングされた Amazon SQS キューで自動的に再生用にバッファ処理されます。

**注記**  
再生は、デフォルトでは無効になります。再生を有効にするには、Lambda コンソールで関数のページに移動し、[**Designer**] セクションを展開して [**SQS**] タイルを選択します。次に [**SQS**] セクションで [**有効**] を選択します。