Azure 関数アプリの作成、削除、または復元時の問題を解決する

この記事では、Azure 関数アプリを作成、削除、または復元するときに発生する可能性のある一般的な問題と、問題を解決する手順について説明します。

関数アプリを作成する

Azure 関数アプリでは、Azure App Service インフラストラクチャが使用されます。 Azure 関数アプリは、次の方法で作成できます。

Visual Studio または Visual Studio Code から関数プロジェクトをデプロイするときに、アプリを作成することもできます。

Azure Functionsで使用される Azure Storage アカウントに関する考慮事項

関数アプリを作成するときに、BLOB、キュー、テーブル ストレージをサポートする汎用 Azure Storage アカウントを作成またはリンクできます。 Azure Functionsは、トリガーの管理や関数の実行のログ記録などの操作に Azure Storage に依存しています。 詳細については、「Azure Functionsのストレージに関する考慮事項」を参照してください。

  • ストレージ アカウントやその他のリソースを作成するためのアクセス許可があることを確認します。 ロールベースのアクセス制御 (RBAC)、ポリシー、またはスコープ違反は存在できません。
  • Azure Storage アカウント接続文字列のマネージド ID を使用します。の場合AzureWebJobsStorageのみ。 詳細については、「 ID を使用したホスト ストレージへの接続 (プレビュー)」を参照してください。

Azure Functionsによって使用される Azure Storage アカウントをセキュリティで保護する

プライベート エンドポイントでセキュリティ保護された Azure 関数アプリと新しいストレージ アカウントを作成できます。 仮想ネットワーク統合をサポートするプランで関数アプリをホストします。

異なるホスティング プラン間で Azure 関数アプリを移行する

Windows では、Azure CLI コマンドを使用して、従量課金プランと Premium プランの間、またはその逆に関数アプリを移行できます。 詳細については、「 移行の計画」を参照してください。

  • Consumption/Premium プランとの間の専用 (App Service) プランとの直接移行はサポートされていません。これは、イベント駆動型のスケーリングとサーバーレス機能の使用に関する機能がホスティング プランによって異なるためです。

注:

Linux では、ホスティング プランの移行はサポートされていません。

仮想ネットワーク接続、タイムアウト、課金などのホスティング プラン (従量課金、Premium、Dedicated) オファリングを確認します。 詳細については、「ホスティング オプションのAzure Functions」を参照してください。

"このリージョンには、サブスクリプションのインスタンスが 0 個のクォータがあります。 別のリージョンまたは SKU を選択してみてください"

特定のリージョンでリソース作成の問題が一貫して発生している場合は、ビジネスで許可されている場合は、地理的にペアのリージョンにリソースを作成してみてください。 たとえば、 米国西部 2米国中西部 はペアのリージョンです。 東アジア (香港特別行政区)東南アジア (シンガポール) もペアのリージョンです。

詳細については、以下を参照してください:

"価格レベルは、このリソース グループでは許可されていません" または "SkuNotAllowedForResourceGroup" というエラーを解決します

新しいリソース グループにプランを作成することをお勧めします。 異なる SKU には、一意のマシンが必要です。 リソース グループにアプリを作成すると、そのアプリがマップされ、リソースのプールに割り当てられます。 そのリソース グループに別のプランを作成し、マップされたプールに必要なリソースがない場合は、エラーが表示されます。

詳細については、「 既存のリソース グループでの関数アプリの作成」を参照してください。

関数アプリコンテンツ ファイル共有の作成が失敗する: "リモート サーバーからエラーが返されました: (403) Forbidden"

従量課金プランまたは Elastic Premium プランの関数アプリの場合、ファイル共有はストレージ アカウントに作成され、アプリ設定 WEBSITE_CONTENT_SHAREを使用して参照されます。 このエラーは、ストレージ アカウントにファイアウォール、プライベート エンドポイント、またはネットワーク セキュリティ グループ (NSG) 規則などの他の仮想ネットワーク セキュリティ制限があるために発生する可能性があります。

エラーを解決するには、セキュリティで保護されたストレージ アカウントに事前にファイル共有を作成し、 に WEBSITE_CONTENT_SHARE構成します。 詳細については、「 ストレージ アカウントを仮想ネットワークに制限する」を参照してください。

作成用の代替ツール

Azure CLI、PowerShell、などの代替ツールを Az.Functions使用できます。 ツールの最新バージョンを必ず使用してください。 Azure portalなどのいずれかのツールを使用するときに問題が発生した場合は、Azure CLI などの別のツールを使用してみてください。

Windows と Linux の関数ランタイム バージョンを設定する

Windows アプリの場合は、Azure portalでランタイム バージョンを設定するか (設定>構成>関数ランタイム設定>ランタイム バージョン)、またはアプリケーション設定FUNCTIONS_EXTENSION_VERSIONを作成し、それをメジャー ランタイム バージョン (たとえば、~4ターゲット V4) に設定します。 詳細については、「Azure Functionsランタイム バージョンをターゲットにする方法」を参照してください。 マイナー バージョンに設定 FUNCTIONS_EXTENSION_VERSION して、ホスト リリースに基づいてマイナー バージョンにピン留めします。 「Azure Functions ホスト リリース」も参照してください。

Linux アプリについては、「 Linux での手動バージョン更新プログラム」を参照してください。

HTTP 429 エラーのトラブルシューティング

調整は、Azure Resource Manager とリソース プロバイダー (Microsoft.Web) の 2 つのレベルで行われます。 レベルは、サブスクリプションの種類とホスティング プランによって異なります。 詳細については、以下を参照してください:

注:

問題がまれな場合は、しばらくしてから待ってから再試行して、問題が解決するかどうかを確認してください。 問題が頻繁に発生する場合は、別のサブスクリプションを購入するか、ホスティング プランを更新してエラーを解決できます。

関数アプリを削除または復元する

Visual Studio からコードを発行し、 を使用WEBSITE_RUN_FROM_PACKAGEすると、Azure portalは関数を読み取り専用として設定し、ポータルでプリコンパイル済み資産を編集できないようにします。 関数アプリで関数を削除するには、不要な関数をコードから削除し、プロファイル設定 で [コピー先の追加のファイルを削除 する] オプションを有効にして、コードを再デプロイします。

従量課金プランまたは Elastic Premium プランでホストされている Azure 関数アプリの復元はサポートされていません。 関数アプリのコンテンツがある場合、またはストレージ アカウントにアクセスできる場合は、アプリの設定を更新するか、新しい関数アプリを作成してコンテンツを使用します。 コンテンツ ストレージにAzure Filesを使用していない場合は、専用 App Service プランで Azure 関数アプリを復元できます。

詳細については、「 削除された Web アプリの復元 (削除を取り消す)」を参照してください。

Azure 関数アプリを削除するための十分なアクセス許可があることを確認します。 ロールベースのアクセス制御 (RBAC)、ポリシー、またはスコープ違反は存在できません。

Microsoft サポートに連絡する前にデータを収集する

関数アプリの作成または削除が失敗した場合は、サポート チケットの作成時に次のデータを収集して共有します。

  • Azure portal: 問題を再現し、ブラウザー トレースをキャプチャします

  • Azure CLI または Azure PowerShell: エラーと詳細ログを報告したコマンドを共有します。

  • Azure Resource Managerデプロイエラーの場合は、Azure portalでエラー メッセージを見つけます。

    1. [ リソース グループ>のデプロイ] を選択します。
    2. 失敗したタスクの関連付け ID を共有します。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。