

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Aliran pengiriman Fanout ke Firehose
<a name="sns-firehose-as-subscriber"></a>

Anda dapat berlangganan [aliran pengiriman](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) ke topik Amazon SNS, memungkinkan Anda mengirim pemberitahuan ke titik akhir penyimpanan dan analitik tambahan. Pesan yang dipublikasikan ke topik Amazon SNS dikirim ke aliran pengiriman Firehose berlangganan, dan dikirim ke tujuan seperti yang dikonfigurasi di Firehose. Pemilik langganan dapat berlangganan hingga lima aliran pengiriman Firehose ke topik Amazon SNS. Setiap aliran pengiriman Firehose memiliki [kuota default](https://docs.aws.amazon.com/firehose/latest/dev/limits.html) untuk permintaan dan throughput per detik. Batas ini dapat menghasilkan lebih banyak pesan yang diterbitkan (lalu lintas masuk) daripada yang dikirim (lalu lintas keluar). Ketika ada lebih banyak lalu lintas masuk daripada keluar, langganan Anda dapat mengumpulkan backlog pesan yang besar, menyebabkan latensi pengiriman pesan tinggi. Anda dapat meminta [kenaikan kuota](https://support.console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase) berdasarkan tarif publikasi untuk menghindari dampak buruk pada beban kerja Anda. 

Melalui aliran pengiriman Firehose, Anda dapat mengirimkan notifikasi Amazon SNS ke Amazon Simple Storage Service (Amazon S3), Amazon Redshift, OpenSearch Amazon Service (Layanan), dan ke penyedia layanan pihak OpenSearch ketiga seperti Datadog, New Relic, MongoDB, dan Splunk.

Sebagai contoh, Anda dapat menggunakan fungsionalitas ini untuk menyimpan pesan secara permanen yang dikirim ke topik dalam bucket Amazon S3 untuk kepatuhan, arsip, atau tujuan lainnya. Untuk melakukannya, buat aliran pengiriman Firehose dengan tujuan bucket Amazon S3, dan berlangganan aliran pengiriman tersebut ke topik Amazon SNS. Sebagai contoh lain, untuk melakukan analisis pada pesan yang dikirim ke topik Amazon SNS, buat aliran pengiriman dengan tujuan indeks OpenSearch Layanan. Anda kemudian dapat berlangganan aliran pengiriman Firehose ke topik Amazon SNS.

Amazon SNS juga mendukung pencatatan status pengiriman pesan untuk pemberitahuan yang dikirim ke titik akhir Firehose. Lihat informasi yang lebih lengkap di [Status pengiriman pesan Amazon SNS](sns-topic-attributes.md).

# Prasyarat untuk berlangganan aliran pengiriman Firehose ke topik Amazon SNS
<a name="prereqs-kinesis-data-firehose"></a>

Untuk berlangganan aliran pengiriman ke topik SNS, Anda Akun AWS harus memiliki:
+ Topik SNS standar. Untuk informasi selengkapnya, lihat [Membuat topik Amazon SNS](sns-create-topic.md).
+ Aliran pengiriman Firehose. Untuk informasi selengkapnya, lihat [Membuat Stream Pengiriman](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) dan [Memberikan Akses Aplikasi Anda ke Sumber Daya Firehose Anda di Panduan](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#access-to-firehose) Pengembang *Amazon Data Firehose*.
+ Peran AWS Identity and Access Management (IAM) yang mempercayai prinsipal layanan Amazon SNS dan memiliki izin untuk menulis ke aliran pengiriman. Anda akan memasukkan Amazon Resource Name (ARN) peran ini sebagai `SubscriptionRoleARN` saat Anda membuat langganan. Amazon SNS mengasumsikan peran ini, yang memungkinkan Amazon SNS untuk menempatkan catatan dalam aliran pengiriman Firehose.

  Kebijakan contoh berikut ini menunjukkan izin yang direkomendasikan:

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "firehose:DescribeDeliveryStream",
          "firehose:ListDeliveryStreams",
          "firehose:ListTagsForDeliveryStream",
          "firehose:PutRecord",
          "firehose:PutRecordBatch"
        ],
        "Resource": [
          "arn:aws:firehose:us-east-1:111111111111:deliverystream/firehose-sns-delivery-stream"
        ],
        "Effect": "Allow"
      }
    ]
  }
  ```

------

  Untuk memberikan izin penuh untuk menggunakan Firehose, Anda juga dapat menggunakan kebijakan AWS terkelola. `AmazonKinesisFirehoseFullAccess` Atau, untuk memberikan izin yang lebih ketat untuk menggunakan Firehose, Anda dapat membuat kebijakan sendiri. Minimal, kebijakan harus memberikan izin untuk menjalankan operasi `PutRecord` pada aliran pengiriman spesifik.

  Dalam semua kasus, Anda juga harus mengedit hubungan kepercayaan untuk menyertakan prinsip layanan Amazon SNS. Contoh:

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "sns.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
  }
  ```

------

  Untuk informasi selengkapnya tentang membuat peran, lihat [Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) Pengguna *IAM*.

Setelah menyelesaikan persyaratan tersebut, Anda dapat [berlangganan aliran pengiriman untuk topik SNS](firehose-endpoints-subscribe.md).

# Berlangganan aliran pengiriman Firehose ke topik Amazon SNS
<a name="firehose-endpoints-subscribe"></a>

[Untuk mengirimkan notifikasi Amazon SNS ke [aliran pengiriman](sns-firehose-as-subscriber.md), pertama-tama pastikan bahwa Anda telah menangani semua prasyarat.](prereqs-kinesis-data-firehose.md) Untuk daftar titik akhir yang didukung, lihat [titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/fh.html) di. *Referensi Umum Amazon Web Services*

**Untuk berlangganan aliran pengiriman Firehose ke suatu topik**

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di panel navigasi, pilih **Subscriptions** (Langganan).

1. Pada halaman **Berlangganan**, pilih **Buat berlangganan**.

1. Pada halaman **Buat berlangganan**, di bagian **Detail**, lakukan hal berikut ini:

   1. Untuk **ARN topik**, pilih Amazon Resource Name (ARN) dari topik standar.

   1. Untuk **Protokol**, pilih **Firehose**.

   1. Untuk **Endpoint**, pilih ARN aliran pengiriman Firehose yang dapat menerima notifikasi dari Amazon SNS.

   1. Untuk **peran Langganan ARN**, tentukan ARN dari peran AWS Identity and Access Management (IAM) yang Anda buat untuk menulis ke aliran pengiriman Firehose. Untuk informasi selengkapnya, lihat [Prasyarat untuk berlangganan aliran pengiriman Firehose ke topik Amazon SNS](prereqs-kinesis-data-firehose.md).

   1. (Opsional) Untuk menghapus metadata Amazon SNS dari pesan yang diterbitkan, pilih **Aktifkan pengiriman pesan mentah**. Untuk informasi selengkapnya, lihat [Pengiriman pesan mentah Amazon SNS](sns-large-payload-raw-message-delivery.md).

