如何为Azure APIM Azure Devops提供类似于平台的swagger/policy &



我正致力于通过terraform向Azure APIM添加新的API和新策略。当我在本地测试时(直接打开终端并运行地形计划和应用),我能够创建它。但是当我通过Azure devops管道时,我无法跟踪文件。我得到错误"文件不存在"。

因为我使用文件命令,我想我将不得不发布到工件并尝试,但仍然相同的响应。我是否必须将其放入存储帐户以使其通过SAS访问,这是唯一的选择,或者我可以使用管道工件。

这是TF代码-注释掉是我尝试过的多个版本。

resource "azurerm_api_management_api" "example" {
name                = "example-api1"
resource_group_name = data.azurerm_api_management.example.resource_group_name
api_management_name = data.azurerm_api_management.example.name
revision            = "1"
display_name        = "Example API1"
path                = "example1"
protocols           = ["https"]
service_url         = "http://123.0.0.0:8000"
subscription_required  = true
import {
content_format = "openapi+json"
# content_value  = file("$(Pipeline.Workspace)/Artifacts/swagger/sample_swagger.json")
# content_value  = file("/Artifacts/swagger/sample_swagger.json")  -- **this works in local**
xml_link   = "$(Pipeline.Workspace)/Artifacts/swagger/sample_swagger.json"
}
}

管道任务:

- task: ms-devlabs.custom-terraform-tasks.custom-terraform-release-task.TerraformTaskV2@2
displayName: 'Terraform : plan'
inputs:
command: plan
workingDirectory: '$(System.DefaultWorkingDirectory)/TerraForm'
environmentServiceNameAzureRM: 'ps-vs-sc'
backendAzureRmResourceGroupName: '$(rgName)'
backendAzureRmStorageAccountName: $(strName)
backendAzureRmContainerName: $(containerName)
backendAzureRmKey: '$(storagekey)'

我能够使脚本工作的唯一方法是,将swagger json上传到存储帐户并生成与SAS的链接。这个方法很好。

最新更新