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

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

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

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

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

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

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

![\[Destination (宛先)\] が \[invoiceQueue\] に設定されている Publish 設定ウィンドウ](_images/amq-4x-publish-operation.png)

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

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

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

![ペイロードとメッセージ属性を含む Mule メッセージ出力](/mulesoft/current/ja-jp/anypoint-mq-connector/latest/_images/amq-4x-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 を使用してキーと値のマップを定義します。

次に例を示します。

![AUTH\_TYPE 属性と AUTH\_TOKEN 属性が表示されているコネクタ設定](/mulesoft/current/ja-jp/anypoint-mq-connector/latest/_images/amq-4x-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 (メッセージブラウザー)\]](_images/amq-4x-publish-user-props.png)

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

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

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

![DataWeave 変換が表示されているコネクタ設定](/mulesoft/current/ja-jp/anypoint-mq-connector/latest/_images/amq-4x-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`​ 値を設定します。

![\[Message ID (メッセージ ID)\] が \[12345\] に設定されている Publish 設定ウィンドウの \[Advanced (詳細)\] タブ](_images/amq-4x-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 (配信遅延)\]**​ パラメーターを遅延する時間に設定します。
    
    ![\[Delivery Delay (配信遅延)\] が \[2000\] に設定されている Publish 設定ウィンドウの \[Advanced (詳細)\] タブ](_images/amq-4x-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 を入力します。
    
    ![\[Message Group ID (メッセージグループ ID)\] が \[#\[vars.userId\]\] に設定されている Publish 設定ウィンドウの \[Advanced (詳細)\] タブ](_images/amq-4x-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/latest/anypoint-mq-listener)
- [Anypoint MQ の用語集](https://docs.mulesoft.com/jp/mq/mq-glossary)
- [キューの設定と使用](https://docs.mulesoft.com/jp/mq/mq-queues)