1. 開始方法

開始方法

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

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

複数の Azure Functions を 1 つの Azure Function App にグループ化できます。一般的に使用される Azure Functions は、次のとおりです。

  • HttpTriggerは、API 呼び出しアクションと統合します。
public static class SetIsReleased
{
    [FunctionName("SetIsReleased")]
    public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "head", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
    {
      // Do something
      return req.CreateResponse(HttpStatusCode.OK);
    }
}
  • ServiceBusTrigger は、Azure Service Bus アクションと統合します。 この関数は、新しいアイテムが Azure Service Bus に配置されるつどトリガーされます。
public static class SetIsReleasedAzureServiceBus
{
    [FunctionName("SetIsReleasedAzureServiceBus")]
    public static async Task Run([ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBusConnection")]string myQueueItem, TraceWriter log)
    {
      // Do something
    }
}
  • TimerTriggerは、スケジュールされたアクションを実行します。 関数レベルの CRON 式でスケジュールを定義します。 これらの関数は、Sitecore Content Hub からではなく、Azure 内からトリガーされます。
public static class Test
{
    [FunctionName("Test")]
    public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, TraceWriter log)
    {
        log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
    }
}

トリガーによって Sitecore Content Hub から送信される要求 (条件が一致した場合のみ) には、target_ididentifier のような、事前定義されたヘッダーが含まれます。 これらの値は、Web クライアント SDK を使用して、関数内で Sitecore Content Hub からエンティティを取得するために使用できます。 PUT または POST メソッドが使用されている場合、要求本文には、変更セット、ユーザー、タイムスタンプなど、イベントに関する補足情報を含む詳細なメッセージが含まれます。

// Extract target id from request header
var targetId = req.Headers.GetValues("target_id").FirstOrDefault();
var id = long.Parse(targetId);
// Extract message from request body
var value = await req.Content.ReadAsStringAsync();
var message = JToken.Parse(value)["saveEntityMessage"];

Azure Functions の最大実行時間は 5 分であるため、ある程度小規模な処理にする必要があることに注意してください。 処理に時間がかかる場合は、処理の実行を複数の関数またはアクティビティに分割し、Logic App または Azure Durable Functions を使用してチェーン化することをお勧めします。

この記事を改善するための提案がある場合は、 お知らせください!