你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.ApiManagement 服务/apis/policies

Bicep 资源定义

可以使用目标操作部署服务/apis/policies 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.ApiManagement/service/apis/policies 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.ApiManagement/service/apis/policies@2025-03-01-preview' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    format: 'string'
    value: 'string'
  }
}

属性值

Microsoft.ApiManagement/service/apis/policies

名字 描述 价值
名字 资源名称 “policy”(必需)
父级 在 Bicep 中,可以为子资源指定父资源。 仅当子资源在父资源外部声明时,才需要添加此属性。

有关详细信息,请参阅 父资源外部的子资源
类型资源的符号名称:服务/apis
性能 策略的属性。 PolicyContractProperties

PolicyContractProperties

名字 描述 价值
格式 policyContent 的格式。 “rawxml”
“rawxml-link”
“xml”
“xml-link”
价值 由格式定义的策略内容。 string (必需)

ARM 模板资源定义

可以使用目标操作部署服务/apis/policies 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.ApiManagement/service/apis/policies 资源,请将以下 JSON 添加到模板。

{
  "type": "Microsoft.ApiManagement/service/apis/policies",
  "apiVersion": "2025-03-01-preview",
  "name": "string",
  "properties": {
    "format": "string",
    "value": "string"
  }
}

属性值

Microsoft.ApiManagement/service/apis/policies

名字 描述 价值
apiVersion API 版本 '2025-03-01-preview'
名字 资源名称 “policy”(必需)
性能 策略的属性。 PolicyContractProperties
类型 资源类型 “Microsoft.ApiManagement/service/apis/policies”

PolicyContractProperties

名字 描述 价值
格式 policyContent 的格式。 “rawxml”
“rawxml-link”
“xml”
“xml-link”
价值 由格式定义的策略内容。 string (必需)

用法示例

Terraform (AzAPI 提供程序)资源定义

可以使用目标操作部署服务/apis/policies 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.ApiManagement/service/apis/policies 资源,请将以下 Terraform 添加到模板。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.ApiManagement/service/apis/policies@2025-03-01-preview"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      format = "string"
      value = "string"
    }
  }
}

属性值

Microsoft.ApiManagement/service/apis/policies

名字 描述 价值
名字 资源名称 “policy”(必需)
parent_id 此资源的父资源的 ID。 类型资源的 ID:服务/apis
性能 策略的属性。 PolicyContractProperties
类型 资源类型 “Microsoft.ApiManagement/service/apis/policies@2025-03-01-preview”

PolicyContractProperties

名字 描述 价值
格式 policyContent 的格式。 “rawxml”
“rawxml-link”
“xml”
“xml-link”
价值 由格式定义的策略内容。 string (必需)

用法示例

Terraform 示例

部署 API 管理服务 API 策略的基本示例。

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "service" {
  type      = "Microsoft.ApiManagement/service@2021-08-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      certificates = [
      ]
      customProperties = {
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30" = "false"
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10" = "false"
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11" = "false"
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10"         = "false"
        "Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11"         = "false"
      }
      disableGateway      = false
      publicNetworkAccess = "Enabled"
      publisherEmail      = "pub1@email.com"
      publisherName       = "pub1"
      virtualNetworkType  = "None"
    }
    sku = {
      capacity = 0
      name     = "Consumption"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "api" {
  type      = "Microsoft.ApiManagement/service/apis@2021-08-01"
  parent_id = azapi_resource.service.id
  name      = "${var.resource_name};rev=1"
  body = {
    properties = {
      apiRevisionDescription = ""
      apiType                = "http"
      apiVersion             = ""
      apiVersionDescription  = ""
      authenticationSettings = {
      }
      description = ""
      displayName = "api1"
      path        = "api1"
      protocols = [
        "https",
      ]
      serviceUrl           = ""
      subscriptionRequired = true
      type                 = "http"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "policy" {
  type      = "Microsoft.ApiManagement/service/apis/policies@2021-08-01"
  parent_id = azapi_resource.api.id
  name      = "policy"
  body = {
    properties = {
      format = "xml"
      value  = <<-EOT
<policies>
  <inbound>
    <set-variable name="abc" value="@(context.Request.Headers.GetValueOrDefault(&quot;X-Header-Name&quot;, &quot;&quot;))" />
    <find-and-replace from="xyz" to="abc" />
  </inbound>
</policies>
EOT
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
  lifecycle {
    ignore_changes = [body.properties.value]
  }
}