AzureにWebアプリを発行する課題

Microsoftの「初心者向けに ASP.NET Core で Web アプリをビルドする」というラーニングパスの最後の課題である「Visual Studio を使用して Azure に Web アプリを発行する」をやってみた。

Visual Studio以外に下記ワークロードをダウンロードしておく必要があった。

  • ASP.NET と Web 開発
  • Azure の開発

シナリオ

今回はスキー場勤務で、ユーザーが Web サイトや携帯電話でトレイルマップを表示したりリフト券を購入したりできる新しいアプリケーションの開発に着手しているとのことだが、ピザ屋の時と比べると、この設定はあまり関係なかった。

とは言え、チュートリアルでどういう具体例に基づいた作業なのかをイメージできる材料は必要かもしれない。

関心した点

この課題では、あまりコードを触る演習はなかった代わりに、凄く簡単にWebサービスを公開できるという体験ができた。

ただし、Microsoftのアカウントは必須で、Microsoft Learn側とVisual Studio側でログインしておく必要がある。

つまずいた点

テンプレートの配置に失敗して発行できず

learn.microsoft.com

 App Service リソースを作成するところで下記のようなエラーが出た。

(SubscriptionIsOverQuotaForSku): This region has quota of 1 instances for your subscription. Try selecting different region or SKU.

ホスティングプランのロケーションをEast USからJapan Westに変更してみたらうまくいった。

覚えておきたい点

コンピューティング

  • 共有コンピューティング(Free と Shared)
    • 自身のアプリを含む他のApp Serviceアプリと同じ Azure VM 上でアプリを実行
    • リソースはスケールアウトできない
    • Free および Shared プランは小規模な個人プロジェクトに最適なプラン
    • 24 時間ごとに 165 MB の送信データに制限
  • 専用のコンピューティング(Basic、Standard、Premium、Premium V2)
    • アプリを専用の Azure VM 上で実行
    • レベルが高いほど、スケールアウトに使用できる VM インスタンスが多くなる
    • Standard サービス プランは、商用アプリケーションを顧客に公開に最適
  • 専用 (Isolated)
    • 専用の Azure VM を専用の Azure 仮想ネットワーク上で実行
    • 最大のスケールアウト機能を提供
    • 最高レベルのセキュリティとパフォーマンスが必要な特定の要件がある場合にのみ選択

プロジェクトの構造

  • 依存関係:サードパーティ製パッケージ
  • Properties
    • Web アプリをホストしている場所についての構成データ
    • Visual Studio がファイルのアップロードに使用する Azure のアドレスなど、発行の構成情報
  • wwwroot:css、js、画像、lib ファイルなど、サイトのすべての静的資産
  • Pages
    • サイトのページ用の Razor テンプレート
      • .cshtml ファイル。これは Razor マークアップ ファイル
      • .cs ファイル。これは PageModel クラスから継承される C# コードビハインド
  • appsetting.jsonASP.NET Core 用の構成ファイル