---
schema_version: "1"
id: 4a464073d9ae7ba2d9e375dda0365e20247b45adc5d4ddca47ccc241a118d45b
title: Anypoint MQ Publish 操作
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/anypoint-mq-connector/3.x/anypoint-mq-publish.md
canonical_url: https://docs.mulesoft.com/jp/anypoint-mq-connector/3.x/anypoint-mq-publish
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 39808568c28881c7f0bb6a5d7ce81e8fccdd9951632ba7c1f0f416f70c163dd5
description: MuleSoft Documentation Site
release: 3.x
latest: false
---
# Anypoint MQ Publish 操作

Publish 操作では、新しい Anypoint MQ メッセージを作成し、指定した宛先 (キュー、FIFO キュー、メッセージエクスチェンジ) に送信できます。この操作を使用して、メッセージのコンテンツと、必要なすべてのヘッダーとプロパティの両方を設定できます。

## [](#送信メッセージ構造)送信メッセージ構造

メッセージには次のパラメーターが含まれます。

- `body`
    
    パブリッシュされた Anypoint MQ メッセージの本文が含まれます。
- `properties`
    
    メッセージのプロパティである文字列のシンプルなキー - 値のマップを表します。

## [](#メッセージの送信)メッセージの送信

デフォルトの形式で使用された場合、コネクタによって受信メッセージの ​`payload`​ で見つかったコンテンツが文字列としてシリアル化された Anypoint MQ メッセージの ​`body`​ として、宣言された ​`destination`​ にパブリッシュされます。

![Anypoint MQ Publish 操作](/mulesoft/current/ja-jp/anypoint-mq-connector/3.x/_images/amq-3x-publish-operation.png)

```xml
<anypoint-mq:publish destination="invoiceQueue" config-ref="Anypoint_MQ_config"/>
```

この操作では、次の出力が生成されます。

- ペイロードとして送信された本文のコピー
    
    たとえば、「Hello world」メッセージを送信する場合、結果のペイロードは「Hello world」文字列になります。
- メッセージ属性に含まれるメッセージの ​`messageId`​ 値

![Anypoint MQ Publish 操作の出力属性](/mulesoft/current/ja-jp/anypoint-mq-connector/3.x/_images/amq-3x-publish-attributes.png)

## [](#ユーザープロパティの設定)ユーザープロパティの設定

たとえば、他のメッセージングシステムとの互換性の提供、またはメッセージのコンテンツタイプの通信などのために、送信メッセージのプロパティを定義できます。 Anypoint MQ は、プロパティ値で文字列と数値をサポートしています。

<table><tbody><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content">数値プロパティ値に基づくルーティングルールを作成し、Anypoint MQ Connector を使用してメッセージをパブリッシュする場合、Anypoint MQ Connector バージョン 3.2.0 以降にアップグレードする必要があります。 これより前のバージョンのコネクタでは、すべてのプロパティ値が文字列として送信されるため、メッセージは数値プロパティに基づくルーティングルールに一致しません。</td></tr></tbody></table>

これらのプロパティをメッセージで直接設定するには、Publish 操作の ​`properties`​ パラメーターを使用し、DataWeave を使用してキーと値のマップを定義します。

次に例を示します。

![プロパティを使用する Anypoint MQ Publish](/mulesoft/current/ja-jp/anypoint-mq-connector/3.x/_images/amq-3x-publish-properties.png)

```xml
<anypoint-mq:publish config-ref="Anypoint_MQ_Config"
    destination="invoiceQueue">
  <anypoint-mq:properties><![CDATA[#[output application/java ---
      {
          AUTH_TYPE: 'jwt',
          AUTH_TOKEN: attributes.queryParams.token
        }]]]>
      <anypoint-mq:properties>
</anypoint-mq:publish>
```

Publish 操作で定義したユーザープロパティは、Anypoint MQ のメッセージの ​**\[Message Browser (メッセージブラウザー)\]**​ 詳細ペインに表示されます。

![「Message Browser (メッセージブラウザー)」 詳細ペインの 「User Properties (ユーザープロパティ)」](/mulesoft/current/ja-jp/anypoint-mq-connector/3.x/_images/amq-3x-publish-user-props.png)

Figure 1. この画面では、(​**1**​) ​**\[Message Browser (メッセージブラウザー)\]**​ オプションとその詳細ペインに (​**2**​) ​**\[User Properties (ユーザープロパティ)\]**​ が表示されています。

### [](#メッセージ本文の変換)メッセージ本文の変換

ペイロードの形式が正しくない場合、正しい形式に変換できます。

ペイロードを変換するには、Publish 操作の ​`body`​ パラメーターでインライン DataWeave 変換を宣言します。

![変換を使用する Anypoint MQ Publish](/mulesoft/current/ja-jp/anypoint-mq-connector/3.x/_images/amq-3x-publish-transformed.png)

```xml
<anypoint-mq:publish config-ref="Anypoint_MQ_Config"
   destination="invoiceQueue">
      <anypoint-mq:body ><![CDATA[#[output application/json ---
      {
        customer: payload.id,
        items: payload.invoice.items
      }]]]>
      </anypoint-mq:body>
</anypoint-mq:publish>
```

このケースでは、操作の結果は JSON として​_変換された_​値になります。

## [](#詳細な設定)詳細な設定

Anypoint MQ で一意のメッセージ ID を生成できるようにする代わりに、一意のカスタムメッセージ ID を設定できます。プロパティとしてメッセージ本文のコンテンツタイプを追加することもできます。

### [](#カスタムメッセージ-id-の設定)カスタムメッセージ ID の設定

Anypoint MQ で新しくパブリッシュされたメッセージの一意の ​`messageId`​ 値を生成できるようにする代わりに、​**\[Advanced (詳細)\]**​ タブの ​**\[Message Id (メッセージ ID)\]**​ 項目でカスタム ​`messageId`​ 値を設定します。

![Anypoint MQ Publish の \[Advanced (詳細)\] タブ - \[Message Id (メッセージ ID)\]](_images/amq-3x-publish-advanced.png)

Anypoint MQ メッセージの ID は一意である必要があります。重複する ID の不要な副作用を避けるために一意のカスタム ID を選択します。 FIFO キューでは、メッセージの重複を排除できます。同じメッセージ ID が含まれる FIFO キューに複数のメッセージを送信した場合、最初に到着したメッセージが有効なメッセージとして保持されます。 詳細は、​[「FIFO の正確に 1 回の配信」](https://docs.mulesoft.com/jp/mq/mq-queues#fifo-exactly-once-delivery)​を参照してください。

### [](#メッセージ配信の遅延)メッセージ配信の遅延

Anypoint MQ では、メッセージをパブリッシュし、​`deliveryDelay`​ パラメーターを使用してコンシューマーに表示されるまで延期する機能がサポートされています。

1. Publish 操作を選択します。
2. **\[Advanced (詳細)\]**​ タブをクリックします。
3. **\[Delivery Delay (配信遅延)\]**​ パラメーターを遅延する時間に設定します。
    
    ![Anypoint MQ Publish の \[Advanced (詳細)\] タブ - \[Delivery Delay (配信遅延)\]](_images/amq-3x-publish-advanced-delay.png)
    
    デフォルトでは、​`deliveryDelay`​ パラメーターは ​`0`​ に設定されています。これはメッセージをすぐに (遅延なしで) 配信することを示します。​`deliveryDelay`​ の最大値は 15 分です。
    
    詳細は、​[「遅延したメッセージの配信」](https://docs.mulesoft.com/jp/mq/mq-glossary#delay-messages)​を参照してください。
4. **\[Delivery Delay Unit (配信遅延単位)\]**​ メニューから単位を選択します。

### [](#メッセージグループ-id-の設定)メッセージグループ ID の設定

FIFO キューを使用する場合、​`messageGroupID`​ パラメーターを使用して送信メッセージにメッセージグループ ID を割り当てることができます。

1. Publish 操作を選択します。
2. **\[Advanced (詳細)\]**​ タブをクリックします。
3. **\[Message Group ID (メッセージグループ ID)\]**​ 項目に ID を入力します。
    
    ![Anypoint MQ Publish の \[Advanced (詳細)\] タブ - \[Message Group ID (メッセージグループ ID)\]](_images/amq-3x-publish-advanced-groupid.png)
    
    デフォルトでは、FIFO キューに送信されるすべてのメッセージに自動生成された同じグループ ID が割り当てられます。
    
    詳細は、​[「FIFO キューとメッセージグループ」](https://docs.mulesoft.com/jp/mq/mq-queues#fifo-queues-msg-groups)​を参照してください。

メッセージグループを最大限に活用するには、各グループのメッセージ数を少なくしてより詳細なグループを定義します。 たとえば、複数のユーザーからのメッセージを処理する場合、各ユーザーのイベントの相対的な順序を維持するために、ユーザーの ​`userId`​ 値をメッセージグループ ID として使用します。

### [](#コンテンツタイプの伝播)コンテンツタイプの伝播

メッセージ本文のコンテンツタイプが Anypoint MQ メッセージのプロパティとして伝播されるかどうかを指定するには、​`sendContentType`​ パラメーターを使用します。

このパラメーターを ​`true`​ に設定すると、自動的に ​`contentType`​ プロパティが送信メッセージに追加されます。これは、メッセージ本文が ​`application/json`​ または ​`application/xml`​ 形式であることを宣言する場合に役立ちます。

## [](#関連情報)関連情報

- [Anypoint MQ Subscriber ソース](https://docs.mulesoft.com/jp/anypoint-mq-connector/3.x/anypoint-mq-listener)
- [Anypoint MQ の用語集](https://docs.mulesoft.com/jp/mq/mq-glossary)
- [キューの設定と使用](https://docs.mulesoft.com/jp/mq/mq-queues)