你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft.ApiManagement 服务 2019-01-01
- 最新
- 2024-06-01-preview
- 2024-05-01
- 2023-09-01-preview
- 2023-05-01-preview
- 2023-03-01-preview
- 2022-09-01-preview
- 2022-08-01
- 2022-04-01-preview
- 2021-12-01-preview
- 2021-08-01
- 2021-04-01-preview
- 2021-01-01-preview
- 2020-12-01
- 2020-06-01-preview
- 2019-12-01
- 2019-12-01-preview
- 2019-01-01
- 2018-06-01-preview
- 2018-01-01
- 2017-03-01
- 2016-10-10
- 2016-07-07
Bicep 资源定义
可以使用目标操作部署服务资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.ApiManagement/service 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.ApiManagement/service@2019-01-01' = {
identity: {
type: 'string'
}
location: 'string'
name: 'string'
properties: {
additionalLocations: [
{
location: 'string'
sku: {
capacity: int
name: 'string'
}
virtualNetworkConfiguration: {
subnetResourceId: 'string'
}
}
]
certificates: [
{
certificate: {
expiry: 'string'
subject: 'string'
thumbprint: 'string'
}
certificatePassword: 'string'
encodedCertificate: 'string'
storeName: 'string'
}
]
customProperties: {
{customized property}: 'string'
}
enableClientCertificate: bool
hostnameConfigurations: [
{
certificate: {
expiry: 'string'
subject: 'string'
thumbprint: 'string'
}
certificatePassword: 'string'
defaultSslBinding: bool
encodedCertificate: 'string'
hostName: 'string'
keyVaultId: 'string'
negotiateClientCertificate: bool
type: 'string'
}
]
notificationSenderEmail: 'string'
publisherEmail: 'string'
publisherName: 'string'
virtualNetworkConfiguration: {
subnetResourceId: 'string'
}
virtualNetworkType: 'string'
}
sku: {
capacity: int
name: 'string'
}
tags: {
{customized property}: 'string'
}
}
属性值
AdditionalLocation
名字 | 描述 | 价值 |
---|---|---|
位置 | Azure 数据中心区域中其他区域的位置名称。 | string (必需) |
sku | API 管理服务的 SKU 属性。 | ApiManagementServiceSkuProperties(必需) |
virtualNetworkConfiguration | 位置的虚拟网络配置。 | VirtualNetworkConfiguration |
ApiManagementServiceBasePropertiesCustomProperties
名字 | 描述 | 价值 |
---|
ApiManagementServiceIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 标识类型。 目前唯一受支持的类型是“SystemAssigned”。 | “SystemAssigned”(必需) |
ApiManagementServiceProperties
名字 | 描述 | 价值 |
---|---|---|
additionalLocations | API 管理服务的其他数据中心位置。 | AdditionalLocation[] |
证书 | 需要在 API 管理服务中安装的证书列表。 可安装的最大支持证书为 10。 | CertificateConfiguration[] |
customProperties | API 管理服务的自定义属性。 设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 将禁用所有 TLS(1.0、1.1 和 1.2)的密码TLS_RSA_WITH_3DES_EDE_CBC_SHA。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11 可用于仅禁用 TLS 1.1。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10 可用于在 API 管理服务上禁用 TLS 1.0。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 可用于仅禁用 TLS 1.1,以便与后端通信。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 可用于禁用 TLS 1.0 以便与后端通信。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2 可用于在 API 管理服务上启用 HTTP2 协议。未在 PATCH 操作中指定这些属性中的任何一个将省略的属性的值重置为其默认值。 对于除 Http2 之外的所有设置,如果服务是在 2018 年 4 月 1 日或之前创建的,则默认值 True ,否则 False 。 Http2 设置的默认值为 False 。可以使用设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name] 禁用任何下一个密码:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA。 例如: Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256 :false 。 默认值为所有默认值 true 。 |
ApiManagementServiceBasePropertiesCustomProperties |
enableClientCertificate | 仅用于消耗 SKU 服务的属性。 这会强制在向网关的每个请求上显示客户端证书。 这样,便可以在网关上的策略中对证书进行身份验证。 | bool |
hostnameConfigurations | API 管理服务的自定义主机名配置。 | HostnameConfiguration[] |
notificationSenderEmail | 将从中发送通知的电子邮件地址。 | 字符串 约束: 最大长度 = |
publisherEmail | 发布者电子邮件。 | 字符串 约束: 最大长度 = (必需) |
publisherName | 发布者名称。 | 字符串 约束: 最大长度 = (必需) |
virtualNetworkConfiguration | API 管理服务的虚拟网络配置。 | VirtualNetworkConfiguration |
virtualNetworkType | 需要在其中配置 API 管理服务的 VPN 类型。 无(默认值)表示 API 管理服务不是任何虚拟网络的一部分,外部意味着 API 管理部署是在具有面向 Internet 的终结点的虚拟网络内设置的,内部意味着 API 管理部署仅在具有 Intranet 面向终结点的虚拟网络中进行设置。 | “External” “Internal” “None” |
ApiManagementServiceSkuProperties
名字 | 描述 | 价值 |
---|---|---|
能力 | SKU 的容量(SKU 的已部署单位数)。 | int |
名字 | Sku 的名称。 | “Basic” “消耗” “Developer” “Premium” “标准”(必需) |
ApimResourceTags
名字 | 描述 | 价值 |
---|
CertificateConfiguration
名字 | 描述 | 价值 |
---|---|---|
证书 | 证书信息。 | CertificateInformation |
certificatePassword | 证书密码。 | 字符串 |
encodedCertificate | Base64 编码证书。 | 字符串 |
storeName | System.Security.Cryptography.x509certificates.StoreName 证书存储位置。 只有 Root 和 CertificateAuthority 是有效位置。 | “CertificateAuthority” “Root”(必需) |
CertificateInformation
名字 | 描述 | 价值 |
---|---|---|
满期 | 证书的到期日期。 日期符合以下格式:按 ISO 8601 标准指定的 yyyy-MM-ddTHH:mm:ssZ 。 |
string (必需) |
主题 | 证书的使用者。 | string (必需) |
指纹 | 证书的指纹。 | string (必需) |
HostnameConfiguration
名字 | 描述 | 价值 |
---|---|---|
证书 | 证书信息。 | CertificateInformation |
certificatePassword | 证书密码。 | 字符串 |
defaultSslBinding | 指定 true 以设置与此主机名关联的证书作为默认 SSL 证书。 如果客户端未发送 SNI 标头,则这是将质询的证书。 如果某个服务启用了多个自定义主机名,并且需要确定默认 ssl 证书,则此属性非常有用。 此设置仅适用于代理主机名类型。 | bool |
encodedCertificate | Base64 编码证书。 | 字符串 |
hostName | 在 Api 管理服务上配置的主机名。 | string (必需) |
keyVaultId | 包含 Ssl 证书的 KeyVault 机密的 URL。 如果提供了包含版本的绝对 URL,则 ssl 证书的自动更新将不起作用。 这要求使用 MSI 配置 Api 管理服务。 机密的类型应 为 application/x-pkcs12 | 字符串 |
negotiateClientCertificate | 指定 true 以始终协商主机名上的客户端证书。 默认值为 false。 | bool |
类型 | 主机名类型。 | “DeveloperPortal” “管理” “Portal” “Proxy” “Scm”(必需) |
Microsoft.ApiManagement/service
名字 | 描述 | 价值 |
---|---|---|
身份 | Api 管理服务的托管服务标识。 | ApiManagementServiceIdentity |
位置 | 资源位置。 | string (必需) |
名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 1 模式 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$ (必需) |
性能 | API 管理服务的属性。 | ApiManagementServiceProperties(必需) |
sku | API 管理服务的 SKU 属性。 | ApiManagementServiceSkuProperties(必需) |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
VirtualNetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
subnetResourceId | 要在其中部署 API 管理服务的虚拟网络中子网的完整资源 ID。 | 字符串 约束: Pattern = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$ |
快速入门示例
以下快速入门示例部署此资源类型。
Bicep 文件 | 描述 |
---|---|
使用内部 API 管理和 Web 应用 |
应用程序网关将 Internet 流量路由到虚拟网络(内部模式)API 管理实例,该实例服务 Azure Web 应用中托管的 Web API。 |
创建多区域高级层 API 管理实例 | 此模板演示如何创建具有其他位置的 API 管理实例。 主要位置与资源组的位置相同。 对于其他位置,模板显示 NorthCentralUs 和美国东部 2。 主要位置应不同于其他位置。 |
创建具有 MSI 标识 的 API 管理实例 | 此模板创建具有 MSI 标识的 Azure API 管理的开发人员实例 |
使用模板创建 API 管理实例 | 此模板创建 Azure API 管理的开发人员实例 |
使用专用终结点创建 API 管理服务 | 此模板将创建 API 管理服务、虚拟网络和专用终结点,向虚拟网络公开 API 管理服务。 |
从 KeyVault 使用 SSL 创建 API 管理服务 | 此模板部署配置有用户分配标识的 API 管理服务。 它使用此标识从 KeyVault 提取 SSL 证书,并通过每隔 4 小时检查一次来更新它。 |
使用应用网关在内部 VNet 中创建 API 管理 | 此模板演示如何在受 Azure 应用程序网关保护的专用网络上创建 Azure API 管理的实例。 |
使用公共 IP 在外部 VNet 中部署 API 管理 | 此模板演示如何在虚拟网络子网的外部模式下的高级层中创建 Azure API 管理的实例,并在子网上配置建议的 NSG 规则。 实例部署到两个可用性区域。 该模板还配置订阅中的公共 IP 地址。 |
使用公共 IP 在内部 VNet 中部署 API 管理 | 此模板演示如何在虚拟网络子网内部的高级层中创建 Azure API 管理的实例,并在子网上配置建议的 NSG 规则。 实例部署到两个可用性区域。 该模板还配置订阅中的公共 IP 地址。 |
将 API 管理部署到可用性区域 | 此模板创建 Azure API 管理的高级实例,并将其部署到可用性区域 |
使用外部 Azure Redis 缓存部署 API 管理 | 此模板演示如何使用外部 Azure Redis 缓存实例作为 API 管理外部缓存在消耗层中创建 Azure API 管理的实例。 |
使用 API 管理源 Front Door 标准版/高级版 | 此模板创建 Front Door Premium 和 API 管理实例,并使用 NSG 和全局 API 管理策略来验证流量是否通过 Front Door 源。 |
ARM 模板资源定义
可以使用目标操作部署服务资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.ApiManagement/service 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.ApiManagement/service",
"apiVersion": "2019-01-01",
"name": "string",
"identity": {
"type": "string"
},
"location": "string",
"properties": {
"additionalLocations": [
{
"location": "string",
"sku": {
"capacity": "int",
"name": "string"
},
"virtualNetworkConfiguration": {
"subnetResourceId": "string"
}
}
],
"certificates": [
{
"certificate": {
"expiry": "string",
"subject": "string",
"thumbprint": "string"
},
"certificatePassword": "string",
"encodedCertificate": "string",
"storeName": "string"
}
],
"customProperties": {
"{customized property}": "string"
},
"enableClientCertificate": "bool",
"hostnameConfigurations": [
{
"certificate": {
"expiry": "string",
"subject": "string",
"thumbprint": "string"
},
"certificatePassword": "string",
"defaultSslBinding": "bool",
"encodedCertificate": "string",
"hostName": "string",
"keyVaultId": "string",
"negotiateClientCertificate": "bool",
"type": "string"
}
],
"notificationSenderEmail": "string",
"publisherEmail": "string",
"publisherName": "string",
"virtualNetworkConfiguration": {
"subnetResourceId": "string"
},
"virtualNetworkType": "string"
},
"sku": {
"capacity": "int",
"name": "string"
},
"tags": {
"{customized property}": "string"
}
}
属性值
AdditionalLocation
名字 | 描述 | 价值 |
---|---|---|
位置 | Azure 数据中心区域中其他区域的位置名称。 | string (必需) |
sku | API 管理服务的 SKU 属性。 | ApiManagementServiceSkuProperties(必需) |
virtualNetworkConfiguration | 位置的虚拟网络配置。 | VirtualNetworkConfiguration |
ApiManagementServiceBasePropertiesCustomProperties
名字 | 描述 | 价值 |
---|
ApiManagementServiceIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 标识类型。 目前唯一受支持的类型是“SystemAssigned”。 | “SystemAssigned”(必需) |
ApiManagementServiceProperties
名字 | 描述 | 价值 |
---|---|---|
additionalLocations | API 管理服务的其他数据中心位置。 | AdditionalLocation[] |
证书 | 需要在 API 管理服务中安装的证书列表。 可安装的最大支持证书为 10。 | CertificateConfiguration[] |
customProperties | API 管理服务的自定义属性。 设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 将禁用所有 TLS(1.0、1.1 和 1.2)的密码TLS_RSA_WITH_3DES_EDE_CBC_SHA。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11 可用于仅禁用 TLS 1.1。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10 可用于在 API 管理服务上禁用 TLS 1.0。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 可用于仅禁用 TLS 1.1,以便与后端通信。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 可用于禁用 TLS 1.0 以便与后端通信。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2 可用于在 API 管理服务上启用 HTTP2 协议。未在 PATCH 操作中指定这些属性中的任何一个将省略的属性的值重置为其默认值。 对于除 Http2 之外的所有设置,如果服务是在 2018 年 4 月 1 日或之前创建的,则默认值 True ,否则 False 。 Http2 设置的默认值为 False 。可以使用设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name] 禁用任何下一个密码:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA。 例如: Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256 :false 。 默认值为所有默认值 true 。 |
ApiManagementServiceBasePropertiesCustomProperties |
enableClientCertificate | 仅用于消耗 SKU 服务的属性。 这会强制在向网关的每个请求上显示客户端证书。 这样,便可以在网关上的策略中对证书进行身份验证。 | bool |
hostnameConfigurations | API 管理服务的自定义主机名配置。 | HostnameConfiguration[] |
notificationSenderEmail | 将从中发送通知的电子邮件地址。 | 字符串 约束: 最大长度 = |
publisherEmail | 发布者电子邮件。 | 字符串 约束: 最大长度 = (必需) |
publisherName | 发布者名称。 | 字符串 约束: 最大长度 = (必需) |
virtualNetworkConfiguration | API 管理服务的虚拟网络配置。 | VirtualNetworkConfiguration |
virtualNetworkType | 需要在其中配置 API 管理服务的 VPN 类型。 无(默认值)表示 API 管理服务不是任何虚拟网络的一部分,外部意味着 API 管理部署是在具有面向 Internet 的终结点的虚拟网络内设置的,内部意味着 API 管理部署仅在具有 Intranet 面向终结点的虚拟网络中进行设置。 | “External” “Internal” “None” |
ApiManagementServiceSkuProperties
名字 | 描述 | 价值 |
---|---|---|
能力 | SKU 的容量(SKU 的已部署单位数)。 | int |
名字 | Sku 的名称。 | “Basic” “消耗” “Developer” “Premium” “标准”(必需) |
ApimResourceTags
名字 | 描述 | 价值 |
---|
CertificateConfiguration
名字 | 描述 | 价值 |
---|---|---|
证书 | 证书信息。 | CertificateInformation |
certificatePassword | 证书密码。 | 字符串 |
encodedCertificate | Base64 编码证书。 | 字符串 |
storeName | System.Security.Cryptography.x509certificates.StoreName 证书存储位置。 只有 Root 和 CertificateAuthority 是有效位置。 | “CertificateAuthority” “Root”(必需) |
CertificateInformation
名字 | 描述 | 价值 |
---|---|---|
满期 | 证书的到期日期。 日期符合以下格式:按 ISO 8601 标准指定的 yyyy-MM-ddTHH:mm:ssZ 。 |
string (必需) |
主题 | 证书的使用者。 | string (必需) |
指纹 | 证书的指纹。 | string (必需) |
HostnameConfiguration
名字 | 描述 | 价值 |
---|---|---|
证书 | 证书信息。 | CertificateInformation |
certificatePassword | 证书密码。 | 字符串 |
defaultSslBinding | 指定 true 以设置与此主机名关联的证书作为默认 SSL 证书。 如果客户端未发送 SNI 标头,则这是将质询的证书。 如果某个服务启用了多个自定义主机名,并且需要确定默认 ssl 证书,则此属性非常有用。 此设置仅适用于代理主机名类型。 | bool |
encodedCertificate | Base64 编码证书。 | 字符串 |
hostName | 在 Api 管理服务上配置的主机名。 | string (必需) |
keyVaultId | 包含 Ssl 证书的 KeyVault 机密的 URL。 如果提供了包含版本的绝对 URL,则 ssl 证书的自动更新将不起作用。 这要求使用 MSI 配置 Api 管理服务。 机密的类型应 为 application/x-pkcs12 | 字符串 |
negotiateClientCertificate | 指定 true 以始终协商主机名上的客户端证书。 默认值为 false。 | bool |
类型 | 主机名类型。 | “DeveloperPortal” “管理” “Portal” “Proxy” “Scm”(必需) |
Microsoft.ApiManagement/service
名字 | 描述 | 价值 |
---|---|---|
apiVersion | API 版本 | '2019-01-01' |
身份 | Api 管理服务的托管服务标识。 | ApiManagementServiceIdentity |
位置 | 资源位置。 | string (必需) |
名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 1 模式 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$ (必需) |
性能 | API 管理服务的属性。 | ApiManagementServiceProperties(必需) |
sku | API 管理服务的 SKU 属性。 | ApiManagementServiceSkuProperties(必需) |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
类型 | 资源类型 | “Microsoft.ApiManagement/service” |
VirtualNetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
subnetResourceId | 要在其中部署 API 管理服务的虚拟网络中子网的完整资源 ID。 | 字符串 约束: Pattern = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$ |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 描述 |
---|---|
使用内部 API 管理和 Web 应用 |
应用程序网关将 Internet 流量路由到虚拟网络(内部模式)API 管理实例,该实例服务 Azure Web 应用中托管的 Web API。 |
创建多区域高级层 API 管理实例 |
此模板演示如何创建具有其他位置的 API 管理实例。 主要位置与资源组的位置相同。 对于其他位置,模板显示 NorthCentralUs 和美国东部 2。 主要位置应不同于其他位置。 |
使用模板 创建 API 管理实例和所有子资源 |
此模板演示如何创建 API 管理服务并配置子实体 |
创建具有 MSI 标识 的 API 管理实例 |
此模板创建具有 MSI 标识的 Azure API 管理的开发人员实例 |
使用模板创建 API 管理实例 |
此模板创建 Azure API 管理的开发人员实例 |
使用自定义主机名创建 API 管理实例 |
此模板演示如何使用门户的自定义主机名和代理的多个自定义主机名创建 Azure API 管理的实例 |
使用专用终结点创建 API 管理服务 |
此模板将创建 API 管理服务、虚拟网络和专用终结点,向虚拟网络公开 API 管理服务。 |
从 KeyVault 使用 SSL 创建 API 管理服务 |
此模板部署配置有用户分配标识的 API 管理服务。 它使用此标识从 KeyVault 提取 SSL 证书,并通过每隔 4 小时检查一次来更新它。 |
创建和监视 API 管理实例 |
此模板创建 Azure API 管理服务和 Log Analytics 工作区的实例,并使用 Log Analytics 为 API 管理服务设置监视 |
使用应用网关在内部 VNet 中创建 API 管理 |
此模板演示如何在受 Azure 应用程序网关保护的专用网络上创建 Azure API 管理的实例。 |
使用 KeyVault 使用自定义代理 ssl 创建 API 管理 |
此模板演示如何使用 keyvault 中的 ssl 证书为代理创建 Azure API 管理的实例和配置自定义主机名。 |
在 Azure API 管理 前创建 Azure Front Door |
此示例演示如何在 Azure API 管理之前将 Azure Front Door 用作全局负载均衡器。 |
使用公共 IP 在外部 VNet 中部署 API 管理 |
此模板演示如何在虚拟网络子网的外部模式下的高级层中创建 Azure API 管理的实例,并在子网上配置建议的 NSG 规则。 实例部署到两个可用性区域。 该模板还配置订阅中的公共 IP 地址。 |
使用公共 IP 在内部 VNet 中部署 API 管理 |
此模板演示如何在虚拟网络子网内部的高级层中创建 Azure API 管理的实例,并在子网上配置建议的 NSG 规则。 实例部署到两个可用性区域。 该模板还配置订阅中的公共 IP 地址。 |
将 API 管理部署到可用性区域 |
此模板创建 Azure API 管理的高级实例,并将其部署到可用性区域 |
使用外部 Azure Redis 缓存部署 API 管理 |
此模板演示如何使用外部 Azure Redis 缓存实例作为 API 管理外部缓存在消耗层中创建 Azure API 管理的实例。 |
使用 API 管理源 Front Door 标准版/高级版 |
此模板创建 Front Door Premium 和 API 管理实例,并使用 NSG 和全局 API 管理策略来验证流量是否通过 Front Door 源。 |
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署服务资源类型:
- 资源组
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.ApiManagement/service 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.ApiManagement/service@2019-01-01"
name = "string"
identity = {
type = "string"
}
location = "string"
sku = {
capacity = int
name = "string"
}
tags = {
{customized property} = "string"
}
body = jsonencode({
properties = {
additionalLocations = [
{
location = "string"
sku = {
capacity = int
name = "string"
}
virtualNetworkConfiguration = {
subnetResourceId = "string"
}
}
]
certificates = [
{
certificate = {
expiry = "string"
subject = "string"
thumbprint = "string"
}
certificatePassword = "string"
encodedCertificate = "string"
storeName = "string"
}
]
customProperties = {
{customized property} = "string"
}
enableClientCertificate = bool
hostnameConfigurations = [
{
certificate = {
expiry = "string"
subject = "string"
thumbprint = "string"
}
certificatePassword = "string"
defaultSslBinding = bool
encodedCertificate = "string"
hostName = "string"
keyVaultId = "string"
negotiateClientCertificate = bool
type = "string"
}
]
notificationSenderEmail = "string"
publisherEmail = "string"
publisherName = "string"
virtualNetworkConfiguration = {
subnetResourceId = "string"
}
virtualNetworkType = "string"
}
})
}
属性值
AdditionalLocation
名字 | 描述 | 价值 |
---|---|---|
位置 | Azure 数据中心区域中其他区域的位置名称。 | string (必需) |
sku | API 管理服务的 SKU 属性。 | ApiManagementServiceSkuProperties(必需) |
virtualNetworkConfiguration | 位置的虚拟网络配置。 | VirtualNetworkConfiguration |
ApiManagementServiceBasePropertiesCustomProperties
名字 | 描述 | 价值 |
---|
ApiManagementServiceIdentity
名字 | 描述 | 价值 |
---|---|---|
类型 | 标识类型。 目前唯一受支持的类型是“SystemAssigned”。 | “SystemAssigned”(必需) |
ApiManagementServiceProperties
名字 | 描述 | 价值 |
---|---|---|
additionalLocations | API 管理服务的其他数据中心位置。 | AdditionalLocation[] |
证书 | 需要在 API 管理服务中安装的证书列表。 可安装的最大支持证书为 10。 | CertificateConfiguration[] |
customProperties | API 管理服务的自定义属性。 设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 将禁用所有 TLS(1.0、1.1 和 1.2)的密码TLS_RSA_WITH_3DES_EDE_CBC_SHA。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11 可用于仅禁用 TLS 1.1。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10 可用于在 API 管理服务上禁用 TLS 1.0。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 可用于仅禁用 TLS 1.1,以便与后端通信。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 可用于禁用 TLS 1.0 以便与后端通信。设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2 可用于在 API 管理服务上启用 HTTP2 协议。未在 PATCH 操作中指定这些属性中的任何一个将省略的属性的值重置为其默认值。 对于除 Http2 之外的所有设置,如果服务是在 2018 年 4 月 1 日或之前创建的,则默认值 True ,否则 False 。 Http2 设置的默认值为 False 。可以使用设置 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name] 禁用任何下一个密码:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA。 例如: Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256 :false 。 默认值为所有默认值 true 。 |
ApiManagementServiceBasePropertiesCustomProperties |
enableClientCertificate | 仅用于消耗 SKU 服务的属性。 这会强制在向网关的每个请求上显示客户端证书。 这样,便可以在网关上的策略中对证书进行身份验证。 | bool |
hostnameConfigurations | API 管理服务的自定义主机名配置。 | HostnameConfiguration[] |
notificationSenderEmail | 将从中发送通知的电子邮件地址。 | 字符串 约束: 最大长度 = |
publisherEmail | 发布者电子邮件。 | 字符串 约束: 最大长度 = (必需) |
publisherName | 发布者名称。 | 字符串 约束: 最大长度 = (必需) |
virtualNetworkConfiguration | API 管理服务的虚拟网络配置。 | VirtualNetworkConfiguration |
virtualNetworkType | 需要在其中配置 API 管理服务的 VPN 类型。 无(默认值)表示 API 管理服务不是任何虚拟网络的一部分,外部意味着 API 管理部署是在具有面向 Internet 的终结点的虚拟网络内设置的,内部意味着 API 管理部署仅在具有 Intranet 面向终结点的虚拟网络中进行设置。 | “External” “Internal” “None” |
ApiManagementServiceSkuProperties
名字 | 描述 | 价值 |
---|---|---|
能力 | SKU 的容量(SKU 的已部署单位数)。 | int |
名字 | Sku 的名称。 | “Basic” “消耗” “Developer” “Premium” “标准”(必需) |
ApimResourceTags
名字 | 描述 | 价值 |
---|
CertificateConfiguration
名字 | 描述 | 价值 |
---|---|---|
证书 | 证书信息。 | CertificateInformation |
certificatePassword | 证书密码。 | 字符串 |
encodedCertificate | Base64 编码证书。 | 字符串 |
storeName | System.Security.Cryptography.x509certificates.StoreName 证书存储位置。 只有 Root 和 CertificateAuthority 是有效位置。 | “CertificateAuthority” “Root”(必需) |
CertificateInformation
名字 | 描述 | 价值 |
---|---|---|
满期 | 证书的到期日期。 日期符合以下格式:按 ISO 8601 标准指定的 yyyy-MM-ddTHH:mm:ssZ 。 |
string (必需) |
主题 | 证书的使用者。 | string (必需) |
指纹 | 证书的指纹。 | string (必需) |
HostnameConfiguration
名字 | 描述 | 价值 |
---|---|---|
证书 | 证书信息。 | CertificateInformation |
certificatePassword | 证书密码。 | 字符串 |
defaultSslBinding | 指定 true 以设置与此主机名关联的证书作为默认 SSL 证书。 如果客户端未发送 SNI 标头,则这是将质询的证书。 如果某个服务启用了多个自定义主机名,并且需要确定默认 ssl 证书,则此属性非常有用。 此设置仅适用于代理主机名类型。 | bool |
encodedCertificate | Base64 编码证书。 | 字符串 |
hostName | 在 Api 管理服务上配置的主机名。 | string (必需) |
keyVaultId | 包含 Ssl 证书的 KeyVault 机密的 URL。 如果提供了包含版本的绝对 URL,则 ssl 证书的自动更新将不起作用。 这要求使用 MSI 配置 Api 管理服务。 机密的类型应 为 application/x-pkcs12 | 字符串 |
negotiateClientCertificate | 指定 true 以始终协商主机名上的客户端证书。 默认值为 false。 | bool |
类型 | 主机名类型。 | “DeveloperPortal” “管理” “Portal” “Proxy” “Scm”(必需) |
Microsoft.ApiManagement/service
名字 | 描述 | 价值 |
---|---|---|
身份 | Api 管理服务的托管服务标识。 | ApiManagementServiceIdentity |
位置 | 资源位置。 | string (必需) |
名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 1 模式 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$ (必需) |
性能 | API 管理服务的属性。 | ApiManagementServiceProperties(必需) |
sku | API 管理服务的 SKU 属性。 | ApiManagementServiceSkuProperties(必需) |
标签 | 资源标记 | 标记名称和值的字典。 |
类型 | 资源类型 | “Microsoft.ApiManagement/service@2019-01-01” |
VirtualNetworkConfiguration
名字 | 描述 | 价值 |
---|---|---|
subnetResourceId | 要在其中部署 API 管理服务的虚拟网络中子网的完整资源 ID。 | 字符串 约束: Pattern = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$ |