演習: Visual Studio Code を使用して Azure 関数を作成する
この演習では、HTTP 要求に応答する C# 関数を作成する方法について学習します。 Visual Studio Code でローカルにコードを作成し、テストした後に、Azure にデプロイします。
前提条件
開始する前に、以下の要件が満たされていることを確認してください。
アクティブなサブスクリプションがある Azure アカウント。 アカウントを取得済みでない場合は、https://azure.com/free から無料評価版にサインアップできます。
Azure Functions Core Tools バージョン 4.x。
サポートされているプラットフォームのいずれかにインストールされた Visual Studio Code。
以下の手順のターゲット フレームワークである.NET 6。
Visual Studio Code 用の C# 拡張機能。
Visual Studio Code 用 Azure Functions 拡張機能。
ローカル プロジェクトを作成する
このセクションでは、Visual Studio Code を使用して、ローカル Azure Functions プロジェクトを C# で作成します。 この演習の後半で、関数コードを Azure に発行します。
アクティビティ バーの Azure アイコンを選択し、[ワークスペース] 領域で [追加] を選択します。最後に [関数の作成] を選択します。
Note
新しいプロジェクトを作成するように求めるポップアップ メッセージが表示される場合があります。そのときは [新しいプロジェクトの作成] を選択します。
プロジェクト ワークスペースのディレクトリの場所を選択し、 [選択] をクリックします。
Note
必ず既存のワークスペース外のプロジェクト フォルダーを選択してください。
プロンプトで、次の情報を入力します。
- 言語を選択する:
C#
を選択します。 - .NET ランタイムを選択する:
.NET 6
を選択します。 - Select a template for your project's first function (プロジェクトの最初の関数のテンプレートを選択してください) : [
HTTP trigger
] を選択します。 - Provide a function name (関数名を指定してください): 「
HttpExample
」と入力します。 - Provide a namespace (名前空間を指定してください): 「
My.Function
」と入力します。 - 承認レベル:
Anonymous
を選択します。この場合、すべてのユーザーが関数のエンドポイントを呼び出すことができます。 - Select how you would like to open your project (プロジェクトを開く方法を選択してください) : [
Add to workspace
] を選択します。
- 言語を選択する:
Visual Studio Code は、この情報を使用して、HTTP トリガーによる Azure Functions プロジェクトを生成します。
関数をローカルで実行する
Visual Studio Code を Azure Functions Core Tools と統合することで、このプロジェクトをローカルの開発用コンピューター上で実行してから、Azure に発行することができます。
Visual Studio Code でターミナルが開いていることを確認します。 ターミナルを開くには、[ターミナル]、次いでメニュー バーの [新しいターミナル] を選択します。
F5 キーを押してデバッガーで関数アプリ プロジェクトを起動します。 Core Tools からの出力がターミナル パネルに表示されます。 アプリがターミナル パネルで起動します。 HTTP によってトリガーされる関数の URL エンドポイントがローカルで実行されていることを確認できます。
Core Tools を実行したまま、Azure: Functions 領域に移動します。 [Functions] の [ローカル プロジェクト]>[Functions] を展開します。
HttpExample
関数を右クリックし、[Execute Function Now](今すぐ関数を実行する) を選択します。[Enter request body](要求の本文を入力する) に、
{ "name": "Azure" }
という要求メッセージの本文値を入力します。 Enter キーを押して、この要求メッセージを関数に送信します。 ローカルで関数を実行し、応答が返されると、Visual Studio Code で通知が発生します。 関数の実行に関する情報は、 [ターミナル] パネルに表示されます。Shift + F5 キーを押して Core Tools を停止し、デバッガーの接続を解除します。
関数がローカル コンピューター上で正常に動作することを確認したら、Visual Studio Code を使用してプロジェクトを直接 Azure に発行します。
Azure へのサインイン
アプリを発行するには、Azure にサインインしておく必要があります。 既にサインインしている場合は、次のセクションに進んでください。
まだサインインしていない場合は、[アクティビティ] バーの Azure アイコンを選択し、[Azure: Functions] 領域で、[Azure にサインイン...] を選択します。
ブラウザーでプロンプトが表示されたら、ご利用の Azure アカウントを選択し、その Azure アカウントの資格情報を使用してサインインします。
正常にサインインしたら、新しいブラウザー ウィンドウを閉じてかまいません。 ご利用の Azure アカウントに属しているサブスクリプションがサイド バーに表示されます。
Azure でリソースを作成する
このセクションでは、ローカル関数アプリをデプロイするために必要な Azure リソースを作成します。
アクティビティ バーの Azure アイコンを選択し、[リソース] 領域で [リソースの作成] ボタンを選択します。
プロンプトで、次の情報を入力します。
- [Azure で関数アプリを作成する] を選択します。
- Enter a globally unique name for the function app (関数アプリのグローバルに一意の名前を入力します) : URL パスに有効な名前を入力します。 入力した名前は、Azure Functions 内での一意性を確保するために検証されます。
- ランタイム スタックを選択する: 前述の「ローカル プロジェクトを作成する」セクションで選択したのと同じものを使用します。
- 新しいリソースの場所を選択する: パフォーマンスを向上させるために、お近くのリージョンを選択します。
- Select subscription (サブスクリプションを選択してください) : 使用するサブスクリプションを選択します。 サブスクリプションが 1 つのみの場合、このプロンプトは表示されません。
この拡張機能は、Azure で作成された個々のリソースの状態をターミナル ウィンドウの [AZURE: アクティビティ ログ] 領域に表示します。
完了すると、関数アプリ名に基づく名前を使用して、次の Azure リソースがサブスクリプションに作成されます。
- リソース グループ。関連リソースの論理コンテナーです。
- Standard Azure ストレージ アカウント。プロジェクトについての状態とその他の情報を保持します。
- 従量課金プラン。サーバーレス関数アプリの実行環境となるホストを定義します。
- 関数アプリ。関数コードを実行するための環境となります。 関数アプリを使用すると、同じホスティング プランに含まれるリソースの管理、デプロイ、共有を容易にするための論理ユニットとして関数をグループ化できます。
- 関数アプリに接続された Application Insights インスタンス。サーバーレス関数の使用を追跡します。
コードをデプロイする
Azure バーの [ワークスペース] セクションで、[デプロイ] ボタンを選択後 [関数アプリにデプロイする] を選択します。
リソースの選択を求められたら、前のセクションで作成した関数アプリを選択します。
確認のプロンプトで [デプロイ] を選択して、関数のデプロイを確認します。
重要
既存の関数に発行すると、以前のデプロイはすべて上書きされます。
Azure で関数を実行する
[リソース] 領域 (サイド バー内) に戻り、サブスクリプション、新しい関数アプリ、[関数] の順に展開します。
HttpExample
関数を右クリックし、[Execute Function Now](今すぐ関数を実行する) を選択します。[Enter request body]\(要求本文を入力してください\) に、要求メッセージ本文の値として
{ "name": "Azure" }
が表示されます。 Enter キーを押して、この要求メッセージを関数に送信します。Azure で関数を実行し、応答が返されると、Visual Studio Code で通知が発生します。