Azure カスタム リソース プロバイダーの概要

Azure カスタム リソース プロバイダーは、Azure に対する拡張プラットフォームです。 これによって、既定の Azure エクスペリエンスを強化するために使用できるカスタム API を定義できます。 このドキュメントでは次のことを説明します。

  • Azure カスタム リソース プロバイダーを構築してデプロイする方法
  • Azure カスタム リソース プロバイダーを使用して既存のワークフローを拡張する方法
  • 作業を開始するためのガイドとコード サンプルを見つけられる場所

 Azure Resource Manager とカスタム リソース プロバイダー、およびリソースとの関係を示した Azure Custom Resource Providers の図。

重要

現在、カスタム リソース プロバイダーはパブリック プレビュー段階です。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

カスタム リソース プロバイダーで実行できること

Azure カスタム リソース プロバイダーで実現できるいくつかの例を次に示します。

  • Azure Resource Manager REST API を拡張して内部サービスと外部サービスを含める
  • 既存の Azure ワークフローの上でカスタム シナリオを有効にする
  • Azure Resource Manager テンプレートのコントロールと効果をカスタマイズする

カスタム リソース プロバイダーとは

Azure カスタム リソース プロバイダーは、Azure とエンドポイントの間の契約を作成することで作られます。 この契約では、新しいリソース (Microsoft.CustomProviders/resourceProviders) から新しいリソースとアクションの一覧を定義します。 その後、カスタム リソース プロバイダーによって、Azure でこれらの新しい API が公開されます。 Azure カスタム リソース プロバイダーは、次の 3 つのパーツで構成されます。カスタム リソース プロバイダー、エンドポイント、カスタム リソースです。

カスタム リソース プロバイダーを構築する方法

カスタム リソース プロバイダーは、Azure とエンドポイントの間の契約の一覧です。 これらのコントラクトは、Azure がエンドポイントとどのようにやり取りを行うかを規定します。 リソース プロバイダーはプロキシのように動作し、指定したエンドポイントとの間で要求と応答の転送を行います。 リソース プロバイダーは、2 種類の契約 (resourceTypesactions) を指定できます。 これらはエンドポイント定義によって有効にされます。 エンドポイント定義は、次の 3 つのフィールドで構成されます: nameroutingTypeendpoint

サンプルのエンドポイント:

{
  "name": "{endpointDefinitionName}",
  "routingType": "Proxy",
  "endpoint": "https://{endpointURL}/"
}
プロパティ 必須 説明
name はい エンドポイント定義の名前。 Azure では、この名前は '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/
resourceProviders/{resourceProviderName}/{endpointDefinitionName}' の下にあるその API によって公開されます。
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 の呼び出しです。

カスタム アクションを構築する

Actions では Azure に追加される新しいアクションについて説明します。 これらはリソース プロバイダーの上で公開するか、resourceType の下で入れ子にすることができます。 カスタム アクションの作成の詳細を確認してください。

actions を含むサンプルのカスタム リソース プロバイダー:

{
  "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 タグを追加して早く応答を受け取りましょう。

次のステップ

この記事では、カスタム リソース プロバイダーについて学習しました。 次の記事にアクセスしてカスタム リソース プロバイダーを作成しましょう。