Microsoft AZ-204: Azure App Service と Web Apps — 学習ガイド
こちらの一部です: Microsoft Azure Developer Associate AZ-204 — 学習ガイド. 検証済みの解答で練習: Microsoft試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
バックグラウンド処理と分離された環境
WebJobsとASEは、バックグラウンド処理とネットワーク分離のシナリオに対応します。
- WebJobs:
- 継続的なWebJobsは、Webアプリの各インスタンスで永続的に実行され、キュー処理やイベントループに適しています。実行を維持するにはAlways On(Standard以上)が必要です。スケールはアプリプランのインスタンス数に従います。アクティブなワーカーを1つだけにしたい場合は、コードでシングルトンビヘイビアを適用します。
- トリガーされるWebJobsは、オンデマンドまたはスケジュール(settings.jobによるCRON)で実行されます。バッチジョブ、ETL、または定期的なメンテナンスに最適です。
- WebJobs SDKは、Azure Storage Queues、Service Busのキュー/トピック、Blobs、およびTimersに対するトリガーとバインディングを、宣言的な関数メソッドと自動チェックポイント機能とともに提供します。キューによってトリガーされるWebJobは、新しいメッセージに即座に反応し、アプリのインスタンスとともにスケールし、フォールト分離のために有害キュー(poison queue)処理を使用します。ログとダッシュボードはKuduでアクセス可能です。
- App Service Environment (ASE):
- ASEv3は、Isolated v2 SKUを使用してVNet内にApp Serviceプランをホストし、専用のコンピューティング、データプレーンの分離、およびプライベートIPを提供します。パブリックなイングレスには外部ASEを、またはすべてのインバウンドをVNet内でプライベートに保つために内部ロードバランサー(ILB)ASEを選択します。必要に応じて、プライベートDNS、ファイアウォール、NVA/WAFと統合します。
- ASEは、きめ細かいエグレス制御、ネットワーク検査、およびコンプライアンスへの準拠を可能にします。予測可能なネットワーク境界を持つ大規模なホスティングをサポートし、プランのインスタンスとは別に課金されます。
構成、接続文字列、およびKey Vault参照
アプリの構成はランタイム時に挿入され、スロット固有にすることができます。
- アプリ設定:
- アプリが環境変数として利用できるキーと値のペアです。スロットごとに異なる値を保持するには、スロット設定としてマークします。ロールアウト中に正常でないインスタンスをローテーションから除外するために、ヘルスチェックパスを活用します。フレームワークで動的リロードパターンが構成されていない限り、変更はアプリの再起動をトリガーします。
- 接続文字列:
- 別途管理され、環境変数として公開されます。.NETアプリはプロバイダー固有の構成も受け取ります。種類にはSQLAzure、SQLServer、MySQL、PostgreSQL、およびCustomが含まれます。シークレットのスワップを避けるために、必要に応じてスロット設定としてマークします。
- Key Vault参照:
- 特別な構文@Microsoft.KeyVault(SecretUri=https://
<vault>.vault.azure.net/secrets/<name>/<version>)またはバージョンレスURIを使用して、App SettingsおよびConnection Stringsでシークレットを直接参照し、ローテーションを自動的に取得します。システム割り当てまたはユーザー割り当てのマネージドIDをアプリに割り当て、そのIDにコンテナーに対するシークレットの取得権限(RBACまたはアクセスポリシー)を付与します。プラットフォームは、App Serviceの構成にシークレットを公開することなく、値を解決および更新します。Key VaultからTLS証明書を使用するには、証明書としてインポートするか、プラットフォームでサポートされている証明書参照を使用します。
- 特別な構文@Microsoft.KeyVault(SecretUri=https://
デプロイメントスロットの詳細とオペレーショナルエクセレンス
ステージングスロットをCI/CDのターゲットとして使用します。デプロイ後:
- ウォームアップのためのpingとヘルスチェックを実行し、JIT、キャッシュ、データベース接続を準備します。
- スロット設定を使用して構成の差異を検証し、本番環境のシークレットとエンドポイントを分離します。
- プレビュー付きスワップを実行し、最終決定前に本番ホスト名でステージングスロットをテストします。エラーが発生した場合は、スワップをキャンセルして即座にロールバックします。
- プログレッシブデリバリーのために、トラフィックルーティングを使用して少量の割合をカナリアスロットに誘導し、App Insightsのメトリクスとログを監視します。徐々に割合を増やし、SLOが維持されたらスワップを完了します。
実践的な問題シナリオ
スターバックスは、プロモーション中の急増に対応し、ソーシャルログインと統合し、内部APIを保護し、バックグラウンドの注文ワークフローを確実に処理する必要がある、新しいWeb注文プラットフォームを立ち上げます。
- Premium v3 App Serviceプランと2つのデプロイメントスロット(ステージング、本番)を選択
- 理由:Premium v3は、より高速なCPUとSSDを提供し、低レイテンシーのページロードと高スループットを実現します。さらに、スロットと自動スケールも利用できます。スロットにより、プロモーションによるトラフィックの急増下でも、ゼロダウンタイムスワップと迅速なロールバックが可能になります。
- GitHub ActionsでCI/CDを実装し、ステージングスロットにデプロイ
- 理由:GitHub Actionsは、リポジトリネイティブの自動化を提供します。ステージングにデプロイすることで、顧客トラフィックに影響が及ぶ前にウォームアップと検証ができます。このワークフローはOryxを使用し、mainへのプッシュ時にビルドとデプロイを行い、一貫したビルドを保証します。
- Easy AuthをMicrosoft Entra IDとGoogleプロバイダーで有効化し、トークンストアを有効にする
- 理由:Easy AuthはOAuth/OIDCフローをオフロードし、カスタムセキュリティコードの範囲を削減します。複数のプロバイダーが消費者のサインイン設定をサポートします。トークンストアにより、/.authエンドポイント経由で公開されるキャッシュされたトークンを使用して、ダウンストリームのAPI呼び出し(例:ロイヤルティプロファイルのマイクロサービス)が簡単になります。
- カスタムドメインとTLSを構成
- 理由:order.starbucks.comをCNAMEでバインドし、HTTPS Onlyを強制し、コンプライアンスのために最小TLS 1.2を設定します。ステージングスロットにはApp Serviceマネージド証明書を使用して管理オーバーヘッドを削減し、本番環境には企業のCAからPFXをアップロードして、ブランドと証明書ポリシーを満たします。
- Azure Storage Queueトリガーを使用したWebJobs SDKを注文処理に利用
- 理由:継続的なWebJobがメッセージ到着時に処理することで、チェックアウトとフルフィルメントを分離し、ピークを平準化します。常時接続(Always On)とプランベースのスケールアウトにより、インスタンスの追加に伴いスループットが自動的に向上します。有害キュー(poison queue)処理により、パイプラインを中断することなく不正なメッセージを分離します。
- Key Vault参照とシステム割り当てマネージドIDでアウトバウンドのシークレットを保護
- 理由:シークレットがApp Serviceの構成に保存されることはありません。IDはKey Vaultに対して最小権限アクセスを持ち、バージョンレスのシークレットURIによりシームレスなローテーションが可能になります。
- ネットワークで内部APIを保護
- 理由:内部マイクロサービスをプライベートエンドポイントの背後に配置します。パブリックなWebアプリは、VNet統合(Premium v3)を介して、セキュリティで保護されたバックエンドに呼び出しを行います。将来、より厳格な分離が必要になった場合は、Web層をILB ASEに移行して、App Serviceの機能を維持しつつ、すべてのイングレスをプライベートにします。
- カナリアリリースとスワップによるリリース戦略
- 理由:プロモーション中にライブ検証を行うため、トラフィックの5%をステージングにルーティングします。Application Insightsを介して、レイテンシー、エラーバジェット、チェックアウトのコンバージョン率を監視します。健全であればプレビュー付きスワップを実行し、問題があればキャンセルして調査し、顧客体験を維持します。
すべてのドメイン · Azure Functions とサーバーレスコンピューティング →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →