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

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

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

カスタム リソース プロバイダーの概要のスクリーンショット。

重要

現在、カスタム リソース プロバイダーはパブリック プレビュー段階です。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、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 タグを追加して早く応答を受け取りましょう。

次のステップ

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