2017-08-08 31 views
3

我的Azure函數的function.json的日程安排設置爲每日9.30運行。我想要的是動態設置此json的schedule屬性。當使用我的應用程序的客戶輸入日期時,就會出現這種情況,在該日期 - 調度程序應該運行。動態設置Azure函數中的日程安排

{ 
    "bindings": [ 
    { 
     "name": "myTimer", 
     "type": "timerTrigger", 
     "direction": "in", 
     "schedule": "0 30 9 * * *" //Want to set dynamically 
    } 
    ], 
    "disabled": false 
} 

這可能嗎?

(另請注意,我不想使用Azure的計劃由於預算的原因)

回答

2
  1. 使用捻API改變function.json https://github.com/projectkudu/kudu/wiki/REST-API

    PUT的https:// {functionAppName } .scm.azurewebsites.net/API/VFS/{} pathToFunction.json, 頭:如果-匹配: 「*」, 身體:新function.json內容

  2. 然後發送請求,申請昌ES

    POST的https:// {} functionAppName .scm.azurewebsites.net/API /功能/ synctriggers

或者你可以使用隊列觸發與 「initialVisibilityDelay」 的消息。在這種情況下,您需要編寫自己的代碼來實現調度程序。

+0

感謝您的回答。只要我嘗試這些步驟,我會告訴你他們是否爲我工作。 –

+0

嗨,我試着按照你的步驟,但它給了我_401 - 未經授權:由於證書無效,訪問被拒絕._我使用郵遞員進行這些API調用。哪些憑據發送和API調用? –

+0

哇!我發送用戶名和密碼(我的功能應用程序的發佈配置文件)作爲授權,它的工作就像魅力。非常感謝:) –

1

您可以修改您的function.json以從應用程序設置中獲取cron表達式。

「時間表」: 「%TriggerSchedule%」

在AppSettings的定義TriggerSchedule。您可以動態修改您的appsettings,並且函數觸發器將與它對齊。

+0

有趣。我試過你的方式,但我該如何動態修改Azure門戶的appsettings?您能否提供更多詳細信息 –

+0

您可以使用powershell cmdlet New-AzureRmResource修改appsettings – Tany