すべてのプロダクト
Search
ドキュメントセンター

Function Compute:Simple Message Queue (旧称:MNS) キュートリガー

最終更新日:Apr 01, 2026

Simple Message Queue (旧称:MNS) キュートリガーを使用すると、キューにメッセージが到着するたびに、Function Compute の関数を自動的に実行できます。このトリガーは EventBridge によって実現されています。Function Compute コンソールでトリガーを作成すると、Function Compute がお客様に代わって EventBridge 上に必要なイベントストリームを作成します。イベントストリームの詳細については、「概要」をご参照ください。

トリガーが有効になると、ソースキューにエンキューされた各メッセージに対して、関連付けられた関数が実行されます。メッセージは、バッチ構成に応じて個別またはバッチ単位で配信されます。このパターンは、エンドツーエンドのストリーミングデータ処理に適しています。

制限事項

  • Simple Message Queue (旧称:MNS) キューと Function Compute 関数は、同一のリージョンに配置されている必要があります。

  • Alibaba Cloud アカウントが EventBridge のイベントストリーム使用上限に達した場合、追加の Simple Message Queue (旧称:MNS) キュートリガーを作成できません。現在の使用制限については、「使用制限」をご参照ください。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

ステップ 1:トリガーの作成

  1. Function Compute コンソールにログインし、ご利用の関数をクリックします。

  2. 関数の詳細ページで、[構成] タブをクリックし、[トリガー] に移動して、[トリガーの作成] をクリックします。

  3. トリガー設定を入力します。[呼び出し方法] が主要な設定項目です。詳細については、「同期呼び出し」および「非同期呼び出し」をご参照ください。

    呼び出し方法動作最大ペイロード使用タイミング
    [同期呼び出し]Function Compute は、次のイベントまたはバッチを配信する前に、関数の戻り値を待機します32 MB順序または逐次処理が重要な場合
    [非同期呼び出し]Function Compute はイベントを配信後、直ちに次のイベントへと進みます。関数はバックグラウンドで実行されます128 KBイベントを高速に消費したい高スループットのシナリオ
  4. [OK] をクリックします。

image

プッシュ設定、リトライポリシー、デッドレターキューなどの高度な設定については、「トリガーの高度な機能」をご参照ください。

トリガーが作成されると、[トリガー] タブに表示されます。編集または削除を行う場合は、「トリガーの管理」をご参照ください。

ステップ 2:(任意)テストパラメーターの構成

関数は、Simple Message Queue (旧称:MNS) のイベントを event パラメーター(CloudEvents 形式のオブジェクト配列)として受信します。実際のメッセージを送信せずに機能コードをテストするには、イベントを手動でシミュレートします。

  1. [コード]」タブで、[テスト関数] の横にある image.png アイコンをクリックし、[テストパラメーターの設定] を選択します。

  2. [テストパラメーターの構成] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] をクリックし、イベント名と以下のイベント内容を入力して、[OK] をクリックします。

サンプルの event ペイロード:

[
  {
    "id": "c2g71017-6f65-fhcf-a814-a396fc8d****",
    "source": "MNS-Function-mnstrigger",
    "specversion": "1.0",
    "type": "mns:Queue:SendMessage",
    "datacontenttype": "application/json; charset=utf-8",
    "subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
    "time": "2021-04-08T06:28:17.093Z",
    "aliyunaccountid": "164901546557****",
    "aliyunpublishtime": "2021-10-15T07:06:34.028Z",
    "aliyunoriginalaccountid": "164901546557****",
    "aliyuneventbusname": "MNS-Function-mnstrigger",
    "aliyunregionid": "cn-chengdu",
    "aliyunpublishaddr": "42.120.XX.XX",
    "data": {
      "requestId": "606EA3074344430D4C81****",
      "messageId": "C6DB60D1574661357FA227277445****",
      "messageBody": "TEST"
    }
  },
  {
    "id": "d2g71017-6f65-fhcf-a814-a396fc8d****",
    "source": "MNS-Function-mnstrigger",
    "specversion": "1.0",
    "type": "mns:Queue:SendMessage",
    "datacontenttype": "application/json; charset=utf-8",
    "subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
    "time": "2021-04-08T06:28:17.093Z",
    "aliyunaccountid": "164901546557****",
    "aliyunpublishtime": "2021-10-15T07:06:34.028Z",
    "aliyunoriginalaccountid": "164901546557****",
    "aliyuneventbusname": "MNS-Function-mnstrigger",
    "aliyunregionid": "cn-chengdu",
    "aliyunpublishaddr": "42.120.XX.XX",
    "data": {
      "requestId": "606EA3074344430D4C81****",
      "messageId": "C6DB60D1574661357FA227277445****",
      "messageBody": "TEST"
    }
  }
]

イベントフィールドのリファレンス

配列内の各要素は、CloudEvents 仕様 に準拠しています。

CloudEvents エンベロープフィールド

フィールド説明
idStringc2g71017-6f65-fhcf-a814-a396fc8d****一意のイベント ID
sourceStringMNS-Function-mnstriggerイベントソース識別子(イベントバス名)
typeStringmns:Queue:SendMessageイベントタイプ
subjectStringacs:mns:cn-hangzhou:...:queues/zeusソースキューの ARN
timeString2021-04-08T06:28:17.093Zメッセージがエンキューされた時刻(ISO 8601)
specversionString1.0CloudEvents 仕様のバージョン
datacontenttypeStringapplication/json; charset=utf-8data フィールドのコンテンツタイプ
aliyunregionidStringcn-chengduキューが配置されているリージョン
aliyunaccountidString164901546557****Alibaba Cloud アカウント ID
aliyunpublishtimeString2021-10-15T07:06:34.028ZEventBridge がイベントを公開した時刻

data フィールド

フィールド説明
requestIdString606EA3074344430D4C81****メッセージ送信リクエストの一意の ID
messageIdStringC6DB60D1574661357FA227277445****メッセージの一意の ID
messageBodyStringTESTメッセージ本文の内容

ステップ 3:関数の記述とテスト

トリガーが作成された後、関数コードを記述・デプロイし、エンドツーエンドでトリガーが正しく動作することを検証します。

関数コードの記述とデプロイ

[コード] タブでハンドラを記述し、[コードのデプロイ] をクリックします。

以下の Node.js の例では、関数コードの記述方法を示します。

'use strict';
/*
初期化機能を有効化するには、
以下のように initializer 関数を実装してください:
exports.initializer = (context, callback) => {
  console.log('初期化中');
  callback(null, '');
};
*/
exports.handler = (event, context, callback) => {
  console.log("event: %s", event);
  // イベントの解析と処理。
  callback(null, 'return result');
}

関数のテスト

以下のいずれかの方法でテストを行います。

  • シミュレートされたイベント: ステップ 2 でテストイベントを構成済みの場合、[コード] タブの [関数のテスト] をクリックします。

  • 実際のメッセージ: Simple Message Queue (旧称:MNS) コンソールにログインし、ソースキューを選択して、[メッセージの送信] をクリックします。

image

関数が実行された後、[リアルタイムログ] で出力を確認できます。

image

次のステップ