\を含むスコープの深刻度およびAPI[イベントの手動呼び出し]について

完了

コメント

7件のコメント

  • Kompiraサポートチーム

    お問い合わせありがとうございます。

    「\」が含まれる文字列に対しては、想定外の挙動だったためご教示いただきたく。

    API[イベントの手動呼び出し]でバックスラッシュを含む深刻度名を指定する場合、
    バックスラッシュ は「エスケープ文字」として特別な意味を持つため、””(ダブルクォート)の中にそのまま書くと正しく解釈されずエラーとなります。
    バックスラッシュ 1 文字表現するには 「\\」 とバックスラッシュを二重に記述する必要があります。

    つまり、深刻度を「深刻度テスト『D:\』」と指定したい場合は、次のように書く必要があります。

    "severityName": "深刻度テスト『D:\\』"

    一方で、以下のように書いた場合は不正な形式となり、APIは 400 エラーを返します。

    "severityName": "深刻度テスト『D:\』"     // バックスラッシュ不足
    "severityName": "深刻度テスト『D:\\\』"   // バックスラッシュが不完全

    ご提示いただいた深刻度①〜④を API で指定する場合は、それぞれ次のような指定をお試しいただけますでしょうか。

    ① 深刻度テスト『D:\』 → "深刻度テスト『D:\\』" ★1
    ② 深刻度テスト『D:\\』 → "深刻度テスト『D:\\\\』"
    ③ 深刻度テスト『D:\\\』 → "深刻度テスト『D:\\\\\\』"
    ④ 深刻度テスト『D:\\\\』 → "深刻度テスト『D:\\\\\\\\』"

    (補足)

    ご提示いただいた通り、画面上で「深刻度テスト『D:\』」と表示されている深刻度は、ランブックの入力パラメータとしては次のように扱われます。

    event {
     ...
        "severityName": "深刻度テスト『D:\\』",
    }

    この入力パラメータでランブックから Body が以下のように記述されているWebhook アクションを実行する場合、{{event.severityName}} は「深刻度テスト『D:\\』」となります。

    これは上記 ★1 と同様のAPI呼び出しとなりますので、このアクションをトリガーきっかけのランブックから実行すると、結果、画面上「深刻度テスト『D:\』」と表示されている深刻度がゼロに設定されます。

    {
      "method": "set",
      "severityName": "{{event.severityName}}", // 実際には "深刻度テスト『D:\\』" となる
      "value": 0
    } 

    ご確認いただけますと幸いです。よろしくお願いいたします。

    0
    コメントアクション パーマリンク
  • takenaka

    ご確認いただきありがとうございます。
    仕様自体は理解しました。

    以下のような処理を設定しており、
    画像の通りに設定してもうまくいかない原因について、教えていただくことは可能でしょうか。

    ■処理のフロー
    受信スロット⇒スコープ⇒ランブック

    ■設定内容

    スコープの設定として、{{severityName}}という変数を作成し、この名称で深刻度の作成を行っております。


    本設定で深刻度(深刻度テスト『D:\\』)の作成は行えました。

      "scopeSeverities": {
        "深刻度テスト『D:\\』": 1
      },
      "event": {
      "eventId": "xxx-xxx-xxx-xxx-xxx",
        "severity": 1,
        "previousSeverity": 0,
      "scopeId": "yyy-yyy-yyy-yyy-yyy",
        "severityName": "深刻度テスト『D:\\』",
        "method": "increase",
        "value": 1,


    ランブックに与えられている深刻度名(scopeSeverities)および作成した変数(severityName)も
    深刻度テスト『D:\\』となっており一致していることが確認できております。

    {
      "method": "set",
      "severityName": "{{event.severityName}}",
      "value": 0
    }


    ランブック内でこの{{event.severityName}}を指定して、値を0に変更するような処理になっており、
    変数(severityName)は深刻度テスト『D:\\』となっているため、説明いただいた内容だとリセットされる認識です。

    ただし、実際には[400 Bad Request]として異常終了されてしまいます。

    この原因について教えていただくことは可能でしょうか。

    0
    コメントアクション パーマリンク
  • Kompiraサポートチーム

    ただし、実際には[400 Bad Request]として異常終了されてしまいます。
    この原因について教えていただくことは可能でしょうか。

    Webhook アクションの HTTP ヘッダに 「Content-Type: application/json」 が設定されているかご確認いただくことは可能でしょうか。また、存在しない場合は上記を追加の上動作を確認いただくことは可能でしょうか。

    よろしくお願いいたします。

    0
    コメントアクション パーマリンク
  • takenaka

    本件、追加することで改善できました。
    ご教示いただきありがとうございます。

    私の理解が及ばず恐縮ではございますが、最後に1点ご教示いただけますと大変助かります。
    KompiraCloudのAPIドキュメントに記載されているAPIについて、
    Webhookアクションで実行する場合は基本的に「Content-Type: application/json」 を追加する形でアクションを作成したほうが良いのでしょうか。

    それとも、その他のContent-Typeとの使い分けが必要でしょうか。

    0
    コメントアクション パーマリンク
  • Kompiraサポートチーム

    Webhookアクションのヘッダに「Content-Type: application/json」が追加されると、AlertHub はリクエスト本文のデータがJSON形式であると認識し、埋め込んだフィールド値({{event.severityName}} など)を展開する際に自動的に JSON エスケープを行います(今回ヘッダを追加いただくことで400エラーが解消されたのはこちらの挙動により本文内のバックスラッシュが \\ とされて、APIが実行されるようになったためです)。

    また、Kompira cloud のAPIは基本的にリクエスト本文がJSON形式であることを期待したものとなっておりますので、本文でデータを送信する際は、ヘッダに「Content-Type: application/json」(=送受信されるデータがJSON形式であることを示しています)を追加してご利用いただければと思います。

     

    よろしくお願いいたします。

    0
    コメントアクション パーマリンク
  • Kompiraサポートチーム

    お世話になっております。
    先日回答させていただきましたが、その後、ご状況はいかがでしょうか?

    よろしくお願いします。

    0
    コメントアクション パーマリンク
  • takenaka

    ご連絡が遅くなってしまい申し訳ございません。

    本件、ご回答いただいた設定値で問題なく動作いたしました。
    そのため、本件はクローズいただいて問題ございません。

    ご回答いただき、ありがとうございました。

    0
    コメントアクション パーマリンク

サインインしてコメントを残してください。