演習 - HTTP トリガー関数を作成する
このガイド付きプロジェクトは、次の演習で構成されています。
- 関数アプリを作成する
- HTTP トリガー関数をデプロイする
- エンドポイントをテストし、ログを確認する
この演習では、Cloud Shell を使用して HTTP トリガーを使用して関数プロジェクトを作成し、それを関数アプリにデプロイします。 これにより、すべてのユーザーがブラウザーから呼び出すことができるライブ HTTP エンドポイントが提供されます。
この演習には、次のタスクが含まれています。
- Cloud Shell を開く
- 関数プロジェクトを作成する
- 関数を Azure にデプロイする
結果: Cloud Shell を使用して関数アプリにデプロイされた呼び出し可能な HTTP エンドポイント。
タスク 1: Cloud Shell を開く
コマンド ラインを使用して関数を作成してデプロイできるように、Azure Cloud Shell を起動します。
- Azure portal で、上部のツール バーにある Cloud Shell アイコンを選択します (コマンド プロンプトの>_ のようになります)。
- Bash または PowerShell の選択を求められたら、[Bash] を選択します。 メッセージが表示されずに Cloud Shell が開いた場合は、Cloud Shell ウィンドウの左上隅を確認します。 [ Bash に切り替える ] ボタンが表示された場合は、それを選択します。 PowerShell に切り替えると表示される場合は、既に Bash に参加しています。 Cloud Shell が初期化されるまでに 1 分かかる場合があります。
- ストレージの作成を求められたら、[ ストレージの作成 ] を選択し、Cloud Shell が初期化されるまで待ちます。
- ポータルの下部に Bash コマンド プロンプトが表示されたことを確認します。
注
検証手順: Cloud Shell ターミナルが開き、 $ プロンプトが表示されていることを確認します。
タスク 2: 関数プロジェクトを作成する
Cloud Shell の Azure Functions Core Tools を使用して、HTTP トリガーを使用して新しい関数プロジェクトをスキャフォールディングします。
Cloud Shell プロンプトで、次のコマンドを実行して新しい関数プロジェクト フォルダーを作成し、それに切り替えます。
mkdir func-gp-endpoint && cd func-gp-endpoint次のコマンドを実行して、Node.js ランタイムを使用して新しい Functions プロジェクトを初期化します。 これは、必要なパッケージをインストールするまでに 1 分かかる場合があります。
func init --worker-runtime node --language javascript --model V4次のコマンドを実行して、 GetStatus という名前の HTTP によってトリガーされる関数を追加します。
func new --name GetStatus --template "HTTP trigger" --authlevel anonymous注
--authlevel anonymousフラグは、URL を持つすべてのユーザーが、キーやサインインを指定せずにこの関数を呼び出すことができるということです。 これはテストに役立ちますが、機密データを処理する運用エンドポイントには使用しないでください。次を実行して関数が作成されたことを示す出力を確認します。
ls src/functions/GetStatus.jsという名前のファイルが表示されます。
注
検証手順: ディレクトリに src/functions/ が表示されたことを確認します。
タスク 3: 関数を Azure にデプロイする
前の演習で作成した関数アプリに関数プロジェクトを発行します。
次のコマンドを実行して関数アプリ名を検索し、変数に格納します。
FUNC_APP_NAME=$(az functionapp list --resource-group rg-gp-functions-endpoint --query "[0].name" -o tsv) echo $FUNC_APP_NAME出力に、前の演習で作成した Function App 名が表示されたことを確認します。
次のコマンドを実行して、関数プロジェクトを関数アプリに発行します。
func azure functionapp publish $FUNC_APP_NAMEデプロイが完了するまで待ちます。 出力には、次のような関数のパブリック URL が表示されます。
Functions in <your-function-app-name>: GetStatus - [httpTrigger] Invoke url: https://<your-function-app-name>.azurewebsites.net/api/getstatus出力から Invoke URL を コピーします。 この URL は、次の演習で関数をテストするために使用します。
注
検証手順: デプロイの出力に、呼び出し URL を持つ GetStatus 関数が表示されたことを確認します。