次の方法で共有


Azure Container Apps で Azure Functions を使用する

この記事では、構成済みの自動スケーリング規則を使用して、 Azure Container Apps で Azure Functions アプリを作成する方法について説明します。

[前提条件]

リソース 説明
Azure アカウント アクティブなサブスクリプションを持つ Azure アカウント。

持っていない場合は、無料で作成できます。
Azure ストレージ アカウント Azure Functions の状態を格納するための BLOB ストレージ アカウント。
Azure Application Insights コンテナー アプリに関するデータを収集する Azure Application Insights のインスタンス。

関数アプリを作成する

次の手順では、サンプル コンテナー イメージを使用してコンテナー アプリを作成する方法を示します。 カスタム コンテナー イメージでこの手順を使用する場合は、「コンテナー内の Azure Container Apps と Functions で初めての Azure 関数を作成する」を参照してください。

  1. Azure portal に移動し、検索バーで Container Apps を検索します。

  2. [Container Apps] を選択します。

  3. を選択してを作成します。

  4. コンテナー アプリの選択

  5. [ 基本 ] セクションで、次の値を入力します。

    [プロジェクトの詳細] で:

    プロパティ 価値
    サブスクリプション Azure のサブスクリプションを選択します。
    リソースグループ [ 新しいリソース グループの作成] を選択し、 my-aca-functions-group という名前を付け、[ OK] を選択します
    コンテナー アプリ名 my-aca-functions-app と入力します。
  6. [ Optimize for Azure Functions]\(Azure Functions の最適化\ ) の横にあるチェックボックスをオンにします。

  7. [Container Apps environment]\(コンテナー アプリ環境\) で、次のように入力します。

    プロパティ 価値
    リージョン 最も近いリージョンを選択します。
    Container Apps 環境 [ 新しい環境の作成] を選択します。
  8. 環境のセットアップ ウィンドウで、次のように入力します。

    プロパティ 価値
    環境名 my-aca-functions-environment を入力する
    ゾーン冗長性 [無効] をクリックします。
  9. [ 作成] を選択して値を保存します。

  10. [ 次へ: コンテナー] を選択して、[ コンテナー ] セクションに切り替えます。

  11. [ クイック スタート画像を使用する] の横で、このチェック ボックスをオフのままにします。

  12. [ コンテナーの詳細 ] セクションで、次の値を入力します。

    プロパティ 価値
    名前 このボックスには、最後のセクションで選択した内容があらかじめ入力されています。
    イメージのソース [Docker Hub またはその他のレジストリ] を選択します。
    サブスクリプション サブスクリプションを選択します。
    イメージの種類 [パブリック] を選択します。
    レジストリ ログイン サーバー 「mcr.microsoft.com」と入力します
    イメージとタグ 「azure-functions/dotnet8-quickstart-demo:1.0」と入力します
  13. [ 環境変数 ] で、次の変数の値を入力します。

    • AzureWebJobsStorage
    • APPINSIGHTS_INSTRUMENTATIONKEY または APPLICATIONINSIGHTS_CONNECTION_STRING

    これらの変数にマネージド ID または接続文字列の値を入力します。 マネージド ID をお勧めします。

    AzureWebJobsStorage変数は、Azure Functions に必要な Azure Storage アカウント接続文字列です。 このストレージ アカウントは、関数の実行ログを格納し、トリガーとバインドを管理し、永続的な関数の状態を維持します。

    Application Insights は、Azure Functions のパフォーマンスと使用状況に関する分析情報を提供する監視および診断サービスです。 この監視は、要求率、応答時間、失敗率、およびその他のメトリックを追跡するのに役立ちます。

    ヒント

    既定では、コンテナー化された関数アプリは、受信要求のポート 80 を監視します。 アプリで別のポートを使用している場合は、 WEBSITES_PORT アプリケーション設定を使用して既定のポートを変更します。

  14. [ 次へ] > [イングレス ] を選択してイングレス セクションに切り替え、次の値を入力します。

    プロパティ 価値
    イングレス [ 有効] チェック ボックスをオンにしてイングレスを有効にします。
    イングレス トラフィック [どこからでもトラフィックを受け入れる] を選択します。
    イングレスの種類 [HTTP] を選択します。
    ターゲット ポート 80」と入力します。
  15. [確認および作成]を選択します。

  16. を選択してを作成します。

  17. デプロイが完了したら、[リソースに移動] を選択します。

  18. [ 概要 ] ページで、[ アプリケーション URL ] の横にあるリンクを選択して、新しいブラウザー タブでアプリケーションを開きます。

  19. URL の末尾に /api/HttpExample を追加します。

    ブラウザーで "HTTP トリガー関数が要求を処理しました" というメッセージが返されます。

[前提条件]

  • アクティブなサブスクリプションを持つ Azure アカウント。
  • Azure CLI をインストールします。

Functions アプリを作成する

CLI から Azure にサインインするには、次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。

  1. Azure にサインインします。

    az login
    
  2. 最新バージョンの CLI を実行していることを確認するには、upgrade コマンドを実行します。

    az upgrade
    
  3. 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
    
  4. 環境変数を作成します。

    RESOURCE_GROUP_NAME="my-aca-functions-group"
    CONTAINER_APP_NAME="my-aca-functions-app"
    ENVIRONMENT_NAME="my-aca-functions-environment"
    LOCATION="westus"
    
  5. リソース グループを作成する。

    az group create \
      --name $RESOURCE_GROUP_NAME \
      --___location $LOCATION \
      --output none
    
  6. Container Apps 環境を作成します。

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --___location $LOCATION \
        --output none
    
  7. 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 ブラウザーに貼り付けます。

  8. URL の末尾に /api/HttpExample を追加します。

    ブラウザーで "HTTP トリガー関数が要求を処理しました" というメッセージが返されます。