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

Cloud Config:EventBridge を使用して SMQ 配信イベントを DingTalk に送信する

最終更新日:Jun 04, 2026

EventBridge を使用して、Simple Message Queue (旧称:MNS) からのリソースコンプライアンスイベントを DingTalk グループに転送します。

前提条件

概要

Cloud Config は、Simple Log Service、Object Storage Service (OSS)、または SMQ にイベントを配信します。 EventBridge を使用すると、これらのイベントを DingTalk、Message Queue、Function Compute、Short Message Service、または Alibaba Mail などの追加のチャネルにルーティングできます。 このトピックでは、リソースの非準拠イベントを例に挙げます。EventBridge のイベントフローは、非準拠の検出をイベントに変換し、指定された形式で DingTalk に送信します。

ステップ 1:SMQ トピックとキューの作成

  1. SMQ トピックを作成します。

    トピックを作成する

  2. SMQ キューを作成します。

    キューを作成する

  3. トピックに送信されたメッセージがキューにプッシュされるように、キューを SMQ トピックにサブスクライブします。

    サブスクリプションの作成と使用

説明

すでに SMQ トピックとキューがある場合は、このステップをスキップできます。

ステップ 2:SMQ へのイベント配信の設定

  1. Cloud Config ルールを作成します。

    マネージドルールに基づいてルールを作成するか、Function Compute に基づいてカスタムルールを作成します。

  2. SMQ へのイベント配信を設定します。

    MNS トピックにリソースデータを配信する

説明

すでに SMQ 配信が設定された Cloud Config ルールがある場合は、このステップをスキップできます。

ステップ 3:EventBridge イベントバスの作成とイベント配信の設定

  1. EventBridge コンソールにログインします。

  2. 左側のナビゲーションペインで、EventBridge をクリックします。

  3. 上部メニューで、リージョンを選択します。

  4. input タブで、[クイック作成] をクリックします。

  5. [カスタムイベントバスの作成] パネルで、パラメーターを設定します。

    1. [イベントバス] ページで、カスタムイベントバスの名前と説明を入力し、Next をクリックします。

    2. イベント源 ページで、次のパラメーターを設定し、Next をクリックします。

      1. [イベントソース名] を指定します。 この例では、 noncompliant.event を入力します。

      2. [イベントプロバイダー] ドロップダウンリストから、軽量メッセージ キュー (以前の MNS) を選択します。

      3. QueueNameを選択します。

      4. [Base64 デコードを有効にする] を選択します。

    3. [ルール] ページで、次のパラメーターを設定し、Next をクリックします。

      1. Rule Name には、noncompliant-resource-rule などの名前を入力します。

      2. イベントをフィルターするには、[パターンコンテンツ]を設定します。

        以下の設定では、ソースが noncompliant.event であるイベントのみをイベントターゲットに配信します。 イベントパターン

        {
            "source": [
                "noncompliant.event"
            ]
        }
    4. ターゲット ページで、次のパラメーターを設定し、作成 をクリックします。

      1. サービスタイプドロップダウンリストから、[acs.dingtalk] を選択します。

      2. DingTalk グループの Webhookアドレス[シークレットキー] を設定します。

      3. [プッシュコンテンツ] パラメーターを設定します。

        次のテンプレートは、非準拠イベントからリソースの Alibaba Cloud Resource Name (ARN) とルール名を抽出し、DingTalk にプッシュします。イベント変換

      // 変数
      {
        "resourceArn": "$.data.messageBody.evaluationResultIdentifier.evaluationResultQualifier.resourceArn",
        "configRuleName": "$.data.messageBody.evaluationResultIdentifier.evaluationResultQualifier.configRuleName"
      }
      // テンプレート
      {
        "msgtype": "text", 
        "text": {
            "content": "リソース非準拠通知:リソース:${resourceArn}。ルール名:${configRuleName}"
        }
      }

ステップ 4:結果の確認

  1. Cloud Configコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[コンプライアンスと監査] > [ルール] を選択します。

  3. ルール ページで、目的のルールを見つけ、Actions 列の image..png アイコンをクリックし、Re-evaluate をクリックします。

  4. ステップ 3 で設定した DingTalk グループに移動し、チャットボット通知を確認します。

    グループにリソース非準拠通知が表示されている場合、設定は成功しています。

よくある質問

イベント配信用に設定した SMQ トピックをイベントバスのイベントソースとして使用できますか?

いいえ。EventBridge イベントバスは、イベントソースとして SMQ キューのみをサポートしています。SMQ トピックのキューを設定し、そのキューをイベントソースとして使用してください。

EventBridge イベントフローを設定して手動で評価を実行した後、DingTalk が通知を受信しないのはなぜですか?

  1. 非準拠リソースが存在しない場合、通知は送信されません。Cloud Config コンソールで非準拠リソースが存在することを確認してください。

    1. Cloud Config コンソールにログインします。

    2. 左側のナビゲーションペインで、[コンプライアンスと監査 > ルール] の順に選択します。

      ルール評価結果で非準拠リソースを確認します。

  2. EventBridge コンソールでイベント配信を確認します。

    1. [EventBridge コンソール]にログオンします。

    2. 左側のナビゲーションペインで、EventBridge をクリックします。

    3. EventBridge ページで、イベントバスを見つけ、Actions 列の [イベント追跡] をクリックします。

      時間範囲でイベントをクエリし、イベントソースにデータが存在することを確認します。

    4. 対象のイベントを見つけ、Actions 列の [イベントトレース] をクリックします。

      [イベントトレース] ダイアログボックスで、イベントが配信されたことを確認します。

EventBridge のイベント配信が失敗した場合はどうすればよいですか?

  • エラーメッセージ [500]java.lang.RuntimeExceptionjava.lang.RuntimeExceptionjava.lang.RuntimeException is missing parameter JSON が表示される場合は、次の手順を実行します。

    $.data オブジェクトのキーと値のペアに、エスケープされていない引用符が含まれていないことを確認してください。エスケープされていない引用符は、変数置換後に JSON 文字列を切り捨てます。引用符を含む可能性のある変数を処理するには、ルールテンプレートで組み込みの jsonEscape ツールを使用してください。次の例では、jsonEscapeconfigRuleName 変数をエスケープします。

    // 変数
    {
      "resourceArn": "$.data.messageBody.evaluationResultIdentifier.evaluationResultQualifier.resourceArn",
      "configRuleName": "$.data.messageBody.evaluationResultIdentifier.evaluationResultQualifier.configRuleName"
    }
    // テンプレート
    {
      "msgtype": "text", 
      "text": {
          "content": "リソース非準拠通知:リソース:${resourceArn}。ルール名:${jsonEscape(configRuleName)}"
      }
    }
  • エラーメッセージ [500]java.lang.RuntimeExceptionjava.lang.RuntimeExceptionjava.lang.RuntimeExceptionsendtoofast,exceed20timesperminute が表示される場合:

    DingTalk のカスタムチャットボットには、1 グループあたり毎分 20 メッセージのレート制限があります。この制限を超えると、10 分間のスロットリングが適用されます。監視アラートなどの大量のメッセージを送信するには、それらを 1 つの Markdown メッセージに統合してください。