共用方式為


Microsoft.ApiManagement 服務 2019-12-01

Bicep 資源定義

服務資源類型可以使用目標作業來部署:

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.ApiManagement/service 資源,請將下列 Bicep 新增至範本。

resource symbolicname 'Microsoft.ApiManagement/service@2019-12-01' = {
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {
        clientId: 'string'
        principalId: 'string'
      }
    }
  }
  location: 'string'
  name: 'string'
  properties: {
    additionalLocations: [
      {
        disableGateway: bool
        location: 'string'
        sku: {
          capacity: int
          name: 'string'
        }
        virtualNetworkConfiguration: {
          subnetResourceId: 'string'
        }
      }
    ]
    apiVersionConstraint: {
      minApiVersion: 'string'
    }
    certificates: [
      {
        certificate: {
          expiry: 'string'
          subject: 'string'
          thumbprint: 'string'
        }
        certificatePassword: 'string'
        encodedCertificate: 'string'
        storeName: 'string'
      }
    ]
    customProperties: {
      {customized property}: 'string'
    }
    disableGateway: bool
    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

名字 描述 價值
disableGateway 屬性僅適用於部署在多個位置的 Api 管理服務。 這可用來停用此額外位置中的閘道。 bool
位置 Azure 資料中心區域之間其他區域的位置名稱。 字串 (必要)
sku API 管理服務的 SKU 屬性。 ApiManagementServiceSkuProperties (必要)
virtualNetworkConfiguration 位置的虛擬網路組態。 VirtualNetworkConfiguration

ApiManagementServiceBasePropertiesCustomProperties

名字 描述 價值

ApiManagementServiceIdentity

名字 描述 價值
類型 用於資源的身分識別類型。 類型 'SystemAssigned, UserAssigned' 包含隱含建立的身分識別和一組使用者指派的身分識別。 類型 『None』 會從服務中移除任何身分識別。 'None'
'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned' (必要)
userAssignedIdentities 與資源相關聯的使用者身分識別清單。 使用者身分識別
字典索引鍵參考的格式會是 ARM 資源識別碼:
'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'。
ApiManagementServiceIdentityUserAssignedIdentities

ApiManagementServiceIdentityUserAssignedIdentities

名字 描述 價值

ApiManagementServiceProperties

名字 描述 價值
additionalLocations API 管理服務的其他數據中心位置。 AdditionalLocation[]
apiVersionConstraint API 管理服務的控制平面 API 版本條件約束。 ApiVersionConstraint
證書 需要在 API 管理服務中安裝的憑證清單。 可安裝的憑證數目上限為 10。 CertificateConfiguration[]
customProperties API 管理服務的自定義屬性。
設定 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 會停用所有 TLS 的加密TLS_RSA_WITH_3DES_EDE_CBC_SHA(1.0、1.1 和 1.2)。
設定 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_SHA256false。 所有預設值都會 true

注意:無法停用下一個加密,因為 Azure CloudService 內部元件需要這些加密:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
ApiManagementServiceBasePropertiesCustomProperties
disableGateway 屬性僅適用於部署在多個位置的 Api 管理服務。 這可用來停用主要區域中的閘道。 bool
enableClientCertificate 屬性僅供取用 SKU 服務使用。 這會強制在閘道的每個要求上顯示客戶端憑證。 這也可讓您在閘道的原則中驗證憑證。 bool
hostnameConfigurations API 管理服務的自定義主機名組態。 HostnameConfiguration[]
notificationSenderEmail 將傳送通知的電子郵件位址。 字串

約束:
最大長度 =
publisherEmail 發行者電子郵件。 字串

約束:
最大長度 = (必要)
publisherName 發行者名稱。 字串

約束:
最大長度 = (必要)
virtualNetworkConfiguration API 管理服務的虛擬網路組態。 VirtualNetworkConfiguration
virtualNetworkType 必須在其中設定 API 管理服務的 VPN 類型。 無 (預設值) 表示 API 管理服務不屬於任何虛擬網路,外部表示 API 管理部署是在具有因特網面向端點的虛擬網路內設定,而內部表示 API 管理部署只會在具有內部網路對向端點的虛擬網路內進行設定。 'External'
'Internal'
'None'

ApiManagementServiceSkuProperties

名字 描述 價值
能力 SKU 的容量(SKU 的部署單位數目)。 針對 [取用 SKU 容量] 必須指定為 0。 int (必要)
名字 Sku 的名稱。 'Basic'
「取用」
'Developer'
'Premium'
'Standard' (必要)

ApimResourceTags

名字 描述 價值

ApiVersionConstraint

名字 描述 價值
minApiVersion 限制對 API 管理服務的控制平面 API 呼叫,其版本等於或大於此值。 字串

CertificateConfiguration

名字 描述 價值
證書 憑證資訊。 CertificateInformation
certificatePassword 憑證密碼。 字串
encodedCertificate Base64 編碼憑證。 字串
storeName System.Security.Cryptography.x509certificates.StoreName 證書存儲位置。 只有 Root 和 CertificateAuthority 是有效的位置。 'CertificateAuthority'
'Root' (必要)

CertificateInformation

名字 描述 價值
滿期 憑證的到期日。 日期符合下列格式:yyyy-MM-ddTHH:mm:ssZ ISO 8601 標準所指定。 字串 (必要)
主題 憑證的主體。 字串 (必要)
指紋 憑證的指紋。 字串 (必要)

HostnameConfiguration

名字 描述 價值
證書 憑證資訊。 CertificateInformation
certificatePassword 憑證密碼。 字串
defaultSslBinding 指定 true,將與此主機名相關聯的憑證設定為預設 SSL 憑證。 如果用戶端未傳送 SNI 標頭,則這會是將會受到挑戰的憑證。 如果服務已啟用多個自定義主機名,且必須決定預設ssl憑證,則屬性會很有用。 此設定只會套用至 Proxy 主機名類型。 bool
encodedCertificate Base64 編碼憑證。 字串
hostName 在 Api 管理服務上設定的主機名。 字串 (必要)
keyVaultId 包含 Ssl 憑證之 KeyVault 秘密的 URL。 如果提供包含版本的絕對 URL,SSL 憑證的自動更新將無法運作。 這需要 API 管理服務以 MSI 進行設定。 秘密的類型應 為 application/x-pkcs12 字串
negotiateClientCertificate 指定 true 以一律交涉主機名上的客戶端憑證。 默認值為 false。 bool
類型 主機名類型。 'DeveloperPortal'
'Management'
'Portal'
'Proxy'
'Scm' (必要)

Microsoft.ApiManagement/service

名字 描述 價值
身份 Api 管理服務的受控服務識別。 ApiManagementServiceIdentity
位置 資源位置。 字串 (必要)
名字 資源名稱 字串

約束:
最小長度 = 1
最大長度 = 1
模式 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$ (必要)
性能 API 管理服務的屬性。 ApiManagementServiceProperties (必要)
sku API 管理服務的 SKU 屬性。 ApiManagementServiceSkuProperties (必要)
標籤 資源標籤 標記名稱和值的字典。 請參閱範本中的 標籤

UserIdentityProperties

名字 描述 價值
clientId 使用者指派身分識別的用戶端標識碼。 字串
principalId 使用者指派身分識別的主體標識碼。 字串

VirtualNetworkConfiguration

名字 描述 價值
subnetResourceId 虛擬網路中要部署 API 管理服務之子網的完整資源識別碼。 字串

約束:
Pattern = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$

快速入門範例

下列快速入門範例會部署此資源類型。

Bicep 檔案 描述
使用內部 API 管理和 Web 應用程式 應用程式閘道 應用程式閘道會將因特網流量路由傳送至虛擬網路(內部模式)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 Cache for Redis 部署 API 管理 此範本示範如何使用外部 Azure Cache for Redis 實例作為 API 管理外部快取,在取用層中建立 Azure API 管理的實例。
使用 API 管理來源 Front Door Standard/Premium 此範本會建立 Front Door Premium 和 API 管理實例,並使用 NSG 和全域 API 管理原則來驗證流量是否通過 Front Door 來源。

ARM 樣本資源定義

服務資源類型可以使用目標作業來部署:

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.ApiManagement/服務資源,請將下列 JSON 新增至您的範本。

{
  "type": "Microsoft.ApiManagement/service",
  "apiVersion": "2019-12-01",
  "name": "string",
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
        "clientId": "string",
        "principalId": "string"
      }
    }
  },
  "location": "string",
  "properties": {
    "additionalLocations": [
      {
        "disableGateway": "bool",
        "location": "string",
        "sku": {
          "capacity": "int",
          "name": "string"
        },
        "virtualNetworkConfiguration": {
          "subnetResourceId": "string"
        }
      }
    ],
    "apiVersionConstraint": {
      "minApiVersion": "string"
    },
    "certificates": [
      {
        "certificate": {
          "expiry": "string",
          "subject": "string",
          "thumbprint": "string"
        },
        "certificatePassword": "string",
        "encodedCertificate": "string",
        "storeName": "string"
      }
    ],
    "customProperties": {
      "{customized property}": "string"
    },
    "disableGateway": "bool",
    "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

名字 描述 價值
disableGateway 屬性僅適用於部署在多個位置的 Api 管理服務。 這可用來停用此額外位置中的閘道。 bool
位置 Azure 資料中心區域之間其他區域的位置名稱。 字串 (必要)
sku API 管理服務的 SKU 屬性。 ApiManagementServiceSkuProperties (必要)
virtualNetworkConfiguration 位置的虛擬網路組態。 VirtualNetworkConfiguration

ApiManagementServiceBasePropertiesCustomProperties

名字 描述 價值

ApiManagementServiceIdentity

名字 描述 價值
類型 用於資源的身分識別類型。 類型 'SystemAssigned, UserAssigned' 包含隱含建立的身分識別和一組使用者指派的身分識別。 類型 『None』 會從服務中移除任何身分識別。 'None'
'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned' (必要)
userAssignedIdentities 與資源相關聯的使用者身分識別清單。 使用者身分識別
字典索引鍵參考的格式會是 ARM 資源識別碼:
'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'。
ApiManagementServiceIdentityUserAssignedIdentities

ApiManagementServiceIdentityUserAssignedIdentities

名字 描述 價值

ApiManagementServiceProperties

名字 描述 價值
additionalLocations API 管理服務的其他數據中心位置。 AdditionalLocation[]
apiVersionConstraint API 管理服務的控制平面 API 版本條件約束。 ApiVersionConstraint
證書 需要在 API 管理服務中安裝的憑證清單。 可安裝的憑證數目上限為 10。 CertificateConfiguration[]
customProperties API 管理服務的自定義屬性。
設定 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 會停用所有 TLS 的加密TLS_RSA_WITH_3DES_EDE_CBC_SHA(1.0、1.1 和 1.2)。
設定 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_SHA256false。 所有預設值都會 true

注意:無法停用下一個加密,因為 Azure CloudService 內部元件需要這些加密:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
ApiManagementServiceBasePropertiesCustomProperties
disableGateway 屬性僅適用於部署在多個位置的 Api 管理服務。 這可用來停用主要區域中的閘道。 bool
enableClientCertificate 屬性僅供取用 SKU 服務使用。 這會強制在閘道的每個要求上顯示客戶端憑證。 這也可讓您在閘道的原則中驗證憑證。 bool
hostnameConfigurations API 管理服務的自定義主機名組態。 HostnameConfiguration[]
notificationSenderEmail 將傳送通知的電子郵件位址。 字串

約束:
最大長度 =
publisherEmail 發行者電子郵件。 字串

約束:
最大長度 = (必要)
publisherName 發行者名稱。 字串

約束:
最大長度 = (必要)
virtualNetworkConfiguration API 管理服務的虛擬網路組態。 VirtualNetworkConfiguration
virtualNetworkType 必須在其中設定 API 管理服務的 VPN 類型。 無 (預設值) 表示 API 管理服務不屬於任何虛擬網路,外部表示 API 管理部署是在具有因特網面向端點的虛擬網路內設定,而內部表示 API 管理部署只會在具有內部網路對向端點的虛擬網路內進行設定。 'External'
'Internal'
'None'

ApiManagementServiceSkuProperties

名字 描述 價值
能力 SKU 的容量(SKU 的部署單位數目)。 針對 [取用 SKU 容量] 必須指定為 0。 int (必要)
名字 Sku 的名稱。 'Basic'
「取用」
'Developer'
'Premium'
'Standard' (必要)

ApimResourceTags

名字 描述 價值

ApiVersionConstraint

名字 描述 價值
minApiVersion 限制對 API 管理服務的控制平面 API 呼叫,其版本等於或大於此值。 字串

CertificateConfiguration

名字 描述 價值
證書 憑證資訊。 CertificateInformation
certificatePassword 憑證密碼。 字串
encodedCertificate Base64 編碼憑證。 字串
storeName System.Security.Cryptography.x509certificates.StoreName 證書存儲位置。 只有 Root 和 CertificateAuthority 是有效的位置。 'CertificateAuthority'
'Root' (必要)

CertificateInformation

名字 描述 價值
滿期 憑證的到期日。 日期符合下列格式:yyyy-MM-ddTHH:mm:ssZ ISO 8601 標準所指定。 字串 (必要)
主題 憑證的主體。 字串 (必要)
指紋 憑證的指紋。 字串 (必要)

HostnameConfiguration

名字 描述 價值
證書 憑證資訊。 CertificateInformation
certificatePassword 憑證密碼。 字串
defaultSslBinding 指定 true,將與此主機名相關聯的憑證設定為預設 SSL 憑證。 如果用戶端未傳送 SNI 標頭,則這會是將會受到挑戰的憑證。 如果服務已啟用多個自定義主機名,且必須決定預設ssl憑證,則屬性會很有用。 此設定只會套用至 Proxy 主機名類型。 bool
encodedCertificate Base64 編碼憑證。 字串
hostName 在 Api 管理服務上設定的主機名。 字串 (必要)
keyVaultId 包含 Ssl 憑證之 KeyVault 秘密的 URL。 如果提供包含版本的絕對 URL,SSL 憑證的自動更新將無法運作。 這需要 API 管理服務以 MSI 進行設定。 秘密的類型應 為 application/x-pkcs12 字串
negotiateClientCertificate 指定 true 以一律交涉主機名上的客戶端憑證。 默認值為 false。 bool
類型 主機名類型。 'DeveloperPortal'
'Management'
'Portal'
'Proxy'
'Scm' (必要)

Microsoft.ApiManagement/service

名字 描述 價值
apiVersion API 版本 '2019-12-01'
身份 Api 管理服務的受控服務識別。 ApiManagementServiceIdentity
位置 資源位置。 字串 (必要)
名字 資源名稱 字串

約束:
最小長度 = 1
最大長度 = 1
模式 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$ (必要)
性能 API 管理服務的屬性。 ApiManagementServiceProperties (必要)
sku API 管理服務的 SKU 屬性。 ApiManagementServiceSkuProperties (必要)
標籤 資源標籤 標記名稱和值的字典。 請參閱範本中的 標籤
類型 資源類型 'Microsoft.ApiManagement/service'

UserIdentityProperties

名字 描述 價值
clientId 使用者指派身分識別的用戶端標識碼。 字串
principalId 使用者指派身分識別的主體標識碼。 字串

VirtualNetworkConfiguration

名字 描述 價值
subnetResourceId 虛擬網路中要部署 API 管理服務之子網的完整資源識別碼。 字串

約束:
Pattern = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$

快速入門範本

下列快速入門範本會部署此資源類型。

範本 描述
使用內部 API 管理和 Web 應用程式 應用程式閘道

部署至 Azure
應用程式閘道會將因特網流量路由傳送至虛擬網路(內部模式)API 管理實例,此實例會服務裝載於 Azure Web 應用程式中的 Web API。
建立多區域進階層 API 管理實例

部署至 Azure
此範本示範如何使用其他位置建立 API 管理實例。 主要位置與資源群組的位置相同。 針對其他位置,範本會顯示 NorthCentralUs 和美國東部 2。 主要位置應該不同於其他位置。
使用範本 建立 API 管理實例和所有子資源

部署至 Azure
此範本示範如何建立 API 管理服務及設定子實體
建立具有 MSI 身分識別 的 API 管理實例

部署至 Azure
此範本會建立具有 MSI 身分識別的 Azure API 管理的開發人員實例
使用範本建立 API 管理實例

部署至 Azure
此範本會建立 Azure API 管理的開發人員實例
使用自定義主機名建立 API 管理實例

部署至 Azure
此範本示範如何使用入口網站的自定義主機名和 Proxy 的多個自定義主機名來建立 Azure API 管理的實例
使用私人端點建立 API 管理服務

部署至 Azure
此範本會建立 API 管理服務、虛擬網路,以及將 API 管理服務公開至虛擬網路的私人端點。
從 KeyVault 建立具有 SSL 的 API 管理服務

部署至 Azure
此範本會部署使用使用者指派身分識別設定的 API 管理服務。 它會使用此身分識別從 KeyVault 擷取 SSL 憑證,並每隔 4 小時檢查一次來保持更新。
建立和監視 API 管理實例

部署至 Azure
此範本會建立 Azure API 管理服務和 Log Analytics 工作區的實例,並使用 Log Analytics 設定 API 管理服務的監視
使用應用程式閘道在內部 VNet 中建立 API 管理

部署至 Azure
此範本示範如何在受 Azure 應用程式閘道保護的專用網上建立 Azure API 管理的實例。
使用 KeyVault 使用自定義 Proxy ssl 建立 API 管理

部署至 Azure
此範本示範如何建立 Azure API 管理的實例,並使用keyvault的ssl憑證來設定 Proxy 的自定義主機名。
在 Azure API 管理 前建立 Azure Front Door

部署至 Azure
此範例示範如何在 Azure API 管理前使用 Azure Front Door 作為全域負載平衡器。
使用公用IP 在外部 VNet 中部署 API 管理

部署至 Azure
此範本示範如何在虛擬網路子網外部模式的進階層中建立 Azure API 管理的實例,並在子網上設定建議的 NSG 規則。 實例會部署到兩個可用性區域。 此範本也會從您的訂用帳戶設定公用IP位址。
使用公用IP 在內部 VNet 中部署 API 管理

部署至 Azure
此範本示範如何在虛擬網路子網內部的進階層中建立 Azure API 管理的實例,並在子網上設定建議的 NSG 規則。 實例會部署到兩個可用性區域。 此範本也會從您的訂用帳戶設定公用IP位址。
將 API 管理部署到可用性區域

部署至 Azure
此範本會建立 Azure API 管理的進階實例,並部署到可用性區域
使用外部 Azure Cache for Redis 部署 API 管理

部署至 Azure
此範本示範如何使用外部 Azure Cache for Redis 實例作為 API 管理外部快取,在取用層中建立 Azure API 管理的實例。
使用 API 管理來源 Front Door Standard/Premium

部署至 Azure
此範本會建立 Front Door Premium 和 API 管理實例,並使用 NSG 和全域 API 管理原則來驗證流量是否通過 Front Door 來源。

Terraform (AzAPI 提供者) 資源定義

服務資源類型可以使用目標作業來部署:

  • 資源群組

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.ApiManagement/service 資源,請將下列 Terraform 新增至您的範本。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.ApiManagement/service@2019-12-01"
  name = "string"
  identity = {
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
        clientId = "string"
        principalId = "string"
      }
    }
  }
  location = "string"
  sku = {
    capacity = int
    name = "string"
  }
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      additionalLocations = [
        {
          disableGateway = bool
          location = "string"
          sku = {
            capacity = int
            name = "string"
          }
          virtualNetworkConfiguration = {
            subnetResourceId = "string"
          }
        }
      ]
      apiVersionConstraint = {
        minApiVersion = "string"
      }
      certificates = [
        {
          certificate = {
            expiry = "string"
            subject = "string"
            thumbprint = "string"
          }
          certificatePassword = "string"
          encodedCertificate = "string"
          storeName = "string"
        }
      ]
      customProperties = {
        {customized property} = "string"
      }
      disableGateway = bool
      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

