通知タスクの作成

API Managerで Engagementを使用すると、定義した条件に基づいて通知を受け取ることができます。

開始前に

API ManagerEngagementを使用するには、少なくとも1つのアクティブなAnalyticsサービスが必要です。 通知タスクを作成する際には、以下の条件を満たす必要があります:

  • 各ルールには、最大7つのフィルター基準と5つのトリガーを設定できる。
  • 各トリガーは3アクションまでしかできない。

このタスクについて

API ManagerEngagement機能は、タスクを自動化する複雑なワークフローを作成し、API管理エクスペリエンス全体を向上させるのに役立つ。 通知タスクの作成中に定義された基準に基づいて、各ユーザーは通知を受け取ります。

通知タスクの作成

Engagementを使用するには、 API Managerの エンゲージメント・アイコン をクリックし、必要に応じて条件を指定する。

通知先、ルール、トリガー、アクションを設定することで、通知タスクを作成できます。
  1. destination を設定します。これは、通知タスクを受信する HTTP (S) エンドポイントの定義です。 詳細については、 デスティネーションの作成を参照してください。
  2. 定義されたスケジュールで実行され、データ・ソースにクエリーを送信するジョブである 'rule を構成する。 詳細はルールの作成を参照。
  3. イベントを発生させる条件を定義する'triggerを設定する。 詳細については、トリガーの追加を参照してください。
  4. 通知タスクがトリガーされた後の動作を定義する'actionを設定する。 詳細については、アクションの追加を参照してください。

宛先の作成

  1. 宛先の作成 」タブをクリックします。
  2. Destination をクリックする。
  3. Createをクリックし、以下の詳細を入力する:
    1. タイトル 」には、目的地のタイトルを入力します。
    2. Description(説明) ボックスには、説明を入力してください。
    3. Webhookを設定するには、以下の手順に従います
      1. Webhook を type として選択する。
      2. Method のリストからオプションを選択し、 HTTP の宛先指定方法をご指定ください。 利用可能なオプションは、 POSTPUTPATCH です。
      3. Webhook URL フィールドに、ターゲットの HTTP (S) エンドポイントを入力します。
      4. オプション :追加の HTTP ヘッダーを追加するには、 [追加] をクリックします。
    4. PagerDuty, を設定するには、以下の手順に従ってください
      1. PagerDuty をタイプとして選択します。
      2. pagerduty integration routing keyRouting key の欄に入力してください。 pagerduty integration の詳細については、 サービスと統合を参照してください。
        注: PagerDuty, と統合する場合は、統合タイプとして Events API v2 を選択してください。
    5. Slackを設定するには、以下の手順に従います
      1. タイプとしてSlackを選択します。
      2. Token のフィールドに、Slack APIトークンを入力します。
      3. Channel ID の欄に、お客様の Channel ID を入力してください。 Token and Channel ID の詳細については、 Slack API ボットトークンをすばやく取得して使用する方法をご覧ください。
        注: チャンネル名ではなく、チャンネルIDを使用してください。 例: C1234567890
    6. Amazon Simple Notification Serviceを設定するには、以下の手順を実行します:
      注: Amazon SNS for Engagementを有効にするには、 AWS クライアントシークレットを作成し、アナリティクスカスタムリソースYAMLファイルでそのシークレットを参照する必要があります。 詳細については、 Amazon SNSを有効にするを参照してください。
      1. タイプとしてAmazon SNSを選択します。
      2. トピックARN フィールドに、Amazon SNSトピックのARNを入力します。
      3. Role ARN フィールドに、Amazon SNSロールのARNを入力します。
    7. Kafka HTTP Bridgeを設定するには、以下の手順に従います
      1. Webhook を type として選択する。
      2. Method のリストからオプションを選択し、 HTTP の宛先指定方法をご指定ください。 利用可能なオプションは、 POSTPUTPATCH です。
      3. Webhook URL フィールドに、ターゲットの HTTP (S) エンドポイントを入力します。
        http://<route-name>.apps.<cluster-name>.<namespace>.com/topics/<topic-name>
        Kafka HTTP Bridge の設定については、 Kafka Bridge を使った HTTP 経由での接続を参照。
      4. Add +をクリックして、 HTTP ヘッダーを追加する。
      5. Namecontent-type を入力します。
      6. Value の欄に application/vnd.kafka.json.v2+json と入力してください。
      7. ルールのトリガーアクションで、 Kafka トピックに送信するJSONペイロードを定義します。
      注: Kafka の設定を確認し、必要に応じてペイロードフォーマットを調整してください。 次の例は、一部の Kafka 実装で必要とされるJSONメッセージのフォーマットを示しています
      {
           "records": [
              {
                  "key": "my-key",
                  "value": "my-value"
              }
          ]
      }
    8. IBM MQ を設定するには、以下の手順に従ってください
      1. Webhook を type として選択する。
      2. Method のリストからオプションを選択し、 HTTP の宛先指定方法をご指定ください。 利用可能なオプションは、 POSTPUTPATCH です。
      3. Webhook URL フィールドに、ターゲットの HTTP (S) エンドポイントを入力します。
        https://<host>:<port>/ibmmq/rest/v3/messaging/qmgr/<your_qm_name>/queue/<your_queue_name>/message
        IBM MQ messaging REST API の詳細については、 IBM MQ messaging REST API を参照のこと。
      4. Add +をクリックして、 HTTP ヘッダーを追加する。
      5. Namecontent-type を入力します。
      6. Value のフィールドには、使用しているコンテンツタイプの値を入力します。例えば、 text/plain;charset=utf-8 などです。
      7. Add +をクリックして、2つ目の HTTP ヘッダーを追加する。
      8. Nameauthorization を入力します。
      9. Value の欄に Basic <base64encodedstring> と入力してください。

        ここで:

        • base64encodedstring username:password をbase64エンコードしたものです。
      10. Add +をクリックして、3つ目の HTTP ヘッダーを追加する。
      11. Nameibm-mq-rest-csrf-token を入力します。
      12. 値のフィールドは空白のままにしておいてください。
        注: 値フィールドが空白の場合でも、このヘッダーが含まれていることを確認してください。 IBM MQ キューマネージャーは、このヘッダーがないとペイロードを拒否します。
    9. IBM Cloud イベント通知サービスを設定するには、以下の手順を実行します:
      注: IBM Cloud イベント通知サービスの宛先は、 API Connect の宛先とはリンクしていません。 API ConnectEngagement を設定する前に、 IBM Cloud Event Notification Service で宛先を設定する必要があります。
      1. Webhook を type として選択する。
      2. Method リストから POST を選択し、宛先の HTTP メソッドを指定する。
      3. Webhook URL フィールドに、ターゲットの HTTP (S) エンドポイントを入力します。
        {base_url}/v1/instances/{instance_id}/notifications 
        ここで:
        ベースURL
        ベースとなる URL のパスを入力する
        instance_id
        インスタンスに対応する識別子を入力
        IBM Cloud Event Notification Service については、 イベント通知APIを参照のこと。
      4. Add +をクリックして、 HTTP ヘッダーを追加する。
      5. Namecontent-type を入力します。
      6. Value の欄に application/json と入力してください。
      7. Add +をクリックして、2つ目の HTTP ヘッダーを追加する。
      8. NameAuthorization を入力します。
      9. Value フィールドに、IAM トークンを入力します。
      10. ルールのトリガーアクションで、通知サービスに送信するJSONペイロードを定義します。 詳細については、 イベント通知APIを参照してください。
  4. 「作成」 をクリックします。

