巷で話題の.NET Core 3.0
そんな.NET Coreでできることの1つにBlazorがある
ローカルではここ↓からDLして実行できるけど
Azure上で動かすにはどうすりゃええんやと思った備忘録です
使用サービスはApp Serviceです。Dockerになると有料*1になるので今回は扱わないです。
また趣味なのでプランはFreeプランです。
当記事はCore3がリリースされたりBlazorがGAしたら不要になることを祈る
やーっていくぞ!
手順を3行で
- Blazorアプリをデバック実行できるようにしておく
- App Serviceでデプロイ先のサービスを作る
- デプロイ
以上。私は2番目でちと積んだのでそこを残していくぜ
前提というか今回の環境やら条件やら
- Visual Studio 2019 Community Preview
- .NET Core SDK 3.0.100-preview5-011568の64bit版
- Azure App Service Freeプラン(開発用なので)
Blazorアプリをデバック実行できるようにしておく
これを見てやればいける↓
1つ注意点としては、勘違いしてビット環境が36と64しくじったらプロジェクト作成したらビルドエラーで死ぬところ。
エラー文もいまいちイケてないので、勘違いしてしまうと積む可能性があるので注意
ちなみに私はやらかしてこんなエラーでたので、同じようなエラー出してしまった人は環境とインストーラーをみてみるといいかも
エラー rzc generate exited with code -2147450730.
そんな感じで無事に実行したら、Azureのポータルにログインしておく
App Serviceでデプロイ先のサービスを作る
まずは呼吸をするようにApp Serviceを作成
今回合同誌関係のサービス作りの為、命名が合同誌関係なのは気にするな!
で、赤線で強調してる項目について
ランタイムスタック
ここ、デプロイするアプリのランタイムは何なん?ということなのですが(恐らく)
今日時点ではAzure App ServiceはまだCore2.2しか対応してないという(当たり前)
現在、BlazorはCore 3で動くので…
ここをどうにか3.0プレビューにしたいよね*2。というのが1つの目的です
その他の項目の確認
- 場所は今住んでる場所で決めていいんじゃないかな。データセンターの場所らしい
- SKU とサイズは容量と課金。お金かけたくないのでFree F1プランを選択。あざとい仕様なので、いろんな項目変えると課金プランに変わる可能性出るので注意。
そんなサービスを作成していくぞ!
[確認と作成]をポチって確認後に作成だ!
App ServiceにCore 3.0を入れる
ぶっちゃけここ↓に載ってるけど、順を追って解説するずぇ
先程作成したApp Serviceを選択して、各項目メニューを下スクロールすると[開発ツール]ー[拡張機能]があるので選択
そすると拡張機能がなにもないので、そこにCore 3.0を入れる。なので画像の赤矢印の先にある追加を選択
拡張機能の追加でASP.NET Core 3.0 (x86) Runtimeを選択して、規約に同意して追加する
…ん?なぜ32bit版を選ぶのかって?
Freeプランが32bitになるからさ!
本当に32bitなのか見てみよう
作ったサービスの詳細は先程のサービス毎のメニューから確認できる
[設定]-[構成]のGeneral settingからサービスの仕様のようなのが確認できたり設定できる
マウスオーバーするとわかるけど、Freeプランは32ビット固定になる。ここでまたビットの差分みたいなのが出て503エラーとか泣くしかないので注意しような
これでApp Service側の準備は完了のはずだ!
デプロイ
ここからはVisual Studio2019での作業だ
デプロイしたBlazorのソリューションを開いて、ソリューションエクスプローラーからプロジェクトを右クリックして発行
または
上のメニューから[ビルド]ー[○○の発行]を選択して発行画面を開く
発行画面を出して、開始ボタンを押下すると、発行先画面が出てくる。そこでApp Serviceからの既存のものを選択して右下の発行ボタンを押下(まだ発行されないよ!)
次画面でさっきつくったサービスを選択して、右下のOKボタンを押下する!
そうすると、警告が出てくる
そう、発行になるのだ…orz
警告画面はど正論してくるけど、ガン無視して続行をポチる。
そう俺たちはさっき3.0入れたやん。そう信じて。
ガン無視してデプロイした結果、エラーで死ぬ。恐らく503エラーとかで死ぬ。
しょうがない。だってビット差分でエラーが出てるもの。
なのでデプロイ設定を変更します
デプロイ後の発行画面はこのようになってるはず
ここから編集のリンクをポチる
さっきの発行したときの接続設定が出てくるので、[設定]を選択
そうすると、ターゲットランタイムのデフォルト値がポータルとなってるのでそこをwin-x86に変えてあげる
ここで差分が出来てエラーで死んでいたのですね
変更して、保存して、再発行してあげましょう。
すると無事にデプロイされ、画面が出てきます。お疲れ様でした
だいたいbit周りの設定差分でコケる
開発は64bitでフリープランでは32bitになる*3ので要注意
ココらへん、ちょっと気付きにくい点なので残しました
これでお金をかけずにAzure上でBlazorが試せるので、Blazor手軽に試したいなぁという方は是非Azureの無料枠で楽しんでほしい…!