如何在Orchestrator函数中获取Azure持久函数活动状态?

z9ju0rcb  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(143)

我有以下代码用于Orchestrator函数run.ps1

param($Context)
$output = @()
$input="test"
$output1 = Invoke-DurableActivity -FunctionName 'storage_account' -Input $input -nowait
Wait-ActivityFunction -Task $output1
$output1

function.json

{
  "bindings": [
    {
      "name": "Context",
      "type": "orchestrationTrigger",
      "direction": "in"
    }
  ]
}

活动触发器-- storage_account函数.json

{
      "bindings": [
        {
          "name": "name",
          "type": "activityTrigger",
          "direction": "in"
        }
      ]
    }

执行.ps1

param($name)
$rg="test"
$location="westus"
$checkname = (Get-AzStorageAccountNameAvailability $name).NameAvailable

If($checkname -eq "False"){
$name= $name + "date"+(get-date -Format MMdd)+"time"+(get-date -Format hhmm)
}
 "Storage Account $name :inprogress"
$accountstatus = New-AzStorageAccount -Name $name -ResourceGroupName $rg -SkuName Standard_LRS -Location $location 
IF(($accountstatus.ProvisioningState) -eq 'Succeeded'){
    "Storage Account $name :Created"
}

是否有任何方法可以在statusQueryGetUri或Orchestrator中获取持久的Functions活动状态?当前的结果将在所有活动完成后获取,但我需要每个活动(如创建或已创建)的结果。我可以使用

**更新:**我可以使用(docs:www.example.com Set-DurableCustomStatus)获取单个状态https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-custom-orchestration-status?tabs=powershell#querying-custom-status-with-http,只能存储单个状态,如果我使用customstatus两次,则第二个(或输出中显示的最后一个)将显示在输出中,而第一个将消失。但我正在寻找类似以下的状态

{
  "customStatus": ["Completed", "Completed", "Started", "Started", "Completed"]
}

文件:https://joonasw.net/view/track-activity-and-sub-orchestrator-progress-in-azure-durable-functions-orchestrators
C#实现了多个状态,但我无法看到powershell无法设置多个自定义状态任何文档。

zkure5ic

zkure5ic1#

如何在Orchestrator函数中获取Azure持久函数活动状态?
是否有任何方法可以在statusQueryGetUri或Orchestrator中获取持久的Functions活动状态?

statusQueryGetUri需要Functions活动类的Http终结点,该活动类还需要系统键作为管理终结点。因为状态终结点URL包含与statusQueryGetUri字段相同的值。

即使可以使用PowerShell代码将自定义状态设置为持久活动函数,也可以使用HTTP GET API请求查询状态。
请参阅Marc’s答案,了解如何使用Http终结点和Azure Functions Core Tools Cmdlet获取活动函数状态。

相关问题