ゾーンの冗長性により、関数アプリは Azure 可用性ゾーンの問題に対する回復力を持つため、データセンターまたはゾーンで障害が発生してもアプリは引き続き使用できます。 この記事では、ホスティング プランに応じて、Azure Functions をゾーン冗長に構成するための詳細なガイダンスを提供します。 可用性ゾーンと Azure Functions の連携方法については、「Azure Functions の信頼性」を参照してください。
Azure Functions の可用性ゾーンの構成は、 Functions ホスティング プランによって異なります。
| ホスティング プラン | サポート レベル | 構成セクション |
|---|---|---|
| Flex 従量課金プラン | GA | この記事の上部にある Flex Consumption を選択します。 |
| Elastic Premium プラン | GA | この記事の上部にある Premium を選択します。 |
| Dedicated (App Service) プラン | GA | App Service の可用性ゾーンの構成に関するページを参照してください。 |
| 消費プラン | なし | 従量課金プランではサポートされていません。 |
Important
ゾーンの冗長性を構成する前に、「 Azure Functions の信頼性 - 可用性ゾーンの障害に対する回復性」に記載されている要件と詳細を確認してください。
Important
ゾーンの冗長性を構成する前に、「 Azure Functions の信頼性 - 可用性ゾーンの障害に対する回復性」に記載されている要件と詳細を確認してください。
アプリの作成時にのみ、プランで可用性ゾーンを有効にすることができます。 既存の Premium プランを変換して可用性ゾーンを使用することはできません。
可用性ゾーンをサポートするリージョンを表示する
ゾーン冗長 Flex Consumption プランは、特定のリージョン セットにデプロイできます。 現在の一覧では、Azure CLI を使用します。
まだインストールしていない場合は、Azure CLI を使用して Azure にインストールしてサインインします。
az loginaz functionapp list-flexconsumption-locationsコマンドを--zone-redundant=true引数と共に使用します。この引数は、現在ゾーン冗長 Flex Consumption プランをサポートしているリージョンの一覧を返します。az functionapp list-flexconsumption-locations --zone-redundant=true --query "sort_by(@, &name)[].{Region:name}" -o table
ゾーン冗長関数アプリを作成する
アプリを作成するときにゾーン冗長 Flex 従量課金プランを作成するには、次の手順に従います。
ゾーン冗長プランで関数アプリを作成するには、既存の ゾーン冗長ストレージ アカウントが必要です。 ゾーン冗長ストレージ アカウントがまだない場合は、先に進む前に作成します。
Azure portal で、[関数アプリを作成する] ページに移動します。 ポータルでの関数アプリの作成の詳細については、「関数アプリを作成する」をご覧ください。
Flex Consumption を選択し、[選択] ボタンを選択します。
[ 関数アプリの作成 (Flex Consumption)] ページの [ 基本 ] タブで、関数アプリの設定を入力します。 ゾーン冗長に関する特定の要件がある次の表 (次のスクリーンショットでもハイライトされている) の設定には、特に注意してください。
Setting 推奨値 ゾーン冗長に関する注意事項 リージョン ご希望のサポートされているリージョン Flex 従量課金プランが作成されるリージョン。 Azure Functions Premium プランのゾーン冗長性をサポートするリージョンの一覧については、「Azure Functions の信頼性 - 可用性ゾーンの障害に対する回復性 - 要件」を参照してください。 ゾーン冗長性 有効 この設定では、アプリがゾーン冗長かどうかを指定します。 ゾーンの冗長性をサポートするリージョンを選択した場合にのみ、 Enabledを選択できます。
[ ストレージ ] タブで、関数アプリのゾーン冗長ストレージ アカウントを選択します。 ゾーン冗長に関する特定の要件がある次の表の設定には、特に注意してください。
Setting 推奨値 ゾーン冗長に関する注意事項 ストレージ アカウント ゾーン冗長ストレージ アカウント Azure Functions の信頼性ガイドで説明されているように、ゾーン冗長関数アプリにはゾーン冗長ストレージ アカウントを使用することを強くお勧めします。 関数アプリ作成プロセスの残りの部分では、通常どおりに関数アプリを作成します。 作成プロセスの残りの部分には、ゾーン冗長性に影響する設定はありません。
ゾーン冗長プランを作成してデプロイすると、新しいプランでホストされている Flex Consumption 関数アプリはゾーン冗長と見なされます。
ゾーン冗長 Premium プランとアプリを作成するには、次の手順に従います。
Azure portal で、[関数アプリを作成する] ページに移動します。 ポータルでの関数アプリの作成の詳細については、「関数アプリを作成する」をご覧ください。
[Functions Premium プラン] を選択し、[選択する] ボタンを選択します。
[関数アプリを作成する] (Functions Premium プラン) ページの [基本情報] タブで、関数アプリの設定を入力します。 ゾーン冗長に関する特定の要件がある次の表 (次のスクリーンショットでもハイライトされている) の設定には、特に注意してください。
Setting 推奨値 ゾーン冗長に関する注意事項 リージョン ご希望のサポートされているリージョン Elastic Premium プランが作成されるリージョン。 可用性ゾーンをサポートしているリージョンを選択する必要があります。 Azure Functions Premium プランのゾーン冗長性をサポートするリージョンの一覧については、「Azure Functions の信頼性 - 可用性ゾーンの障害に対する回復性 - 要件」を参照してください。 料金プラン Elastic Premium プランの 1 つ。 詳細については、「利用可能インスタンス SKU」をご覧ください。 この記事では、Premium プランでゾーン冗長アプリを作成する方法について説明します。 ゾーン冗長性は、現在、従量課金プランでは使用できません。 App Service プランのゾーン冗長については、App Service の 可用性ゾーンの構成に関するページを参照してください。 ゾーン冗長性 有効 この設定では、アプリがゾーン冗長かどうかを指定します。 前述した通り、ゾーン冗長をサポートするリージョンを選択しない限り、 Enabledを選択することはできません。
[ストレージ] タブで、関数アプリ ストレージ アカウントの設定を入力します。 ゾーン冗長に関する特定の要件がある次の表の設定には、特に注意してください。
Setting 推奨値 ゾーン冗長に関する注意事項 ストレージ アカウント ゾーン冗長ストレージ アカウント Azure Functions の信頼性ガイドで説明されているように、ゾーン冗長関数アプリにはゾーン冗長ストレージ アカウントを使用することを強くお勧めします。 関数アプリ作成プロセスの残りの部分では、通常どおりに関数アプリを作成します。 作成プロセスの残りの部分には、ゾーン冗長性に影響する設定はありません。
ゾーン冗長プランが作成およびデプロイされると、新しいプランでホストされている関数アプリはゾーン冗長としてみなされます。
既存のプランでゾーン冗長を有効にする
アプリのゾーン冗長性を変更するには再起動が必要です。これにより、アプリのダウンタイムが発生します。
Flex 従量課金プランをゾーン冗長に更新する前に、既定のホスト ストレージ アカウントもゾーン冗長に更新する必要があります。 アプリのデプロイ コンテナーに別のストレージ アカウントを使用する場合は、ゾーン冗長に更新する必要があります。
次の手順を使用して、変更に備えてストレージ アカウントを準備します。
- ストレージに関する考慮事項を確認します。
- ゾーン冗長ストレージ アカウントを作成または識別して、アプリの既定のホスト ストレージ アカウントにします。
- ゾーン冗長ストレージ アカウントを参照するように、アプリのストレージ関連のアプリケーション設定 (
AzureWebJobsStorageなど) を更新します。 「アプリケーション設定の操作」を参照してください。 - アプリのデプロイ ストレージ アカウントを更新します。これは、アプリに関連付けられているストレージ アカウントと同じでも異なる場合もあります。 展開設定の構成を参照してください。
アプリで使用されているストレージ アカウントが更新されたら、Bicep または ARM テンプレートを使用して、Flex Consumption プランをゾーン冗長に更新できます。 現在、Azure portal では、プランに対するゾーン冗長更新の作成はサポートされていません。
ゾーン冗長設定を更新する
Azure portal で、更新する関数アプリを検索して選択します。
[ 設定] で、[ スケールとコンカレンシー] を選択します。
[ ゾーン冗長 ] タブで、[ ゾーン冗長の追加] をオンにして機能を有効にします。 既にオンになっている場合は、このチェック ボックスをオフにして機能を無効にすることができます。
[ 保存] を 選択して変更をコミットし、アプリを再起動します。
既存の Elastic Premium プランの可用性ゾーンのサポートを変更することはできません。 代わりに、新しいゾーン冗長プランに移行する必要があります。
稼働停止時間 (ダウンタイム)
この移行に必要なダウンタイムは、移行中のトラフィックを新しい可用性ゾーン対応関数アプリにリダイレクトする方法によって異なります。
- Application Gateway、カスタム ドメイン、または Azure Front Door を使用する HTTP ベースの関数を検討してください。 この場合、ダウンタイムは、それぞれのサービスを新しいアプリ情報で更新するのにかかる時間によって異なります。
- また、Azure Traffic Manager などのサービスを使用して、複数のアプリに同時にトラフィックをルーティングする場合もあります。 このシナリオでは、すべてを完全にデプロイしてテストした後にのみ、新しいゾーン冗長アプリに完全に切り替えることができます。
- メッセージベースの関数の場合は、移行中にメッセージが失われないように 防御関数を記述 する必要があります。
移行の手順
既存の Premium プラン関数アプリで可用性ゾーンを使用できるようにするには、ゾーン冗長 Premium プランでホストされている新しい関数アプリにプロジェクト ファイルを再デプロイします。 次の手順に従います。
- サポートされているリージョンの Premium プランで既にホストされている場合は、既存のリソース グループを再利用して、次の手順に進むことができます。 それ以外の場合は、サポートされているリージョンに新しいリソース グループを作成します。 Azure Functions Premium プランのゾーン冗長性をサポートするリージョンの一覧については、「Azure Functions の信頼性 - 可用性ゾーンの障害に対する回復性 - 要件」を参照してください。
- サポートされているリージョンにゾーン冗長 Premium プランを作成します。
- 新しい Premium プランで関数アプリを作成し、目的の デプロイ方法を使用して、この新しいアプリにプロジェクト コードをデプロイします。
- 新しいアプリが正常に起動して実行されたら、必要に応じて非ゾーン アプリを無効または削除できます。
次のステップ
- Azure Functions の信頼性 - 可用性ゾーンのサポートとその他の信頼性のアプローチとパターンに関する概念ガイダンス
- Azure Functions でのリソースデプロイの自動化 - コードとしてのインフラストラクチャオプションの詳細
- Azure Functions ホスティング プラン - さまざまなホスティング オプションを比較する
- Azure Functions のストレージに関する考慮事項 - ゾーン冗長セットアップのストレージ要件について