名字 描述 價值
disableGateway 屬性僅適用於部署在多個位置的 Api 管理服務。 這可用來停用此額外位置中的閘道。 bool
位置 Azure 資料中心區域之間其他區域的位置名稱。 字串 (必要)
sku API 管理服務的 SKU 屬性。 ApiManagementServiceSkuProperties (必要)
virtualNetworkConfiguration 位置的虛擬網路組態。 VirtualNetworkConfiguration

ApiManagementServiceBasePropertiesCustomProperties

名字 描述 價值

ApiManagementServiceIdentity

名字 描述 價值
類型 用於資源的身分識別類型。 類型 'SystemAssigned, UserAssigned' 包含隱含建立的身分識別和一組使用者指派的身分識別。 類型 『None』 會從服務中移除任何身分識別。 'None'
'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned' (必要)
userAssignedIdentities 與資源相關聯的使用者身分識別清單。 使用者身分識別
字典索引鍵參考的格式會是 ARM 資源識別碼:
'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'。
ApiManagementServiceIdentityUserAssignedIdentities

ApiManagementServiceIdentityUserAssignedIdentities

名字 描述 價值

ApiManagementServiceProperties

名字 描述 價值
additionalLocations API 管理服務的其他數據中心位置。 AdditionalLocation[]
apiVersionConstraint API 管理服務的控制平面 API 版本條件約束。 ApiVersionConstraint
證書 需要在 API 管理服務中安裝的憑證清單。 可安裝的憑證數目上限為 10。 CertificateConfiguration[]
customProperties API 管理服務的自定義屬性。
設定 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 會停用所有 TLS 的加密TLS_RSA_WITH_3DES_EDE_CBC_SHA(1.0、1.1 和 1.2)。
設定 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_SHA256false。 所有預設值都會 true

