Visual Studio を使用して初めての関数を作成する

Azure Functions を使用すると、最初に VM を作成したり Web アプリケーションを発行したりしなくても、サーバーレス環境でコードを実行できます。

重要

このトピックでは、手順の実行に Visual Studio のプレビュー バージョンを使用します。 前もって Visual Studio 2017 プレビュー バージョン 15.3をインストールしておいてください。

このトピックでは、Azure Function Tools for Visual Studio 2017 を使用して、"hello world" 関数を作成してローカルでテストする方法を学習します。 その後、関数コードを Azure に発行します。

Visual Studio プロジェクトの Azure Functions コード

前提条件

このチュートリアルを完了するには、以下をインストールしてください。

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

Azure Functions Tools for Visual Studio 2017 をインストールする

開始する前に、Azure Functions Tools for Visual Studio 2017 をダウンロードしてインストールする必要があります。 これらのツールは、Visual Studio 2017 Preview バージョン 15.3 以降のバージョンのみで使用できます。 Azure Functions Tools を既にインストールしてある場合は、このセクションを省略できます。

  1. Visual Studio の [ツール] メニューの [拡張機能と更新プログラム] を選択し、[オンライン] > [Visual Studio Marketplace] の順に選択して、[Azure Functions Tools for Visual Studio 2017] を選択します。その後、[ダウンロード] をクリックします。

    Azure Functions Tools for Visual Studio 2017 をインストールする

  2. Visual Studio を閉じ、新しいツールのダウンロードとインストールについて確認するメッセージに同意します。

Visual Studio で Azure Functions プロジェクトを作成する

Visual Studio の Azure Functions プロジェクト テンプレートでは、Azure の関数アプリに発行できるプロジェクトを作成します。 Function App を使用すると、リソースの管理、デプロイ、および共有を容易にするためのロジック ユニットとして関数をグループ化できます。

  1. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[追加] > [新しい項目] の順に選択します。 ダイアログ ボックスで [Azure 関数] を選択します。

  2. [新しいプロジェクト] ダイアログで、[Visual C#] > [クラウド] ノードの順に展開し、[Azure Functions] を選択します。名前を入力して、[OK] をクリックします。 関数アプリ名は、C# 名前空間として有効である必要があります。そのため、アンダースコア、ハイフン、その他の英数字以外の文字は使用しないでください。

    Visual Studio で関数を作成するための [新しいプロジェクト] ダイアログ

プロジェクトが作成されたので、初めての関数を作成できます。

関数を作成する

  1. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[追加] > [新しい項目] の順に選択します。 [Azure 関数] を選択し、[追加] をクリックします。

  2. [HttpTrigger] を選択して、関数名を入力し、[AccessRights] では [匿名] を選択して、[作成] をクリックします。 作成された関数は、任意のクライアントからの HTTP 要求によってアクセスされます。

    新しい Azure 関数の作成

HTTP によってトリガーされる関数を作成できたので、この関数をローカル コンピューターでテストすることができます。

関数をローカルでテストする

Azure Functions Core Tools を使用すると、ローカルの開発用コンピューター上で Azure Functions プロジェクトを実行できます。 Visual Studio から初めて関数を開始すると、これらのツールをインストールするよう求めるメッセージが表示されます。

  1. 関数をテストするには、F5 キーを押します。 メッセージが表示されたら、Visual Studio からの要求に同意し、Azure Functions Core (CLI) ツールをダウンロードしてインストールします。 また、ツールで HTTP 要求を処理できるようにファイアウォールの例外を有効にすることが必要になる場合もあります。

  2. Azure Functions のランタイムの出力から、関数の URL をコピーします。

    Azure ローカル ランタイム

  3. HTTP 要求の URL をブラウザーのアドレス バーに貼り付けます。 この URL にクエリ文字列 &name=<yourname> を追加して、要求を実行します。 関数によって返されたローカルの GET 要求に対するブラウザーでの応答を次に示します。

    ブラウザーでの関数 localhost の応答

  4. デバッグを停止するには、Visual Studio ツール バーの [停止] ボタンをクリックします。

関数がローカル コンピューター上で正常に動作することを確認した後、プロジェクトを Azure に発行します。

Azure にプロジェクトを発行する

プロジェクトを発行するには、Azure サブスクリプションに関数アプリがあることが必要です。 関数アプリは、Visual Studio から直接作成できます。

  1. ソリューション エクスプローラーで、プロジェクトを右クリックし、[発行] を選択します。 [新規作成] を選択し、[発行] をクリックします。

    新しい関数アプリを発行する

  2. まだ Visual Studio を Azure アカウントに接続していない場合は、[アカウントの追加] をクリックします。

  3. [App Service の作成] ダイアログでは、次の表に指定されているようにホスティング設定を使用してください。

    Azure ローカル ランタイム

    設定 推奨値 Description
    アプリ名 グローバルに一意の名前 新しい関数アプリを一意に識別する名前。
    サブスクリプション サブスクリプションの選択 使用する Azure サブスクリプション。
    リソース グループ myResourceGroup 関数アプリを作成するリソース グループの名前。
    App Service プラン 従量課金プラン 新しいプランを作成する場合は、必ず [サイズ] の下の [重量課金プラン] を選択してください。
    ストレージ アカウント グローバルに一意の名前 既存のストレージ アカウントを使用するか、新しいストレージ アカウントを作成します。
  4. [作成] をクリックして、これらの設定で Azure に関数アプリを作成します。 プロビジョニングが完了したら、サイト URL の値を書き留めておきます。これが Azure における関数アプリのアドレスになります。

    Azure ローカル ランタイム

Azure で関数をテストする

  1. [発行プロファイル] ページから関数アプリのベース URL をコピーします。 関数をローカルでテストしたときに使用した URL の localhost:port 部分を新しいベース URL に置き換えます。 前と同様に、この URL にクエリ文字列 &name=<yourname> を追加してから、要求を実行します。

    HTTP によってトリガーされる関数を呼び出す URL は、次のようになります。

     http://<functionappname>.azurewebsites.net/api/<functionname>?name=<yourname> 
    
  2. HTTP 要求のこの新しい URL をブラウザーのアドレス バーに貼り付けます。 関数によって返されたリモート GET 要求に対するブラウザーでの応答を次に示します。

    ブラウザーでの関数の応答

次のステップ

Visual Studio を使用して、HTTP によってトリガーされる単純な関数を含む C# 関数アプリを作成しました。