gpt4 book ai didi

azure - 使用 Azure Rest API 和 Postman 更新逻辑应用重复频率

转载 作者:行者123 更新时间:2023-12-03 05:41:19 28 4
gpt4 key购买 nike

我们有一个逻辑应用程序,它每 30 分钟轮询一次服务总线以获取消息。我想使用Postman将轮询频率更新为30秒进行测试。

我可以使用 Azure API 获取与逻辑应用关联的工作流的详细信息,然后获取该工作流中与轮询服务总线关联的触发器。这将返回 JSON,如下所示:

{
"properties": {
"provisioningState": "Succeeded",
"createdTime": "2019-08-13T21:08:14.8768439Z",
"changedTime": "2019-10-21T14:32:46.0204187Z",
"state": "Enabled",
"status": "Running",
"lastExecutionTime": "2019-10-21T14:32:04.149971Z",
"nextExecutionTime": "2019-10-21T14:32:46.285845Z",
"recurrence": {
"frequency": "Second",
"interval": 30
},
"workflow": {
"id": "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.Logic/workflows/<workflow-name>/versions/08586299385548076458",
"name": "08586299385548076458",
"type": "Microsoft.Logic/workflows/versions"
}
},
"id": "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.Logic/workflows/<workflow-name>/triggers/When_a_message_is_received_in_a_topic_subscription_(auto-complete)",
"name": "When_a_message_is_received_in_a_topic_subscription_(auto-complete)",
"type": "Microsoft.Logic/workflows/triggers"
}

在上面的结构中,我想将 "recurrence": { "Frequency": "Second"} 修补为 "recurrence": { "Frequency": "Minute"}

查看REST API documentation我不清楚这是否可能?我看到触发器有一个 setState 选项,其中一个属性是 RecurrenceFrequency,但如果我尝试使用它,则会返回以下错误:

{
"error": {
"code": "WorkflowTriggerSetStateNotSupported",
"message": "The workflow trigger 'When_a_message_is_received_in_a_topic_subscription_(auto-complete)' of type 'ApiConnection' does not support the set state action."
}
}

如果有人能告诉我这是否可能、我做错了什么或给我举一个例子,我将非常感激。

最佳答案

更新的答案和解决方法

不幸的是,尽管 API 文档表明这是可能的,但您无法使用 setState 来更新任何类型的触发器,无论是 native 还是托管、启用还是未启用。

  • native 响应:

{"error":{"code":"WorkflowTriggerSetStateNotSupported","message":"类型为“Recurrence”的工作流触发器“Recurrence”不支持设置状态操作。"}}

  • 托管响应:

{"error":{"code":"WorkflowTriggerSetStateNotSupported","message":"'ApiConnection' 类型的工作流触发器 'sbAuto' 不支持设置状态操作。"}}

您也不能使用 PATCH 动词来更新工作流程:

{"error":{"code":"PatchWorkflowPropertiesNotSupported","message":"不支持修补工作流 'XXXXXXX' 的请求。无法修补属性对象内的任何字段。"}}

我已向 Microsoft 提出此问题。

但是...

可以使用 PUT 动词来更新工作流程。

为了实现此目的,最好使用 GET 动词检索工作流,更新 JSON 重复对象,然后使用 PUT(创建或更新)重新发出。

下面的示例获取了我创建的工作流程的定义tempotesla

请求:

GET https://management.azure.com/subscriptions/651a2541-8d19-42a0-85fe-89a9eee81c48/resourceGroups/TechSouth/providers/Microsoft.Logic/workflows/tempotestla?api-version=2016-06-01 HTTP/1.1
User-Agent: Fiddler
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Length: 0

回应:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 1431
Content-Type: application/json; charset=utf-8
Expires: -1
Vary: Accept-Encoding
x-ms-request-id: uksouth:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-resource-requests: 19999
x-ms-correlation-request-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
x-ms-routing-request-id: UKSOUTH2:20191022T160012Z:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
X-Content-Type-Options: nosniff
Date: Tue, 22 Oct 2019 16:00:11 GMT

