我有以下代码用于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无法设置多个自定义状态任何文档。
1条答案
按热度按时间zkure5ic1#
如何在Orchestrator函数中获取Azure持久函数活动状态?
是否有任何方法可以在statusQueryGetUri或Orchestrator中获取持久的Functions活动状态?
statusQueryGetUri需要Functions活动类的Http终结点,该活动类还需要系统键作为管理终结点。因为状态终结点URL包含与statusQueryGetUri字段相同的值。
即使可以使用PowerShell代码将自定义状态设置为持久活动函数,也可以使用HTTP GET API请求查询状态。
请参阅Marc’s答案,了解如何使用Http终结点和Azure Functions Core Tools Cmdlet获取活动函数状态。