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 種類の契約 (resourceTypes と actions) を指定できます。 これらはエンドポイント定義によって有効にされます。 エンドポイント定義は、次の 3 つのフィールドで構成されます: name、routingType、endpoint。
サンプルのエンドポイント:
{
"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
タグを追加して早く応答を受け取りましょう。
次のステップ
この記事では、カスタム リソース プロバイダーについて学習しました。 次の記事にアクセスしてカスタム リソース プロバイダーを作成しましょう。