{
"properties":{
"provisioningState":"Succeeded",
"createdTime":"2019-10-22T13:27:18.8425031Z",
"changedTime":"2019-10-22T15:59:39.3684114Z",
"state":"Disabled",
"version":"xxxxxxxxxxxxxxxxxxxx",
"accessEndpoint":"https://prod-00.uksouth.logic.azure.com:443/workflows/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"definition":{
"$schema":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion":"1.0.0.0",
"parameters":{

},
"triggers":{
"Recurrence":{
"recurrence":{
"frequency":"Hour",
"interval":5
},
"type":"Recurrence"
}
},
"actions":{
"Terminate":{
"runAfter":{

},
"type":"Terminate",
"inputs":{
"runStatus":"Succeeded"
}
}
},
"outputs":{

}
},
"parameters":{

},
"endpointsConfiguration":{
"workflow":{
"outgoingIpAddresses":[
{
"address":"51.140.74.14"
},
{
"address":"51.140.73.85"
},
{
"address":"51.140.78.44"
},
{
"address":"51.140.137.190"
},
{
"address":"51.140.153.135"
},
{
"address":"51.140.28.225"
},
{
"address":"51.140.142.28"
},
{
"address":"51.140.158.24"
}
],
"accessEndpointIpAddresses":[
{
"address":"51.140.79.109"
},
{
"address":"51.140.78.71"
},
{
"address":"51.140.84.39"
},
{
"address":"51.140.155.81"
}
]
},
"connector":{
"outgoingIpAddresses":[
{
"address":"51.140.80.51"
},
{
"address":"51.140.148.0/28"
}
]
}
}
},
"id":"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxxxxxxx/providers/Microsoft.Logic/workflows/tempotestla",
"name":"tempotestla",
"type":"Microsoft.Logic/workflows",
"location":"uksouth",
"tags":{

}
}

这是我的工作流程概述页面:

<小时/>

Workflow Overview - 5 Hour Trigger

<小时/>

从这里开始,如果您使用面向对象的代码或脚本,您可以反序列化响应正文并更改间隔:

objResponse.properties.definition.triggers.<TriggerType>.<TriggerName>.frequency = "Minute"

然后,重新序列化您的对象并在 PUT 请求中将其发送回 API。在这里,我将小时数更改为天数:

PUT https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/xxxxxxxxx/providers/Microsoft.Logic/workflows/tempotestla?api-version=2016-06-01 HTTP/1.1
User-Agent: Fiddler
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Length: 1534

{
"properties":{
"provisioningState":"Succeeded",
"createdTime":"2019-10-22T15:25:16.1635472Z",
"changedTime":"2019-10-22T15:25:16.153712Z",
"state":"Disabled",
"version":"08586298489693318400",
"accessEndpoint":"https://prod-00.uksouth.logic.azure.com:443/workflows/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"definition":{
"$schema":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion":"1.0.0.0",
"parameters":{

},
"triggers":{
"Recurrence":{
"recurrence":{
"frequency":"Day",
"interval":5
},
"type":"Recurrence"
}
},
"actions":{
"Terminate":{
"runAfter":{

},
"type":"Terminate",
"inputs":{
"runStatus":"Succeeded"
}
}
},
"outputs":{

}
},
"parameters":{

},
},
"id":"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxxxxxxx/providers/Microsoft.Logic/workflows/tempotestla",
"name":"tempotestla",
"type":"Microsoft.Logic/workflows",
"location":"uksouth",
"tags":{

}
}

您应该在响应正文中获取更新的对象。

这是发出请求后我的工作流程摘要页面:

<小时/>

5 Day Trigger

<小时/>

希望这有帮助。

关于azure - 使用 Azure Rest API 和 Postman 更新逻辑应用重复频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58489383/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com