イベントの検索および分析パイプラインを Amazon SNS にデプロイしてサブスクライブする - Amazon Simple Notification Service

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

イベントの検索および分析パイプラインを Amazon SNS にデプロイしてサブスクライブする

イベントのアーカイブと分析のために、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 配信ストリームへのファンアウト」を参照してください。

このページでは、イベントの検索および分析パイプラインをデプロイして Amazon SNS トピックにサブスクライブする方法を示します。このプロセスは、パイプラインに関連付けられた AWS SAM テンプレートを自動的に AWS CloudFormation スタックに変換し、スタックを にデプロイします AWS アカウント。また、このプロセスでは、イベントの検索および分析パイプラインを構成する、以下のようなリソースのセットを作成して設定します。

  • Amazon SQS キュー

  • Lambda function

  • Firehose 配信ストリーム

  • Amazon OpenSearch Service ドメイン

  • Amazon S3 配信不能バケット

インデックスを送信先としてストリームを設定する方法の詳細については、「Amazon Data Firehose API リファレンス」の「ElasticsearchDestinationConfiguration」を参照してください。

イベントの変換およびイベントバッファリング、イベント圧縮、イベント暗号化の設定の詳細については、「Amazon Data Firehose デベロッパーガイド」の「配信ストリームの作成」を参照してください。

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

  1. AWS Lambda コンソール にサインインします。

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

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

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

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

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

    1. [アプリケーション設定] セクションで、[アプリケーション名] に名前 (my-app-search など) を入力します。

      注記

      名前は、デプロイごとに一意にする必要があります。アプリケーション名を再利用すると、デプロイは (新しいスタックを作成するのではなく) 以前にデプロイされた AWS CloudFormation スタックのみを更新します。

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

    3. (オプション) アプリケーションの Lambda 関数の実行のためも以下の LogLevel 設定のいずれかを入力します。

      • DEBUG

      • ERROR

      • INFO (デフォルト)

      • WARNING

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

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

    6. [SearchIndexName] に、イベントの検索と分析用の OpenSearch Service インデックスの名前を入力します。

      注記

      インデックス名には、次の制限が適用されます。

      • 大文字を含めることはできません

      • 次の文字を含めることはできません: \ / * ? " < > | ` , #

      • 次の文字で始めることはできません: - + _

      • 次の形式にすることはできません: . ..

      • 80 文字より長くすることはできません

      • 255 バイトより長くすることはできません

      • コロンを含めることはできません (OpenSearch Service 7.0 から)

    7. (オプション) OpenSearch Service インデックスのローテーション期間に、以下の [SearchIndexRotationPeriod] 設定のいずれかを入力します。

      • NoRotation (デフォルト)

      • OneDay

      • OneHour

      • OneMonth

      • OneWeek

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

    8. [SearchTypeName] に、インデックスでイベントを整理するための OpenSearch Service タイプの名前を入力します。

      注記
      • OpenSearch Service タイプ名には任意の文字 (null バイトを除く) を含めることができますが、先頭に _ を使用することはできません。

      • OpenSearch Service 6.x では、インデックスあたり 1 つのタイプのみが存在できます。別のタイプが既にある既存のインデックスに新しいタイプを指定すると、Firehose はランタイムエラーを返します。

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

    10. (オプション) 着信イベントを圧縮する形式として次の [StreamCompressionFormat] 設定のいずれかを入力します。

      • GZIP

      • SNAPPY

      • UNCOMPRESSED (デフォルト)

      • ZIP

    11. (オプション) StreamPrefix には、Amazon S3 デッドレターバケットに保存されているファイルに名前を付ける文字列プレフィックスを入力します。値を入力しないと、プレフィックスは使用されません。

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

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

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

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

リソースセクションで、スタックの作成 AWS CloudFormation を開始し、各リソースの CREATE_IN_PROGRESS ステータスを表示します。プロセスが完了すると、 は CREATE_COMPLETE ステータス AWS CloudFormation を表示します。

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

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