この記事では、構成済みの自動スケーリング規則を使用して、 Azure Container Apps で Azure Functions アプリを作成する方法について説明します。
[前提条件]
リソース | 説明 |
---|---|
Azure アカウント | アクティブなサブスクリプションを持つ Azure アカウント。 持っていない場合は、無料で作成できます。 |
Azure ストレージ アカウント | Azure Functions の状態を格納するための BLOB ストレージ アカウント。 |
Azure Application Insights | コンテナー アプリに関するデータを収集する Azure Application Insights のインスタンス。 |
関数アプリを作成する
次の手順では、サンプル コンテナー イメージを使用してコンテナー アプリを作成する方法を示します。 カスタム コンテナー イメージでこの手順を使用する場合は、「コンテナー内の Azure Container Apps と Functions で初めての Azure 関数を作成する」を参照してください。
Azure portal に移動し、検索バーで Container Apps を検索します。
[Container Apps] を選択します。
を選択してを作成します。
コンテナー アプリの選択
[ 基本 ] セクションで、次の値を入力します。
[プロジェクトの詳細] で:
プロパティ 価値 サブスクリプション Azure のサブスクリプションを選択します。 リソースグループ [ 新しいリソース グループの作成] を選択し、 my-aca-functions-group という名前を付け、[ OK] を選択します。 コンテナー アプリ名 my-aca-functions-app と入力します。 [ Optimize for Azure Functions]\(Azure Functions の最適化\ ) の横にあるチェックボックスをオンにします。
[Container Apps environment]\(コンテナー アプリ環境\) で、次のように入力します。
プロパティ 価値 リージョン 最も近いリージョンを選択します。 Container Apps 環境 [ 新しい環境の作成] を選択します。 環境のセットアップ ウィンドウで、次のように入力します。
プロパティ 価値 環境名 my-aca-functions-environment を入力する ゾーン冗長性 [無効] をクリックします。 [ 作成] を選択して値を保存します。
[ 次へ: コンテナー] を選択して、[ コンテナー ] セクションに切り替えます。
[ クイック スタート画像を使用する] の横で、このチェック ボックスをオフのままにします。
[ コンテナーの詳細 ] セクションで、次の値を入力します。
プロパティ 価値 名前 このボックスには、最後のセクションで選択した内容があらかじめ入力されています。 イメージのソース [Docker Hub またはその他のレジストリ] を選択します。 サブスクリプション サブスクリプションを選択します。 イメージの種類 [パブリック] を選択します。 レジストリ ログイン サーバー 「mcr.microsoft.com」と入力します イメージとタグ 「azure-functions/dotnet8-quickstart-demo:1.0」と入力します [ 環境変数 ] で、次の変数の値を入力します。
AzureWebJobsStorage
-
APPINSIGHTS_INSTRUMENTATIONKEY
またはAPPLICATIONINSIGHTS_CONNECTION_STRING
これらの変数にマネージド ID または接続文字列の値を入力します。 マネージド ID をお勧めします。
AzureWebJobsStorage
変数は、Azure Functions に必要な Azure Storage アカウント接続文字列です。 このストレージ アカウントは、関数の実行ログを格納し、トリガーとバインドを管理し、永続的な関数の状態を維持します。Application Insights は、Azure Functions のパフォーマンスと使用状況に関する分析情報を提供する監視および診断サービスです。 この監視は、要求率、応答時間、失敗率、およびその他のメトリックを追跡するのに役立ちます。
ヒント
既定では、コンテナー化された関数アプリは、受信要求のポート
80
を監視します。 アプリで別のポートを使用している場合は、WEBSITES_PORT
アプリケーション設定を使用して既定のポートを変更します。[ 次へ] > [イングレス ] を選択してイングレス セクションに切り替え、次の値を入力します。
プロパティ 価値 イングレス [ 有効] チェック ボックスをオンにしてイングレスを有効にします。 イングレス トラフィック [どこからでもトラフィックを受け入れる] を選択します。 イングレスの種類 [HTTP] を選択します。 ターゲット ポート 「80」と入力します。 [確認および作成]を選択します。
を選択してを作成します。
デプロイが完了したら、[リソースに移動] を選択します。
[ 概要 ] ページで、[ アプリケーション URL ] の横にあるリンクを選択して、新しいブラウザー タブでアプリケーションを開きます。
URL の末尾に
/api/HttpExample
を追加します。ブラウザーで "HTTP トリガー関数が要求を処理しました" というメッセージが返されます。
[前提条件]
Functions アプリを作成する
CLI から Azure にサインインするには、次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。
Azure にサインインします。
az login
最新バージョンの CLI を実行していることを確認するには、upgrade コマンドを実行します。
az upgrade
CLI 用の Azure Container Apps 拡張機能をインストールまたは更新します。
Azure CLI で
az containerapp
コマンドを実行したとき、または PowerShell でAz.App
モジュールのコマンドレットを実行したときに、パラメーターの不足に関するエラーが表示される場合は、最新バージョンの Azure Container Apps 拡張機能がインストールされていることを確認してください。az extension add --name containerapp --upgrade
最新の拡張機能またはモジュールがインストールされたので、
Microsoft.App
およびMicrosoft.OperationalInsights
名前空間を登録します。az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
環境変数を作成します。
RESOURCE_GROUP_NAME="my-aca-functions-group" CONTAINER_APP_NAME="my-aca-functions-app" ENVIRONMENT_NAME="my-aca-functions-environment" LOCATION="westus"
リソース グループを作成する。
az group create \ --name $RESOURCE_GROUP_NAME \ --___location $LOCATION \ --output none
Container Apps 環境を作成します。
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --___location $LOCATION \ --output none
Azure Functions コンテナー アプリを作成します。
az containerapp create \ --resource-group $RESOURCE_GROUP_NAME \ --name $CONTAINER_APP_NAME \ --environment $ENVIRONMENT_NAME \ --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \ --ingress external \ --target-port 80 \ --kind functionapp \ --query properties.outputs.fqdn
このコマンドは、Functions アプリの URL を返します。 この URL をコピーし、Web ブラウザーに貼り付けます。
URL の末尾に
/api/HttpExample
を追加します。ブラウザーで "HTTP トリガー関数が要求を処理しました" というメッセージが返されます。