カスタム リソース プロバイダー用の Azure Functions を設定する

カスタム リソース プロバイダーは、Azure とエンドポイントの間のコントラクトです。 カスタム リソース プロバイダーを使って、Azure のワークフローを変更できます。 このチュートリアルでは、カスタム リソース プロバイダーのエンドポイントとして機能するように Azure Functions の関数アプリを設定する方法について説明します。

Function App の作成

注意

このチュートリアルでは、Azure Functions の関数アプリを使用するシンプルなサービス エンドポイントを作成します。 ただしカスタム リソース プロバイダーは、パブリックにアクセスできる任意のエンドポイントを使用できます。 その代替候補としては、Azure Logic Apps や Azure API Management、Azure App Service の Web Apps 機能などが挙げられます。

このチュートリアルを始めるには、まず、Azure portal で初めての関数アプリを作成するチュートリアルを先に行う必要があります。 そのチュートリアルでは、Azure portal で変更可能な .NET Core の Webhook 関数を作成します。 このチュートリアルの土台にもなっているチュートリアルです。

Azure Table Storage のバインディングをインストールする

Azure Table Storage のバインディングをインストールするには、次の手順に従います。

  1. HttpTrigger[統合] タブに移動します。
  2. [+ 新しい入力] を選択します。
  3. [Azure Table Storage] を選択します。
  4. Microsoft.Azure.WebJobs.Extensions.Storage 拡張機能がインストールされていない場合はインストールします。
  5. [テーブル パラメーター名] ボックスに「tableStorage」と入力します。
  6. [テーブル名] ボックスに「myCustomResources」と入力します。
  7. [保存] を選択して、更新した入力パラメーターを保存します。

 Azure Table Storage バインディングの構成を示した Azure Functions Integrate タブ のスクリーンショット。

RESTful HTTP メソッドを更新する

カスタム リソース プロバイダーの RESTful 要求メソッドを含むように Azure 関数を設定するには、次の手順に従います。

  1. HttpTrigger[統合] タブに移動します。
  2. [選択した HTTP メソッド] で、[GET][POST][DELETE][PUT] を選択します。

 RESTful HTTP メソッドの選択肢を示した Azure Functions Integrate タブのスクリーンショット。

Azure Resource Manager NuGet パッケージを追加する

注意

C# プロジェクト ファイルがプロジェクト ディレクトリにない場合、手動で追加できます。あるいは、Microsoft.Azure.WebJobs.Extensions.Storage 拡張が関数アプリにインストールされた後に表示されます。

次に、有用な NuGet ライブラリをインクルードするように C# プロジェクト ファイルを更新します。 これらのライブラリによって、カスタム リソース プロバイダーからの受信要求が解析しやすくなります。 ポータルからの拡張機能の追加に関する記事の手順に従い、次のパッケージ参照をインクルードするように C# プロジェクト ファイルを更新します。

<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.4" />
<PackageReference Include="Microsoft.Azure.Management.ResourceManager.Fluent" Version="1.22.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.1.*" />

次の XML 要素は C# プロジェクト ファイルの例です。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <WarningsAsErrors />
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.4" />
    <PackageReference Include="Microsoft.Azure.Management.ResourceManager.Fluent" Version="1.22.2" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.1.*" />
  </ItemGroup>
</Project>

次のステップ

このチュートリアルでは、Azure カスタム リソース プロバイダーのエンドポイントとして機能するように Azure Functions の関数アプリを設定しました。

RESTful カスタム リソース プロバイダー エンドポイントを作成する方法については、「カスタム リソース プロバイダー用の RESTful エンドポイントを作成する」を参照してください。