1. トリガーの使用

ベスト プラクティス

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

トリガーの使いやすさとパフォーマンスを向上させるには、次のベスト プラクティスに従ってください。

  • 不必要な実行時間をさけるために、条件は、Azure 関数レベルではなく、トリガー レベルで設定します。

  • タイムアウトは、アクション レベルで使用します。アクションが失敗するか、アクション レベルでタイムアウトを超えると、常にトリガーが再度呼び出されます。既定では、トリガーの最大再試行回数は 3 に設定されています。これを変更するには、Sitecore Content Hub™ の TriggersConfiguration 設定を変更します。

  • API 呼び出しアクションを設定して、Azure 関数を呼び出すには、HttpTrigger Azure 関数を使用して、アクションを実行する関数の URL を指定します。この URL は、Azure 関数がデプロイされている Azure ポータルで見つけることができます。

  • Content Hub と Azure 関数の間の接続を検証するには、必ず HEAD 要求ヘッダーを使用してください。これは、関数レベルで設定できます。[接続のテスト] をクリックすると、HEAD 要求が指定された URL に送信されます。

    public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "head", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
    {
    // Allow head request to test connectivity with the Markting Content Hub
    if (req.Method == HttpMethod.Head) return req.CreateResponse(HttpStatusCode.OK);
    }
  • アクションとして Azure Service Bus を選択すると、Content Hub からのメッセージ (すなわち、詳細なイベント) が、アクションで接続の詳細が提供された Azure Service Bus のキューに置かれます。

  • サポートされているメソッドは、GET、PUT、POST です。要求ヘッダーは、要求ごとに渡されます。PUT または POST を使用すると、要求本文にはイベントまたはメッセージの詳細な概要も含まれます (SaveEntityMessageまたは DeleteEntityMessage)。これは、シリアル化された JSON 文字列です。

    • SaveEntityMessage の例:

      {
      "saveEntityMessage": {
      "MessageId": 0,
      "IsNew": false,
      "TargetId": 6334,
      "TargetIdentifier": "FLikN0zW8EGZaaUQedirJA",
      "UserId": 6,
      "Version": 12,
      "TargetDefinition": "M.Asset",
      "ChangeSet": {
      "Culture": "(Default)",
      "PropertyChanges": [{
      "Property": "ReleaseDate",
      "Type": "System.DateTime",
      "OriginalValue": "2017-12-04T08:17:59.178",
      "NewValue": "2017-12-24T08:29:08.297Z"
      }],
      "RelationChanges": [],
      "OriginalInheritsSecurity": true,
      "NewInheritsSecurity": true,
      "OriginalIsRootTaxonomyItem": false,
      "NewIsRootTaxonomyItem": false
      },
      "TimeStamp": "2017-12-11T08:30:12.2817117Z",
      "EventType": "EntityUpdated"
      }
      }
    • DeleteEntityMessage の例:

      {
      "deleteEntityMessage": "{\"MessageId\":0,\"TargetId\":7932,\"TargetIdentifier\":\"2iil0h79OUKZ3WmgaVCxiA\",\"TargetLabel\":\"497632384.mp4\",\"UserId\":7469,\"TargetDefinition\":\"M.Asset\",\"TimeStamp\":\"2017-12-07T16:24:44.769357Z\",\"EventType\":\"EntityDeleted\"}"
      }
この記事を改善するための提案がある場合は、 お知らせください!