我正在尝试使用ARM模板在Azure APIM中自动执行SOAP传递API部署。 以下是我遵循的步骤:
成功部署API及其相关操作等。但是,我观察了以下两件事:
这是API的ARM模板:
{
"comments": "= = = API = = =",
"type": "Microsoft.ApiManagement/service/apis",
"name": "[concat(variables('apimInstanceName'), '/', parameters('apiName'))]",
"apiVersion": "2017-03-01",
"scale": null,
"properties": {
"displayName": "[parameters('apiName')]",
"apiRevision": "1",
"description": "SOAP service",
"serviceUrl": "[parameters('serviceUrl')]",
"path": "[parameters('apiName')]",
"protocols": [
"http",
"https"
],
"authenticationSettings": null,
"subscriptionKeyParameterNames": null,
"type": "soap",
"isCurrent": true,
"apiType": "soap"
},
"dependsOn": [
]
}
我还没有发布其他组件的ARM模板,只是为了检查这篇文章的长度。
我是否遗漏了API模板中的任何内容以使其按预期工作?
答案 0 :(得分:0)
这可能不再相关,但我遇到了类似的问题。在配置 SOAP 端点时,我使用以下模板来配置 SOAP 传递 API。
最初,它作为 SOAP 提供给 REST,并将操作名称附加到 URL 的末尾。然后我将 "apiType": "soap"
添加到模板中,它按预期工作。
在我的模板中,我使用最新的 API 版本 "apiVersion": "2020-12-01"
,并通过将其作为字符串传递来导入 WSDL 文档。在理想情况下,您可以使用 "format": "wsdl-link"
从位于 API 管理本身后面的 API 导入架构。
{
"type": "Microsoft.ApiManagement/service/apis",
"apiVersion": "2020-12-01",
"name": "[variables('soapApiName')]",
"properties": {
"displayName": "Inventory SOAP API",
"path": "InventoryService.svc",
"protocols": [
"https"
],
"type": "soap",
"apiType": "soap",
"subscriptionRequired": false,
"format": "wsdl",
"value": "[parameters('wsdlDocument')]"
}
}