分享方式:


Azure 自訂資源提供者概觀

Azure 自訂資源提供者是 Azure 的擴充性平台。 可讓您定義自訂 API,以用於擴充預設的 Azure 體驗。 本文件將說明:

  • 如何建置及部署 Azure 自訂資源提供者。
  • 如何使用 Azure 自訂資源提供者,來擴充現有的工作流程。
  • 何處可以找到指南和程式碼範例以開始使用。

Diagram of Azure Custom Resource Providers, displaying the relationship between Azure Resource Manager, custom resource providers, and resources.

重要

自訂資源提供者目前處於公開預覽狀態。 此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

自訂資源提供者可進行的作業

以下是您可以使用 Azure 自訂資源提供者來達成的一些範例:

  • 擴充 Azure Resource Manager REST API 以包含內部和外部服務。
  • 在現有的 Azure 工作流程上啟用自訂案例。
  • 自訂 Azure Resource Manager 範本的控制項和效果。

什麼是自訂資源提供者

Azure 自訂資源提供者是藉由建立 Azure 與端點之間的合約而成。 此合約會透過新的資源 Microsoft.CustomProviders/resourceProviders,定義新資源和動作的清單。 自訂資源提供者接著會在 Azure 中公開這些新的 API。 Azure 自訂資源提供者由三個部分組成:自訂資源提供者、端點和自訂資源。

如何建置自訂資源提供者

自訂資源提供者是 Azure 與端點之間的合約清單。 這些合約描述 Azure 應該如何與其端點互動。 資源提供者的作用如同 Proxy,會將要求和回應轉送至指定的端點。 資源提供者可以指定兩種類型的合約:資源類型 (resourceTypes)動作。 這些合約都會透過端點定義來啟用。 端點定義由三個欄位所組成:名稱路由類型 (routingType)端點

範例端點:

{
  "name": "{endpointDefinitionName}",
  "routingType": "Proxy",
  "endpoint": "https://{endpointURL}/"
}
屬性 必要 描述
NAME 端點定義的名稱。 Azure 會透過其 API 在 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/
resourceProviders/{resourceProviderName}/{endpointDefinitionName}' 底下公開此名稱
routingType 確認端點的合約類型。 如果未指定,則會預設為 "Proxy"。
endpoint 要作為要求路由傳送目的地的端點。 這會處理回應以及要求的任何副作用。

建置自訂資源

資源類型 (ResourceTypes) 描述新增至 Azure 的新自訂資源。 這些資源會公開基本的 RESTful CRUD 方法。 請參閱深入瞭解如何建立自訂資源

使用資源類型 (resourceTypes) 的自訂資源提供者範例:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "myCustomResources",
        "routingType": "Proxy",
        "endpoint": "https://{endpointURL}/"
      }
    ]
  },
  "location": "eastus"
}

在上述範例中新增到 Azure 的 API:

HttpMethod 範例 URI 描述
PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/
myCustomResources/{customResourceName}?api-version=2018-09-01-preview
用來建立新資源的 Azure REST API 呼叫。
DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/
myCustomResources/{customResourceName}?api-version=2018-09-01-preview
用來刪除現有資源的 Azure REST API 呼叫。
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/
myCustomResources/{customResourceName}?api-version=2018-09-01-preview
用來擷取現有資源的 Azure REST API 呼叫。
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/
myCustomResources?api-version=2018-09-01-preview
用來擷取現有資源清單的 Azure REST API 呼叫。

建置自訂動作

動作描述新增至 Azure 的新動作。 這些動作可以在資源提供者上公開,或在資源類型 (resourceType) 下巢狀化。 請參閱深入瞭解如何建立自訂動作

使用動作的自訂資源提供者範例:

{
  "properties": {
    "actions": [
      {
        "name": "myCustomAction",
        "routingType": "Proxy",
        "endpoint": "https://{endpointURL}/"
      }
    ]
  },
  "location": "eastus"
}

在上述範例中新增到 Azure 的 API:

HttpMethod 範例 URI 描述
POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/
myCustomAction?api-version=2018-09-01-preview
用來啟動動作的 Azure REST API 呼叫。

尋求協助

如果您對 Azure 自訂資源提供者開發有任何疑問,可以嘗試在 Stack Overflow 上提問。 類似的問題可能已有人詢問和回答,因此請先查看再張貼問題。 新增標記 azure-custom-providers 以取得快速回應!

下一步

在此文章中,您已瞭解自訂資源提供者。 請移至下一篇文章以建立自訂資源提供者。