ルールの作成

注: プロバイダー組織ごとに作成できるルールの最大数は10ですが、組織内のすべてのアナリティクスサービス全体で作成できるルールの最大数は10,000です。
  1. ルールをクリックする。
  2. Createをクリックし、以下の詳細を入力する:
    1. タイトル] フィールドに、ルールの Title
    2. Scheduleセクションで、このルールを実行するスケジュールを指定する。 スケジュールは、時間間隔またはcron文字列を定義することで指定できます。
    3. 次へ」をクリックしてデータを選択し、クエリを定義する。
    4. Select dataセクションで、ルールを実行するデータに基づいて、Data sourceリストからオプションを選択します。
    5. Queryセクションで、クエリに使用する集計メトリックを定義します。 デフォルトは一致するレコードの数。 数値フィールドには、最大値や期間の平均値など、数学的な集計を使用することもできます。
    6. Data time range for the last(最後のデータ時間範囲)フィールドに、一致するデータ項目の検索を実行する過去の時間範囲を入力します。
    7. Add filter +をクリックし、クエリ実行中に含めたいデータに基づいて最大7つのデータフィルタを選択します。 アナリティクス・イベント・レコードのフィールドはどれでも使用できます。
    8. Add group by +をクリックして、選択したデータをどのようにグループ化したいかに基づいてグループを選択し、ターゲット基準を合理化する。 例えば、24時間以内にステータスコード500のAPIイベントを10件マッチさせるルールは、 Group by on api_name 、全APIの全イベントの合計ではなく、個々のAPIのマッチするイベントを10件呼び出すことができる。
    9. 次へ」をクリックしてトリガーを設定する。

    トリガー+を追加する

    1. Add trigger + をクリックする。最大5つのトリガーを追加できます。
    2. トリガーの詳細セクションで、トリガーに「Title」を指定し、対応するリストから重大度レベルとトリガー条件を選択する。
    3. 深刻度] ドロップダウンリストから、オプションを選択します。
    4. トリガー条件セクションで、必要に応じて条件を設定する。

      数値ターゲットを定義することで、1つのルールが、重大度やトリガー条件の異なる複数のトリガーを持つことができる。 指定された条件が満たされると、各トリガーは最大3つのアクションをトリガーすることができ、異なるエンドポイントや異なるペイロードを呼び出す。

    アクションを追加する

    1. Add action +をクリックして、トリガー条件が満たされたときに発生するアクションを設定する。
    2. Trigger action セクションで、アクションの title
    3. デスティネーションリストから、条件が満たされたときに呼び出されるデスティネーションを選択します。
    4. スロットリングを有効にし、スロットリングウィンドウを定義して、同じ時間帯に同じルールに対して複数のトリガーが発動しないようにする。
    5. ペイロードセクションでは、件名とペイロードの値を入力します。 宛先に表示したいタスクペイロード情報に基づいて、 ペイロードフィールドにコンテキスト変数を追加することができます。 詳細は、 タスク・ペイロードのコンテキスト変数を参照。
      :メッセージの件名は、 HTTP エンドポイントには送信されません。 ペイロード値は、宛先エンドポイントに送信される通知タスクの HTTP 本文として機能します
  3. 保存 をクリックします。
  4. 「完了 (Finish)」 をクリックします。

このタスクでやったこと

API Managerでは、Engagementを使用して、指定された条件に基づいて通知タスクを自動化しました。 タスクステータス]タブは、各トリガーの最新の通知タスクを表示します。