`publish` Map
`publish` セクションを使用すると、サービスは 1 つまたは複数の SNS トピックにメッセージをパブリッシュできます。
```yaml
publish:
topics:
- name: orderEvents
```
上記の例では、この Manifest は、Copilot の Environment にデプロイされた他の Worker Service がサブスクライブできる `orderEvents` という名前の SNS トピックを定義しています。`COPILOT_SNS_TOPIC_ARNS` という名前の環境変数が、JSON 文字列としてワークロードに設定されます。
JavaScriptでは、次のように記述できます。
```js
const {orderEvents} = JSON.parse(process.env.COPILOT_SNS_TOPIC_ARNS)
```
詳しくは、[パブリッシュ / サブスクライブ](../developing/publish-subscribe.ja.md)のページをご覧ください。
publish.`topics` Array of topics
[`topic`](#publish-topics-topic) オブジェクトのリスト。
publish.topics.`topic` Map
1 つの SNS トピックの設定を保持します。
publish.topics.topic.`name` String
必須項目。SNS トピックの名前です。大文字、小文字、数字、ハイフン、アンダースコアのみを含む必要があります。
publish.topics.topic.`fifo` Boolean or Map
FIFO (first in, first out) SNS トピック設定。
`true` と指定した場合、 Copilot は FIFO でトピックを作成します。
```yaml
publish:
topics:
- name: mytopic
fifo: true
```
また, SNS FIFO トピックの高度な設定も可能です。
```yaml
publish:
topics:
- name: mytopic
fifo:
content_based_deduplication: true
```
publish.topics.topic.fifo.`content_based_deduplication` Boolean
パブリッシュされたメッセージごとにメッセージ本文が一意であることが保証されている場合、SNS FIFO トピックの重複排除を有効化できます。