注意:無法停用下一個加密,因為 Azure CloudService 內部元件需要這些加密:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
ApiManagementServiceBasePropertiesCustomProperties
disableGateway 屬性僅適用於部署在多個位置的 Api 管理服務。 這可用來停用主要區域中的閘道。 bool
enableClientCertificate 屬性僅供取用 SKU 服務使用。 這會強制在閘道的每個要求上顯示客戶端憑證。 這也可讓您在閘道的原則中驗證憑證。 bool
hostnameConfigurations API 管理服務的自定義主機名組態。 HostnameConfiguration[]
notificationSenderEmail 將傳送通知的電子郵件位址。 字串

約束:
最大長度 =
publisherEmail 發行者電子郵件。 字串

約束:
最大長度 = (必要)
publisherName 發行者名稱。 字串

約束:
最大長度 = (必要)
virtualNetworkConfiguration API 管理服務的虛擬網路組態。 VirtualNetworkConfiguration
virtualNetworkType 必須在其中設定 API 管理服務的 VPN 類型。 無 (預設值) 表示 API 管理服務不屬於任何虛擬網路,外部表示 API 管理部署是在具有因特網面向端點的虛擬網路內設定,而內部表示 API 管理部署只會在具有內部網路對向端點的虛擬網路內進行設定。 'External'
'Internal'
'None'