1. (Opsional) Untuk mengkonfigurasi kebijakan filter, perluas bagian **Subscription filter policy (Kebijakan filter langganan)**. Untuk informasi selengkapnya, lihat [Kebijakan filter langganan Amazon SNS](sns-subscription-filter-policies.md).

1. (Opsional) Untuk mengonfigurasi antrean surat mati untuk berlanggana, perluas bagian **Redrive policy (dead-letter queue) (Kebijakan redrive (antrean surat mati))**. Untuk informasi selengkapnya, lihat [Antrian surat mati Amazon SNS](sns-dead-letter-queues.md).

1. Pilih **Create subscription (Buat langganan)**.

Konsol tersebut membuat langganan dan membuka halaman **Details (Detail)** langganan.

# Mengelola pesan Amazon SNS di beberapa tujuan aliran pengiriman
<a name="firehose-working-with-destinations"></a>

[aliran pengiriman](sns-firehose-as-subscriber.md) memungkinkan Anda mengelola pesan Amazon SNS di beberapa tujuan, memungkinkan integrasi dengan Amazon S3, Layanan Amazon, Amazon Redshift, dan titik akhir HTTP untuk penyimpanan OpenSearch , pengindeksan, dan analisis. Dengan mengonfigurasi pemformatan dan pengiriman pesan dengan benar, Anda dapat menyimpan notifikasi Amazon SNS di Amazon S3 untuk diproses nanti, menganalisis data pesan terstruktur menggunakan Amazon Athena, mengindeks pesan untuk pencarian dan visualisasi waktu nyata, dan menyusun arsip OpenSearch di Amazon Redshift untuk kueri lanjutan.

# Menyimpan dan menganalisis pesan Amazon SNS di tujuan Amazon S3
<a name="firehose-s3-destinations"></a>

Topik ini menjelaskan cara streaming pengiriman mempublikasikan data ke Amazon Simple Storage Service (Amazon S3).

