Bicep API 管理:使用后端创建操作策略时出现问题

问题描述 投票:0回答:1

我在将 API 操作与二头肌文件中的后端集成时遇到问题。 这是代码片段:

    resource MobileApiOperationGetHeartbeatPolicy 'Microsoft.ApiManagement/service/apis/operations/policies@2020-12-01' = {
      name: 'policy'
      parent: MobileApiOperationGetHeartbeat
      properties: {
        value: '<policies><inbound><base/><set-backend-service base-url="@(backend.properties.url)" /></inbound><backend><base/></backend><outbound><base/></outbound><on-error><base/></on-error></policies>'
        format: 'rawxml'
      }
    }

我不断收到此错误:

{"code":"ValidationError","message":"一个或多个字段包含不正确的值:","details":[{"code":"ValidationError","target":"set-backend-service" ,"message":"第 1 行第 28 列元素“set-backend-service”中出现错误:名称“backend”在当前上下文中不存在”}]}

APIM 后端(称为:backend)已在同一文件中(成功)创建。

我尝试使用 backend-id,我尝试通过变量传递它,总是得到相同的错误。

如果我用硬编码值替换 base-url 的值,它就可以工作。但我需要通过后端传递它,因为我打算稍后切换后端,而不需要更改所有操作(可能有数百个操作)。至少,需要通过变量传递它。

我感觉这可能是一些格式问题,但我不知道如何让它工作。

azure azure-bicep apim
1个回答
0
投票

设置后端服务的策略的工作方式不同。

有两个选项可以使用

<set-backend-service />

  1. 您可以设置 URL:

    <set-backend-service base-url="http://contoso.com/api/8.2/" />
    
  2. 或者你通过ID设置后端:

    <set-backend-service backend-id="contoso-api" />
    

Microsoft Learn:Azure / API 管理 / 设置后端服务:

https://learn.microsoft.com/en-us/azure/api-management/set-backend-service-policy

© www.soinside.com 2019 - 2024. All rights reserved.