ApiManagementServiceSkuProperties

名字 描述 價值
能力 SKU 的容量(SKU 的部署單位數目)。 針對 [取用 SKU 容量] 必須指定為 0。 int (必要)
名字 Sku 的名稱。 'Basic'
「取用」
'Developer'
'Premium'
'Standard' (必要)

ApimResourceTags

名字 描述 價值

ApiVersionConstraint

名字 描述 價值
minApiVersion 限制對 API 管理服務的控制平面 API 呼叫,其版本等於或大於此值。 字串

CertificateConfiguration

名字 描述 價值
證書 憑證資訊。 CertificateInformation
certificatePassword 憑證密碼。 字串
encodedCertificate Base64 編碼憑證。 字串
storeName System.Security.Cryptography.x509certificates.StoreName 證書存儲位置。 只有 Root 和 CertificateAuthority 是有效的位置。 'CertificateAuthority'
'Root' (必要)

CertificateInformation

名字 描述 價值
滿期 憑證的到期日。 日期符合下列格式:yyyy-MM-ddTHH:mm:ssZ ISO 8601 標準所指定。 字串 (必要)
主題 憑證的主體。 字串 (必要)
指紋 憑證的指紋。 字串 (必要)

HostnameConfiguration

名字 描述 價值
證書 憑證資訊。 CertificateInformation
certificatePassword 憑證密碼。 字串
defaultSslBinding 指定 true,將與此主機名相關聯的憑證設定為預設 SSL 憑證。 如果用戶端未傳送 SNI 標頭,則這會是將會受到挑戰的憑證。 如果服務已啟用多個自定義主機名,且必須決定預設ssl憑證,則屬性會很有用。 此設定只會套用至 Proxy 主機名類型。 bool
encodedCertificate Base64 編碼憑證。 字串
hostName 在 Api 管理服務上設定的主機名。 字串 (必要)
keyVaultId 包含 Ssl 憑證之 KeyVault 秘密的 URL。 如果提供包含版本的絕對 URL,SSL 憑證的自動更新將無法運作。 這需要 API 管理服務以 MSI 進行設定。 秘密的類型應 為 application/x-pkcs12 字串
negotiateClientCertificate 指定 true 以一律交涉主機名上的客戶端憑證。 默認值為 false。 bool
類型 主機名類型。 'DeveloperPortal'
'Management'
'Portal'
'Proxy'
'Scm' (必要)

Microsoft.ApiManagement/service

名字 描述 價值
身份 Api 管理服務的受控服務識別。 ApiManagementServiceIdentity
位置 資源位置。 字串 (必要)
名字 資源名稱 字串

約束:
最小長度 = 1
最大長度 = 1
模式 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$ (必要)
性能 API 管理服務的屬性。 ApiManagementServiceProperties (必要)
sku API 管理服務的 SKU 屬性。 ApiManagementServiceSkuProperties (必要)
標籤 資源標籤 標記名稱和值的字典。
類型 資源類型 “Microsoft.ApiManagement/service@2019-12-01”

UserIdentityProperties

名字 描述 價值
clientId 使用者指派身分識別的用戶端標識碼。 字串
principalId 使用者指派身分識別的主體標識碼。 字串

VirtualNetworkConfiguration

名字 描述 價值
subnetResourceId 虛擬網路中要部署 API 管理服務之子網的完整資源識別碼。 字串

約束:
Pattern = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$