![\[Integrasi dan alur kerja layanan Amazon untuk penanganan pesan. Ini menunjukkan bagaimana penerbit mengirim pesan ke topik Amazon SNS, yang kemudian mengirimkan pesan ke beberapa antrian Amazon SQS dan aliran pengiriman Data Firehose. Dari sana, pesan dapat diproses oleh fungsi Lambda atau disimpan secara persisten di bucket Amazon S3.\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/firehose-architecture-s3.png)


**Topics**
+ [Memformat pemberitahuan untuk penyimpanan di tujuan Amazon S3](firehose-archived-message-format-S3.md)
+ [Menganalisis pesan yang disimpan di Amazon S3 menggunakan Athena](firehose-message-analysis-s3.md)

# Memformat notifikasi Amazon SNS untuk penyimpanan di tujuan Amazon S3
<a name="firehose-archived-message-format-S3"></a>

Contoh berikut menunjukkan notifikasi Amazon SNS yang dikirim ke bucket Amazon Simple Storage Service (Amazon S3), dengan lekukan agar mudah dibaca.

**catatan**  
Dalam contoh ini, pengiriman pesan mentah dinonaktifkan untuk pesan yang diterbitkan. Ketika pengiriman pesan mentah dinonaktifkan, Amazon SNS menambahkan metadata JSON ke pesan, termasuk properti tersebut:  
`Type`
`MessageId`
`TopicArn`
`Subject`
`Timestamp`
`UnsubscribeURL`
`MessageAttributes`
Untuk informasi selengkapnya tentang pengiriman mentah, lihat [Pengiriman pesan mentah Amazon SNS](sns-large-payload-raw-message-delivery.md).

```
{
    "Type": "Notification",
    "MessageId": "719a6bbf-f51b-5320-920f-3385b5e9aa56",
    "TopicArn": "arn:aws:sns:us-east-1:333333333333:my-kinesis-test-topic",     
    "Subject": "My 1st subject",
    "Message": "My 1st body",
    "Timestamp": "2020-11-26T23:48:02.032Z",
    "UnsubscribeURL": "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:333333333333:my-kinesis-test-topic:0b410f3c-ee5e-49d8-b59b-3b4aa6d8fcf5",
    "MessageAttributes": {
        "myKey1": {
            "Type": "String",
            "Value": "myValue1"
        },
        "myKey2": {
            "Type": "String",
            "Value": "myValue2"
        }
    }
 }
```

Contoh berikut menunjukkan tiga pesan SNS yang dikirim melalui aliran pengiriman ke bucket Amazon S3 yang sama. Buffering diterapkan, dan jeda baris memisahkan setiap pesan.

```
{"Type":"Notification","MessageId":"d7d2513e-6126-5d77-bbe2-09042bd0a03a","TopicArn":"arn:aws:sns:us-east-1:333333333333:my-kinesis-test-topic","Subject":"My 1st subject","Message":"My 1st body","Timestamp":"2020-11-27T00:30:46.100Z","UnsubscribeURL":"https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:313276652360:my-kinesis-test-topic:0b410f3c-ee5e-49d8-b59b-3b4aa6d8fcf5","MessageAttributes":{"myKey1":{"Type":"String","Value":"myValue1"},"myKey2":{"Type":"String","Value":"myValue2"}}}
{"Type":"Notification","MessageId":"0c0696ab-7733-5bfb-b6db-ce913c294d56","TopicArn":"arn:aws:sns:us-east-1:333333333333:my-kinesis-test-topic","Subject":"My 2nd subject","Message":"My 2nd body","Timestamp":"2020-11-27T00:31:22.151Z","UnsubscribeURL":"https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:313276652360:my-kinesis-test-topic:0b410f3c-ee5e-49d8-b59b-3b4aa6d8fcf5","MessageAttributes":{"myKey1":{"Type":"String","Value":"myValue1"}}}
{"Type":"Notification","MessageId":"816cd54d-8cfa-58ad-91c9-8d77c7d173aa","TopicArn":"arn:aws:sns:us-east-1:333333333333:my-kinesis-test-topic","Subject":"My 3rd subject","Message":"My 3rd body","Timestamp":"2020-11-27T00:31:39.755Z","UnsubscribeURL":"https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:313276652360:my-kinesis-test-topic:0b410f3c-ee5e-49d8-b59b-3b4aa6d8fcf5"}
```

# Menganalisis pesan Amazon SNS yang disimpan di Amazon S3 menggunakan Athena
<a name="firehose-message-analysis-s3"></a>

Halaman ini menjelaskan cara menganalisis pesan Amazon SNS yang dikirim melalui aliran pengiriman ke tujuan Amazon Simple Storage Service (Amazon S3).

**Untuk menganalisis pesan SNS yang dikirim melalui aliran pengiriman Firehose ke tujuan Amazon S3**

1. Konfigurasi sumber daya Amazon S3 Anda. Untuk petunjuknya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon* dan [Bekerja dengan Bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

1. Konfigurasi aliran pengiriman Anda. Untuk petunjuknya, lihat [Memilih Amazon S3 untuk Tujuan Anda di Panduan](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-s3) Pengembang *Amazon Data Firehose*.

1. Gunakan [Amazon Athena](https://console.aws.amazon.com/athena) untuk kueri objek Amazon S3 menggunakan SQL standar. Untuk informasi selanjutnya, lihat [Memulai](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html) dalam *Panduan Pengguna Amazon Athena*.

## Kueri contoh
<a name="example-s3-query"></a>

Untuk kueri contoh ini, asumsikan berikut ini:
+ Pesan disimpan dalam tabel `notifications` di skema `default`.
+ Tabel `notifications` mencakup kolom `timestamp` dengan jenis `string`.

Kueri berikut ini mengembalikan semua pesan SNS yang diterima dalam rentang tanggal yang ditentukan:

```
SELECT * 
FROM default.notifications
WHERE from_iso8601_timestamp(timestamp) BETWEEN TIMESTAMP '2020-12-01 00:00:00' AND TIMESTAMP '2020-12-02 00:00:00';
```

# Mengintegrasikan pesan Amazon SNS dengan tujuan Layanan Amazon OpenSearch
<a name="firehose-elasticsearch-destinations"></a>

Bagian ini menjelaskan bagaimana aliran pengiriman mempublikasikan data ke OpenSearch Layanan Amazon (OpenSearch Layanan).

![\[Penerbit mengirim pesan ke topik Amazon SNS, yang kemudian mendistribusikan pesan-pesan ini ke beberapa antrian Amazon SQS. Pesan dari antrian ini dapat diproses oleh fungsi Lambda atau dikirim melalui aliran pengiriman Firehose Data ke OpenSearch Layanan Amazon, membuat indeks pesan yang dapat dicari. Pengaturan ini menunjukkan perutean pesan lanjutan dan skenario pemrosesan menggunakan. Layanan AWS\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/firehose-architecture-es.png)


**Topics**
+ [Format pesan yang diarsipkan](firehose-archived-message-format-elasticsearch.md)
+ [Menganalisis pesan](firehose-message-analysis-elasticsearch.md)

# Menyimpan dan memformat Pemberitahuan OpenSearch Amazon SNS dalam indeks Layanan
<a name="firehose-archived-message-format-elasticsearch"></a>

Contoh berikut menunjukkan notifikasi Amazon SNS yang dikirim ke indeks Layanan OpenSearch Amazon OpenSearch (Layanan) yang disebut. `my-index` Indeks ini memiliki bidang filter waktu pada bidang `Timestamp`. Notifikasi SNS ditempatkan di properti `_source` dari muatan.

**catatan**  
Dalam contoh ini, pengiriman pesan mentah dinonaktifkan untuk pesan yang diterbitkan. Ketika pengiriman pesan mentah dinonaktifkan, Amazon SNS menambahkan metadata JSON ke pesan, termasuk properti tersebut:  
`Type`
`MessageId`
`TopicArn`
`Subject`
`Timestamp`
`UnsubscribeURL`
`MessageAttributes`
Untuk informasi selengkapnya tentang pengiriman mentah, lihat [Pengiriman pesan mentah Amazon SNS](sns-large-payload-raw-message-delivery.md).

```
{
  "_index": "my-index",
  "_type": "_doc",
  "_id": "49613100963111323203250405402193283794773886550985932802.0",
  "_version": 1,
  "_score": null,
  "_source": {
    "Type": "Notification",
    "MessageId": "bf32e294-46e3-5dd5-a6b3-bad65162e136",
    "TopicArn": "arn:aws:sns:us-east-1:111111111111:my-topic",
    "Subject": "Sample subject",
    "Message": "Sample message",
    "Timestamp": "2020-12-02T22:29:21.189Z",
    "UnsubscribeURL": "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:111111111111:my-topic:b5aa9bc1-9c3d-452b-b402-aca2cefc63c9",
    "MessageAttributes": {
      "my_attribute": {
        "Type": "String",
        "Value": "my_value"
      }
    }
  },
  "fields": {
    "Timestamp": [
      "2020-12-02T22:29:21.189Z"
    ]
  },
  "sort": [
    1606948161189
  ]
}
```

# Menganalisis pesan Amazon SNS untuk tujuan Layanan OpenSearch
<a name="firehose-message-analysis-elasticsearch"></a>

Topik ini menjelaskan cara menganalisis pesan Amazon SNS yang dikirim melalui aliran pengiriman ke tujuan OpenSearch Layanan Amazon (OpenSearch Layanan).

**Untuk menganalisis pesan SNS yang dikirim melalui aliran OpenSearch pengiriman Firehose ke tujuan Layanan**

1. Konfigurasikan sumber daya OpenSearch Layanan Anda. Untuk petunjuk, lihat [Memulai OpenSearch Layanan Amazon](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/es-gsg.html) di *Panduan Pengembang OpenSearch Layanan Amazon*.

1. Konfigurasi aliran pengiriman Anda. Untuk petunjuknya, lihat [Memilih OpenSearch Layanan untuk Tujuan Anda](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-elasticsearch) di Panduan *Pengembang Amazon Data Firehose*.

1. Jalankan kueri menggunakan kueri OpenSearch Layanan dan Kibana. Untuk informasi selengkapnya, lihat [Langkah 3: Cari Dokumen di Domain OpenSearch Layanan](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/es-gsg-search.html) dan [Kibana](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/es-kibana.html) di Panduan *Pengembang OpenSearch Layanan Amazon*.

## Kueri contoh
<a name="example-es-query"></a>

Contoh berikut ini membuat kueri untuk indeks `my-index` untuk semua pesan SNS yang diterima dalam rentang tanggal yang ditentukan:

```
POST https://search-my-domain.us-east-1.es.amazonaws.com/my-index/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "Timestamp": {
              "gte": "2020-12-08T00:00:00.000Z",
              "lte": "2020-12-09T00:00:00.000Z",
              "format": "strict_date_optional_time"
            }
          }
        }
      ]
    }
  }
}
```

# Mengonfigurasi pengiriman dan analisis pesan Amazon SNS di tujuan Amazon Redshift
<a name="firehose-redshift-destinations"></a>

Topik ini menjelaskan cara menyebarkan notifikasi Amazon SNS ke aliran pengiriman, yang kemudian menerbitkan data ke Amazon Redshift. Dengan pengaturan ini, Anda dapat terhubung ke database Amazon Redshift dan menggunakan alat kueri SQL untuk mengambil pesan Amazon SNS yang sesuai dengan kriteria tertentu.

![\[Pesan yang diterbitkan oleh pengirim ke topik Amazon SNS didistribusikan ke beberapa antrian Amazon SQS untuk diproses oleh fungsi Lambda, dan juga dikirim melalui aliran pengiriman Firehose Data ke cluster Amazon Redshift untuk penyimpanan dan analisis di gudang data pesan. Pengaturan ini menunjukkan penanganan pesan yang kuat dan arsitektur pergudangan data menggunakan. Layanan AWS\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/firehose-architecture-rs.png)


**Topics**
+ [Menyusun arsip pesan di tabel Amazon Redshift](firehose-archive-table-structure-redshift.md)
+ [Menganalisis pesan yang disimpan di tujuan Amazon Redshift](firehose-message-analysis-redshift.md)

# Menata arsip pesan Amazon SNS di tabel Amazon Redshift
<a name="firehose-archive-table-structure-redshift"></a>

Untuk titik akhir Amazon Redshift, pesan Amazon SNS diarsipkan sebagai baris dalam tabel. Berikut adalah contoh bagaimana data disimpan:

**catatan**  
Dalam contoh ini, pengiriman pesan mentah dinonaktifkan untuk pesan yang diterbitkan. Ketika pengiriman pesan mentah dinonaktifkan, Amazon SNS menambahkan metadata JSON ke pesan, termasuk properti tersebut:  
`Type`
`MessageId`
`TopicArn`
`Subject`
`Message`
`Timestamp`
`UnsubscribeURL`
`MessageAttributes`
Untuk informasi selengkapnya tentang pengiriman mentah, lihat [Pengiriman pesan mentah Amazon SNS](sns-large-payload-raw-message-delivery.md).  
Meskipun Amazon SNS menambahkan properti ke pesan menggunakan kapitalisasi yang ditampilkan dalam daftar ini, nama kolom di tabel Amazon Redshift muncul dalam semua karakter huruf kecil. Untuk mengubah metadata JSON untuk titik akhir Amazon Redshift, Anda dapat menggunakan perintah `COPY` SQL. Untuk informasi selengkapnya, lihat [Salin dari contoh JSON](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html#r_COPY_command_examples-copy-from-json) dan [Muat dari data JSON menggunakan opsi 'auto ignorecase'](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html#copy-from-json-examples-using-auto-ignorecase) di *Panduan Developer Basis Data Amazon Redshift*.


|  jenis  |  messageid  |  topicarn  |  subjek  |  pesan  |  timestamp  |  unsubscribeurl  |  messageattributes  | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
|  Notifikasi  |  ea544832-a0d8-581d-9275-108243c46103  |  arn:aws:sns:us-east-1:111111111111:my-topic  |  Subjek sampel  |  Pesan sampel  |  2020-12-02T00:33:32.272Z  |  https://sns.us-east-1.amazonaws.com/? Action=Berhenti berlangganan & =arn:aws:sns:us-east- 1:1111111111: SubscriptionArn my-topik:326deeeb-cbf4-45da-b92b-ca77a247813b  |  \$1\$1"my\$1attribute\$1":\$1\$1"Type\$1":\$1"String\$1",\$1"Value\$1":\$1"my\$1value\$1"\$1\$1  | 
|  Notifikasi  |  ab124832-a0d8-581d-9275-108243c46114  |  arn:aws:sns:us-east-1:111111111111:my-topic  |  Subjek sampel 2  |  Pesan sampel 2  |  2020-12-03T00:18:11.129Z  |  https://sns.us-east-1.amazonaws.com/? Action=Berhenti berlangganan & =arn:aws:sns:us-east- 1:1111111111: SubscriptionArn my-topik:326deeeb-cbf4-45da-b92b-ca77a247813b  |  \$1\$1"my\$1attribute2\$1":\$1\$1"Type\$1":\$1"String\$1",\$1"Value\$1":\$1"my\$1value\$1"\$1\$1  | 
|  Notifikasi  |  ce644832-a0d8-581d-9275-108243c46125  |  arn:aws:sns:us-east-1:111111111111:my-topic  |  Subjek sampel 3  |  Pesan sampel 3  |  2020-12-09T00:08:44.405Z  |  https://sns.us-east-1.amazonaws.com/? Action=Berhenti berlangganan & =arn:aws:sns:us-east- 1:1111111111: SubscriptionArn my-topik:326deeeb-cbf4-45da-b92b-ca77a247813b  |  \$1\$1"my\$1attribute3\$1":\$1\$1"Type\$1":\$1"String\$1",\$1"Value\$1":\$1"my\$1value\$1"\$1\$1  | 

Untuk informasi selengkapnya tentang fan out notifikasi ke titik akhir Amazon Redshift, lihat [Mengonfigurasi pengiriman dan analisis pesan Amazon SNS di tujuan Amazon Redshift](firehose-redshift-destinations.md).

# Menganalisis pesan Amazon SNS yang disimpan di tujuan Amazon Redshift
<a name="firehose-message-analysis-redshift"></a>

Topik ini menjelaskan cara menganalisis pesan Amazon SNS yang dikirim melalui aliran pengiriman ke tujuan Amazon Redshift.

**Untuk menganalisis pesan SNS yang dikirim melalui aliran pengiriman Firehose ke tujuan Amazon Redshift**

1. Konfigurasi sumber daya Amazon Redshift. Untuk instruksi, lihat [Memulai dengan Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) di *Panduan Memulai Amazon Redshift*.

1. Konfigurasi aliran pengiriman Anda. Untuk petunjuknya, lihat [Memilih Amazon Redshift untuk Tujuan Anda di Panduan](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-redshift) Pengembang *Amazon Data Firehose*.

1. Jalankan kueri. Untuk informasi selengkapnya, lihat [Menanyakan database menggunakan editor kueri](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor.html) di Panduan Manajemen *Amazon Redshift*.

## Kueri contoh
<a name="example-rs-query"></a>

Untuk kueri contoh ini, asumsikan berikut ini:
+ Pesan disimpan dalam tabel `notifications` di skema `public` default.
+ Properti `Timestamp` dari pesan SNS disimpan dalam kolom `timestamp` tabel dengan jenis data kolom `timestamptz`.
**catatan**  
Untuk mengubah metadata JSON untuk titik akhir Amazon Redshift, Anda dapat menggunakan perintah `COPY` SQL. Untuk informasi selengkapnya, lihat [Salin dari contoh JSON](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html#r_COPY_command_examples-copy-from-json) dan [Muat dari data JSON menggunakan opsi 'auto ignorecase'](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html#copy-from-json-examples-using-auto-ignorecase) di *Panduan Developer Basis Data Amazon Redshift*.

Kueri berikut ini mengembalikan semua pesan SNS yang diterima dalam rentang tanggal yang ditentukan:

```
SELECT *
FROM public.notifications
WHERE timestamp > '2020-12-01T09:00:00.000Z' AND timestamp < '2020-12-02T09:00:00.000Z';
```

# Mengonfigurasi pengiriman pesan Amazon SNS ke tujuan HTTP menggunakan
<a name="firehose-http-destinations"></a>

Topik ini menjelaskan bagaimana aliran pengiriman mempublikasikan data ke titik akhir HTTP.

![\[Penerbit untuk topik Amazon SNS, yang kemudian mendistribusikan pesan ke beberapa antrian Amazon SQS. Pesan-pesan ini diproses oleh fungsi Lambda dan juga dikirim melalui aliran pengiriman Firehose Data ke titik akhir HTTP. Pengaturan ini menampilkan bagaimana Layanan AWS bekerja sama untuk memfasilitasi penanganan pesan dan integrasi dengan layanan HTTP eksternal.\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/firehose-architecture-http.png)


**Topics**
+ [Format pemberitahuan untuk pengiriman ke tujuan HTTP](firehose-delivered-message-format-http.md)

# Format notifikasi Amazon SNS untuk pengiriman ke tujuan HTTP
<a name="firehose-delivered-message-format-http"></a>

Berikut adalah contoh badan permintaan HTTP POST dari Amazon SNS, dikirim melalui aliran pengiriman ke titik akhir HTTP. Notifikasi Amazon SNS dikodekan sebagai payload base64 dalam properti records.

**catatan**  
Dalam contoh ini, pengiriman pesan mentah dinonaktifkan untuk pesan yang diterbitkan. Untuk informasi selengkapnya tentang pengiriman mentah, lihat [Pengiriman pesan mentah Amazon SNS](sns-large-payload-raw-message-delivery.md).

```
"body": {
    "requestId": "ebc9e8b2-fce3-4aef-a8f1-71698bf8175f",
    "timestamp": 1606255960435,
    "records": [
      {
        "data": "eyJUeXBlIjoiTm90aWZpY2F0aW9uIiwiTWVzc2FnZUlkIjoiMjFkMmUzOGQtMmNhYi01ZjYxLTliYTItYmJiYWFhYzg0MGY2IiwiVG9waWNBcm4iOiJhcm46YXdzOnNuczp1cy1lYXN0LTE6MTExMTExMTExMTExOm15LXRvcGljIiwiTWVzc2FnZSI6IlNhbXBsZSBtZXNzYWdlIGZvciBBbWF6b24gS2luZXNpcyBEYXRhIEZpcmVob3NlIGVuZHBvaW50cyIsIlRpbWVzdGFtcCI6IjIwMjAtMTEtMjRUMjI6MDc6MzEuNjY3WiIsIlVuc3Vic2NyaWJlVVJMIjoiaHR0cHM6Ly9zbnMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vP0FjdGlvbj1VbnN1YnNjcmliZSZTdWJzY3JpcHRpb25Bcm49YXJuOmF3czpzbnM6MTExMTExMTExMTExOm15LXRvcGljOjAxYjY5MTJjLTAwNzAtNGQ4Yi04YjEzLTU1NWJmYjc2ZTdkNCJ9"
      }
    ]
  }
```

# Pengarsipan dan analitik pesan Amazon SNS: Contoh kasus penggunaan untuk platform tiket pesawat
<a name="firehose-example-use-case"></a>

Topik ini menyediakan tutorial untuk kasus penggunaan umum pengarsipan dan analisis pesan Amazon SNS. 

Pengaturan kasus penggunaan ini adalah platform tiket maskapai penerbangan yang beroperasi di lingkungan yang diatur.

1. Platform ini tunduk pada kerangka kerja kepatuhan yang mengharuskan perusahaan untuk mengarsipkan semua penjualan tiket setidaknya selama lima tahun.

1. Untuk memenuhi tujuan kepatuhan pada retensi data, perusahaan berlangganan aliran pengiriman ke topik Amazon SNS yang ada.

1. Tujuan untuk aliran pengiriman adalah bucket Amazon Simple Storage Service (Amazon S3). Dengan konfigurasi ini, semua peristiwa yang diterbitkan untuk topik SNS diarsipkan dalam bucket Amazon S3.

Diagram berikut ini menunjukkan arsitektur konfigurasi ini:

![\[AWS Arsitektur untuk platform tiket penerbangan, yang menggambarkan bagaimana data penjualan tiket diproses dan diarsipkan. Ini menunjukkan aliran data dari fungsi Lambda melalui topik Amazon SNS, yang kemudian mendistribusikan pesan ke antrian Amazon SQS untuk pemrosesan pembayaran dan deteksi penipuan, ditangani oleh masing-masing fungsi Lambda. Data juga dialirkan melalui Data Firehose ke bucket Amazon S3 untuk arsip jangka panjang, mendukung kepatuhan terhadap persyaratan penyimpanan data. Pengaturan ini memungkinkan platform untuk menjalankan analisis terperinci tentang data penjualan tiket menggunakan alat seperti Amazon Athena.\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/sns-archiving-use-case.png)


Untuk menjalankan analitik dan mendapatkan wawasan tentang penjualan tiket, perusahaan menjalankan kueri SQL menggunakan Amazon Athena. Sebagai contoh, perusahaan dapat membuat kueri untuk mempelajari tentang tujuan yang paling populer dan selebaran yang paling sering muncul.

Untuk membuat AWS sumber daya untuk kasus penggunaan ini, Anda dapat menggunakan Konsol Manajemen AWS atau CloudFormation templat.

**Topics**
+ [Menyiapkan AWS sumber daya awal untuk pengarsipan pesan dan analitik](firehose-example-initial-resources.md)
+ [Mengatur aliran pengiriman Firehose untuk pengarsipan pesan](firehose-example-create-delivery-stream.md)
+ [Berlangganan aliran pengiriman untuk topik](firehose-example-subscribe-delivery-stream-to-topic.md)
+ [Menguji dan menanyakan konfigurasi untuk manajemen data yang efektif](firehose-example-test-and-query.md)
+ [Mengotomatiskan pengarsipan pesan dengan templat CloudFormation](firehose-example-cfn.md)

# Menyiapkan AWS sumber daya awal untuk pengarsipan dan analitik pesan Amazon SNS
<a name="firehose-example-initial-resources"></a>

Topik ini menjelaskan cara membuat sumber daya yang diperlukan untuk [kasus penggunaan contoh pengarsipan pesan dan analisis](firehose-example-use-case.md):
+ Bucket Amazon Simple Storage Service (Amazon S3)
+ Dua antrean Amazon Simple Queue Service (Amazon SQS)
+ Topik Amazon SNS
+ Dua langganan Amazon SQS untuk topik Amazon SNS

**Untuk membuat sumber daya awal**

1. Buat bucket Amazon S3:<a name="firehose-use-case-create-bucket"></a>

   1. Buka [konsol Amazon S3](https://console.aws.amazon.com/s3/home).

   1. Pilih **Buat bucket**. 

   1. Untuk **Nama bucket**, masukkan nama yang unik secara global. Simpan bidang lainnya sebagai default.

   1. Pilih **Buat bucket**.

   Untuk informasi selengkapnya tentang bucket Amazon S3, lihat [Membuat bucket di](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon dan [Bekerja dengan Bucket Amazon S3 di](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) Panduan Pengguna Layanan Penyimpanan Sederhana* *Amazon*.

1. Buat dua antrean Amazon SQS:

   1. Buka [konsol Amazon SQS](https://console.aws.amazon.com/sqs/home).

   1. Pilih **Buat antrean**.

   1. Untuk **Jenis**, pilih **Standar**.

   1. Untuk **Nama**, masukkan **ticketPaymentQueue**.

   1. Di bawah **Kebijakan akses**, untuk **Pilih metode**, pilih **Lanjutan**.

   1. Dalam kotak kebijakan JSON, tempel kebijakan berikut ini:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "sns.amazonaws.com"
            },
            "Action": "sqs:SendMessage",
            "Resource": "*",
            "Condition": {
              "ArnEquals": {
                "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:ticketTopic"
              }
            }
          }
        ]
      }
      ```

------

      Dalam kebijakan akses ini, ganti Akun AWS nomor (*123456789012*) dengan nomor Anda sendiri, dan ubah AWS Region (*us-east-1*) sesuai dengan itu.

   1. Pilih **Buat antrean**.

   1. Ulangi langkah tersebut untuk membuat antrean SQS kedua bernama **ticketFraudQueue**.

   Untuk informasi selengkapnya tentang cara membuat antrean SQS, lihat [Membuat antrean Amazon SQS (konsol)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-create-queue.html) di *Panduan Developer Amazon Simple Queue Service*.

1. Buat topik SNS:

   1. Buka [Halaman topik](https://console.aws.amazon.com/sns/home#/topics) dari konsol Amazon SNS.

   1. Pilih **Buat topik**.

   1. Di bawah **Detail**, untuk **Jenis**, pilih **Standar**.

   1. Untuk **Nama**, masukkan **ticketTopic**.

   1. Pilih **Buat topik**.

   Untuk informasi selengkapnya mengenai cara membuat topik SNS, lihat [Membuat topik Amazon SNS](sns-create-topic.md).

1. Berlangganan kedua antrean SQS untuk topik SNS:

   1. Di [konsol Amazon SNS](https://console.aws.amazon.com/sns/home#/topics), pada halaman detail topik **ticketTopic**, pilih **Buat berlangganan**.

   1. Di bawah **Detail**, untuk **Protokol**, pilih **Amazon SQS**.

   1. Untuk **Endpoint**, pilih Amazon Resource Name (ARN) dari **ticketPaymentQueue**antrian.

   1. Pilih **Buat langganan**.

   1. Ulangi langkah-langkah ini untuk membuat langganan kedua menggunakan ARN antrian. **ticketFraudQueue**

      Untuk informasi selengkapnya tentang berlangganan topik SNS, lihat [Membuat langganan ke topik Amazon SNS](sns-create-subscribe-endpoint-to-topic.md). Anda juga dapat berlangganan antrean SQS untuk topik SNS dari konsol Amazon SQS. Untuk informasi selengkapnya, lihat [Berlangganan antrean Amazon SQS untuk topik Amazon SNS (konsol)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-subscribe-queue-sns-topic.html) di *Panduan Developer Amazon Simple Queue Service*.

Anda telah membuat sumber daya awal untuk kasus penggunaan contoh ini. Untuk melanjutkan, lihat [Mengatur aliran pengiriman Amazon Data Firehose untuk pengarsipan pesan Amazon SNS](firehose-example-create-delivery-stream.md).

# Mengatur aliran pengiriman Amazon Data Firehose untuk pengarsipan pesan Amazon SNS
<a name="firehose-example-create-delivery-stream"></a>

Topik ini menjelaskan cara membuat aliran pengiriman Amazon Data Firehose untuk kasus penggunaan [contoh pengarsipan pesan dan analisis](firehose-example-use-case.md).

**Untuk membuat aliran pengiriman Amazon Data Firehose**

1. Buka konsol [layanan Amazon Data Firehose](https://console.aws.amazon.com/kinesis/home).

1. Pilih **Firehose** lalu pilih **Buat aliran pengiriman**.

1. Pada halaman **Aliran pengiriman baru**, untuk **Nama alitran pengiriman**, masukkan **ticketUploadStream**, dan kemudian pilih **Selanjutnya**.

1. Pada halaman **Proses rekaman**, pilih **Selanjutnya**.

1. Pada halaman **Pilih tujuan**, lakukan hal berikut ini:

   1. Untuk **Tujuan**, pilih **Amazon S3**.

   1. Di bawah **Tujuan S3**, untuk **Bucket S3**, pilih bucket S3 yang Anda [buat awalnya](firehose-example-initial-resources.md).

   1. Pilih **Selanjutnya**.

1. Pada halaman **Konfigurasi pengaturan**, untuk **syarat buffer S3**, lakukan hal berikut ini:
   + Untuk **Ukuran buffer**, masukkan **1**.
   + Untuk **Interval buffer**, masukkan **60**.

   Dengan menggunakan nilai tersebut untuk buffer Amazon S3 memungkinkan Anda dengan cepat menguji konfigurasi. Syarat pertama yang dipenuhi memicu pengiriman data ke bucket S3.

1. Pada halaman **Konfigurasi pengaturan**, untuk **Izin**, pilih untuk membuat peran AWS Identity and Access Management (IAM) dengan izin yang diperlukan ditetapkan secara otomatis. Lalu, pilih **Selanjutnya**.

1. Pada halaman **Tinjau**, pilih **Buat aliran pengiriman**.

1. Dari **halaman aliran pengiriman Amazon Data Firehose, pilih aliran pengiriman** yang baru saja Anda buat (). **ticketUploadStream** Pada tab **Detail**, catat Amazon Resource Name (ARN) pengaliran untuk nanti.

Untuk informasi selengkapnya tentang cara membuat aliran pengiriman, lihat [Membuat Aliran Pengiriman Firehose Data Amazon di Panduan](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) Pengembang *Amazon Data Firehose*. Untuk informasi selengkapnya tentang membuat peran IAM, lihat [Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) Pengguna *IAM*.

Anda telah membuat aliran pengiriman Firehose dengan izin yang diperlukan. Untuk melanjutkan, lihat [Berlangganan aliran pengiriman Firehose ke topik Amazon SNS](firehose-example-subscribe-delivery-stream-to-topic.md).

# Berlangganan aliran pengiriman Firehose ke topik Amazon SNS
<a name="firehose-example-subscribe-delivery-stream-to-topic"></a>

Topik ini menjelaskan cara membuat sumber daya berikut untuk [kasus penggunaan contoh pengarsipan pesan dan analisis](firehose-example-use-case.md):
+ Peran AWS Identity and Access Management (IAM) yang memungkinkan langganan Amazon SNS untuk menempatkan catatan pada aliran pengiriman.
+ Berlangganan aliran pengiriman Firehose ke topik Amazon SNS.

**Untuk membuat IAM role untuk berlangganan Amazon SNS**

1. Buka [halaman Peran](https://console.aws.amazon.com/iam/home?#/roles) dari konsol IAM.

1. Pilih **Buat peran**.

1. Untuk **Pilih jenis entitas tepercaya**, pilih **layanan AWS **.

1. Untuk **Pilih kasus penggunaan**, pilih **SNS**. Kemudian pilih **Selanjutnya: Izin**.

1. Pilih **Selanjutnya: Tag**.

1. Pilih **Selanjutnya: Tinjau**.

1. Pada halaman **Tinjau**, untuk **Nama peran**, masukkan **ticketUploadStreamSubscriptionRole**. Kemudian pilih **Buat peran**.

1. Saat peran dibuat, pilih namanya (**ticketUploadStreamSubscriptionRole**).

1. Pada halaman **Ringkasan** peran, pilih **Tambahkan kebijakan inline**.

1. Pada halaman **Buat kebijakan**, pilih tab **JSON**, dan kemudian tempel kebijakan berikut ini ke dalam kotak:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "firehose:DescribeDeliveryStream",
                   "firehose:ListDeliveryStreams",
                   "firehose:ListTagsForDeliveryStream",
                   "firehose:PutRecord",
                   "firehose:PutRecordBatch"
               ],
               "Resource": [
                   "arn:aws:firehose:us-east-1:123456789012:deliverystream/ticketUploadStream"
               ],
               "Effect": "Allow"
           }
       ]
   }
   ```

------

   Dalam kebijakan ini, ganti Akun AWS nomor (*123456789012*) dengan nomor Anda sendiri, dan ubah AWS Region (*us-east-1*) sesuai dengan kebijakan tersebut.

1. Pilih **Tinjau kebijakan**.

1. Pada halaman **Tinjau kebijakan**, untuk **Nama**, masukkan **FirehoseSnsPolicy**. Kemudian pilih **Buat kebijakan**.

1. Pada halaman **Ringkasan** peran, catat **ARN Peran** untuk nanti.

Untuk informasi selengkapnya tentang membuat peran IAM, lihat [Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) Pengguna *IAM*.

**Untuk berlangganan aliran pengiriman Firehose ke topik SNS**

1. Buka [Halaman topik](https://console.aws.amazon.com/sns/home#/topics) dari konsol Amazon SNS.

1. Pada tab **Berlangganan**, pilih **Buat berlangganan**.

1. Di bawah **Detail**, untuk **Protokol**, pilih****.

1. Untuk **Endpoint**, masukkan Amazon Resource Name (ARN) dari aliran pengiriman **ticketUploadStream**yang Anda buat sebelumnya. Misalnya, masukkan **arn:aws:firehose:us-east-1:123456789012:deliverystream/ticketUploadStream**.

1. Untuk **peran Langganan ARN**, masukkan ARN dari peran **ticketUploadStreamSubscriptionRole**IAM yang Anda buat sebelumnya. Sebagai contoh, masukkan **arn:aws:iam::123456789012:role/ticketUploadStreamSubscriptionRole**.

1. Pilih kotak centang **Aktifkan pengiriman pesan mentah**.

1. Pilih **Buat berlangganan**.

Anda telah membuat IAM role dan berlangganan topik SNS. Untuk melanjutkan, lihat [Menguji dan menanyakan konfigurasi Amazon SNS untuk pengelolaan data yang efektif](firehose-example-test-and-query.md).

# Menguji dan menanyakan konfigurasi Amazon SNS untuk pengelolaan data yang efektif
<a name="firehose-example-test-and-query"></a>

Topik ini menjelaskan cara menguji [kasus penggunaan contoh pengarsipan pesan dan analisis](firehose-example-use-case.md) dengan menerbitkan pesan ke topik Amazon SNS. Instruksi termasuk kueri contoh yang dapat Anda jalankan dan menyesuaikan dengan kebutuhan Anda sendiri.

**Untuk menguji konfigurasi Anda**

1. Buka [Halaman topik](https://console.aws.amazon.com/sns/home#/topics) dari konsol Amazon SNS.

1. Pilih topik **ticketTopic**.

1. Pilih **Terbitkan pesan**.

1. Pada halaman **Terbitkan pesan untuk topik**, masukkan berikut ini untuk isi pesan. Tambahkan karakter baris baru di akhir pesan.

   ```
   {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 04:15:05","Destination":"Miami","FlyingFrom":"Vancouver","TicketNumber":"abcd1234"}
   ```

   Simpan semua pilihan lain sebagai default mereka.

1. Pilih **Terbitkan pesan**.

   Untuk informasi selengkapnya tentang menerbitkan pesan, lihat [Menerbitkan pesan Amazon SNS](sns-publishing.md).

1. Setelah interval aliran pengiriman 60 detik, buka [konsol Amazon Simple Storage Service (Amazon S3)](https://console.aws.amazon.com/s3/home) dan pilih bucket Amazon S3 yang Anda [buat awalnya](firehose-example-initial-resources.md).

   Pesan yang diterbitkan muncul dalam bucket.

**Untuk kueri data**

1. Buka [konsol Amazon Athena](https://console.aws.amazon.com/athena/home).

1. Jalankan kueri.

   Sebagai contoh, asumsikan bahwa tabel `notifications` di skema `default` berisi data berikut ini:

   ```
   {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 04:15:05","Destination":"Miami","FlyingFrom":"Vancouver","TicketNumber":"abcd1234"}
   {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 11:30:15","Destination":"Miami","FlyingFrom":"Omaha","TicketNumber":"efgh5678"}
   {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 3:30:10","Destination":"Miami","FlyingFrom":"NewYork","TicketNumber":"ijkl9012"}
   {"BookingDate":"2020-12-15","BookingTime":"2020-12-15 12:30:05","Destination":"Delhi","FlyingFrom":"Omaha","TicketNumber":"mnop3456"}
   ```

   Untuk menemukan tujuan teratas, jalankan kueri berikut ini:

   ```
   SELECT destination
   FROM default.notifications
   GROUP BY destination
   ORDER BY count(*) desc
   LIMIT 1;
   ```

   Untuk kueri tiket yang terjual selama tanggal dan rentang waktu tertentu, jalankan kueri seperti berikut ini:

   ```
   SELECT * 
   FROM default.notifications 
   WHERE bookingtime 
     BETWEEN TIMESTAMP '2020-12-15 10:00:00' 
     AND TIMESTAMP '2020-12-15 12:00:00';
   ```

   Anda dapat menyesuaikan kedua kueri sampel untuk kebutuhan Anda sendiri. Untuk informasi selengkapnya tentang menggunakan Athena untuk menjalankan kueri, lihat [Memulai](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html) di *Panduan Pengguna Amazon Athena*.

## Membersihkan
<a name="firehose-example-cleanup"></a>

Untuk menghindari menimbulkan biaya penggunaan setelah Anda selesai melakukan pengujian, hapus sumber daya berikut ini yang Anda buat selama tutorial:
+ Berlangganan Amazon SNS
+ Topik Amazon SNS
+ Antrean Amazon Simple Queue Service (Amazon SQS)
+ Buket Amazon S3
+  aliran pengiriman
+ AWS Identity and Access Management (IAM) peran dan kebijakan

# Mengotomatiskan pengarsipan pesan Amazon SNS dengan templat CloudFormation
<a name="firehose-example-cfn"></a>

Untuk mengotomatisasi deployment [pengarsipan pesan dan kasus penggunaan contoh analitik](firehose-example-use-case.md) Amazon SNS, Anda dapat menggunakan templat YAML berikut ini:

```
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Template for creating an SNS archiving use case
Resources:
  ticketUploadStream:
    DependsOn:
    - ticketUploadStreamRolePolicy
    Type: AWS::KinesisFirehose::DeliveryStream
    Properties:
      S3DestinationConfiguration:
        BucketARN: !Sub 'arn:${AWS::Partition}:s3:::${ticketArchiveBucket}'
        BufferingHints:
          IntervalInSeconds: 60
          SizeInMBs: 1
        CompressionFormat: UNCOMPRESSED
        RoleARN: !GetAtt ticketUploadStreamRole.Arn
  ticketArchiveBucket:
    Type: AWS::S3::Bucket
  ticketTopic:
    Type: AWS::SNS::Topic
  ticketPaymentQueue:
    Type: AWS::SQS::Queue
  ticketFraudQueue:
    Type: AWS::SQS::Queue
  ticketQueuePolicy:
    Type: AWS::SQS::QueuePolicy
    Properties:
      PolicyDocument:
        Statement:
          Effect: Allow
          Principal:
            Service: sns.amazonaws.com
          Action:
            - sqs:SendMessage
          Resource: '*'
          Condition:
            ArnEquals:
              aws:SourceArn: !Ref ticketTopic
      Queues:
        - !Ref ticketPaymentQueue
        - !Ref ticketFraudQueue
  ticketUploadStreamSubscription:
    Type: AWS::SNS::Subscription
    Properties:
      TopicArn: !Ref ticketTopic
      Endpoint: !GetAtt ticketUploadStream.Arn
      Protocol: firehose
      SubscriptionRoleArn: !GetAtt ticketUploadStreamSubscriptionRole.Arn
  ticketPaymentQueueSubscription:
    Type: AWS::SNS::Subscription
    Properties:
      TopicArn: !Ref ticketTopic
      Endpoint: !GetAtt ticketPaymentQueue.Arn
      Protocol: sqs
  ticketFraudQueueSubscription:
    Type: AWS::SNS::Subscription
    Properties:
      TopicArn: !Ref ticketTopic
      Endpoint: !GetAtt ticketFraudQueue.Arn
      Protocol: sqs
  ticketUploadStreamRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17		 	 	 '
        Statement:
        - Sid: ''
          Effect: Allow
          Principal:
            Service: firehose.amazonaws.com
          Action: sts:AssumeRole
  ticketUploadStreamRolePolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: FirehoseticketUploadStreamRolePolicy
      PolicyDocument:
        Version: '2012-10-17		 	 	 '
        Statement:
        - Effect: Allow
          Action:
          - s3:AbortMultipartUpload
          - s3:GetBucketLocation
          - s3:GetObject
          - s3:ListBucket
          - s3:ListBucketMultipartUploads
          - s3:PutObject
          Resource:
          - !Sub 'arn:aws:s3:::${ticketArchiveBucket}'
          - !Sub 'arn:aws:s3:::${ticketArchiveBucket}/*'
      Roles:
      - !Ref ticketUploadStreamRole
  ticketUploadStreamSubscriptionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17		 	 	 '
        Statement:
        - Effect: Allow
          Principal:
            Service:
            - sns.amazonaws.com
          Action:
          - sts:AssumeRole
      Policies:
      - PolicyName: SNSKinesisFirehoseAccessPolicy
        PolicyDocument:
          Version: '2012-10-17		 	 	 '
          Statement:
          - Action:
            - firehose:DescribeDeliveryStream
            - firehose:ListDeliveryStreams
            - firehose:ListTagsForDeliveryStream
            - firehose:PutRecord
            - firehose:PutRecordBatch
            Effect: Allow
            Resource:
            - !GetAtt ticketUploadStream.Arn
```