しばやん雑記

ASP.NET Core とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure

Azure App Service への Key Vault 証明書のインポートがお手軽になった

以前は ARM REST API を直接叩く必要のあった App Service への Key Vault 証明書のインポートですが、いつの間にか Azure Portal から行えるようになっていました。Azure Portal から SSL settings を開くと、Key Vault 向けに新しくボタンが追加されていま…

Azure Functions v2 の Dependency Injection を使って設定値を上手く扱いたい

Build 2019 に合わせて Azure Functions v2 で Dependency Injection が正式にサポートされましたね。これまでも static を外して WebJobsStartup を書けば使えていましたが、DI 向けに整理されました。ドキュメントがあるのでそっちを読んでおいてください…

Azure App Configuration の Feature Management が便利そうだったので試した

恐らく Build 2019 に合わせたと思ってますが、Azure App Configuration がアップデートされて Feature Management という新しい機能が追加されています。公式にも A/B テストとか、新しい機能の段階的なリリースにも使えると紹介されています。App Service …

Application Gateway v2 が GA したので気になった機能を試す

既に Application Gateway v2 は GA してると思ってましたが、実はプレビューだったようです。プロビジョニングや設定変更は圧倒的に早くなってますし、機能的にも v2 のが優れているので、もう v1 を使うメリットはほぼ無いでしょう。価格は v1 と v2 で大…

Azure App Service の VNET Service Endpoint がプレビューに

Azure Storage や SQL Database で使えるようになっている Service Endpoint が App Service でも使えるようになりました。現在はパブリックプレビューなので、自由に試すことが出来ます。中の人が書いているように、アプリの前に Application Gateway など…

Azure Container Instances が Windows Server 2019 に対応

久し振りに Azure Container Instances のキャッシュ済みイメージを取得する API を叩いてみたら、Nano Server 1809 のイメージがキャッシュされてることに気が付きました。OS Version を見ても分かるように Windows Server 2019 としてリリースされたもので…

Application Gateway v2 の Key Vault 連携を試してみた

去年から Application Gateway の v2 SKU で Key Vault 連携が行われるという話が出たっきり音沙汰無しだったのですが、最近になって PowerShell で Key Vault 連携を行うドキュメントが公開されていました。現在は PowerShell か ARM の API を直接叩くぐら…

Azure Pipelines を使って Web App for Containers (Windows) への自動デプロイを行う

Azure Pipelines にも Windows Server 2019 の Hosted Agent が追加されているので、これまでも ltsc2019 向けの Docker Image はビルド出来ていました。現状の Agent Image には多少の問題*1はありますが、ビルドには問題ありません。最近は .NET Framework…

Azure Front Door を実運用する際に必要そうな設定を試した

最近は急激に Azure Front Door への興味が湧いてきたので一気に調べました。思っていたよりも長くなったので久し振りに目次記法を使いました。このくらいの内容を抑えておけば、実運用で大体は困らないのではないかと思います。 カスタムドメインと HTTPS …

Azure DNS の Alias record set を CLI で管理する

色々調べても Azure CLI を使って Alias record set を作成する方法が見当たらなかったので、リファレンスを読んで実際に試しました。普段なら Azure Portal での方法と CLI でのサンプルコマンドが載ってるはずですが、ドキュメントは何故か Azure Portal …

Azure DNS の Alias record set を使って Azure CDN に Zone Apex なドメインを割り当てる

最近は Alias record 周りを触ってなかったので気が付かなかったのですが、ちょっと前から Traffic Manager と Public IP Address だけではなく Azure CDN にも Alias record を作れるようになっていたようです。軽く調べた感じ公式リリースは見当たらなかっ…

Application Insights に送信される HTTP テレメトリに詳細な情報を付けたい

Application Insights をインストールしておけば、HTTP や SQL などの外部リソースへのアクセスを追跡してくれますが、HTTP の場合は URL とステータスコードぐらいしか情報がないので微妙な時があります。HTTP レスポンスヘッダーに情報が入ってることが多…

Azure Functions の Premium Plan が Public Preview に

去年から Private Preview になっていた Azure Functions の Premium Plan が Public Preview に移行しました。ベースとなっている Premium V2 とはスケーリングの仕組みと課金体系が異なっているので、Consumption だとパフォーマンス不足なので App Servic…

新しい Azure Service Bus for .NET を使う際はコネクションの管理に注意

現時点で Service Bus for .NET クライアントは以下の 2 つが存在します。片方は昔からある .NET Framework 専用のクライアント、もう片方は .NET Standard 2.0 に対応した新しいクライアントです。新しいクライアントは AMQP がデフォルトで使われているの…

Durable Functions のエラーハンドリングと向き合う

Durable Functions は async / await で複雑なフローを簡単に書けるので便利ですが、エラーハンドリング周りに少し癖があるので基本的な処理方法をまとめておきます。ドキュメントはありますが、基本的すぎることしか書いてないです。以下の内容は Durable F…

Azure App Configuration を一通り試したのでメモ

今朝出てきた Azure の新しいアプリケーション向けサービスの Azure App Configuration が、今持ってる課題をいい感じに解決してくれそうなので、プレビューのうちに一通り触っておきました。普通は ASP.NET Core の Configuration Provider や ASP.NET の C…

Azure Service Bus のスループットとクォーターを確認した

久し振りに Service Bus について調べる機会があったので、適当にコードを書いてどのくらいのスループットが出るのかと、クォーターで引っかかった後にどうなるかなど、気になっていた挙動も調べました。Service Bus は Premium で試しています。Standard で…

そろそろ Azure Cloud Services の移行先についてひとこと言っておくか

最近はまあまあ Cloud Services (Web Role / Worker Role) からの移行という話を聞くようになってきましたが、大体のケースで Service Fabric への移行を勧められているようです。正直言ってこの提案は全くの見当外れであるケースが大半でしょう。何故なら現…

Web App for Containers と ACR Tasks が Windows Server 2019 にアップデートされていた

久し振りに Web App for Containers (Windows) を作成してみたら、ホスト OS が Windows Server 2019 にアップデートされてることに気が付きました。正式リリースではないですがアップデートはほぼ確実でしょう。これで大幅にサイズが削減された Docker Imag…

Azure CLI と Key Vault を使って自己署名証明書を作成する

たまに検証とかで必要になるので自己署名証明書を作ることがあるのですが、コマンドを毎回覚えていられないので最近は Azure Key Vault で作ってしまうことが多いです。Azure Portal から作るのは少し面倒なのと、内部で使われている API バージョンが古くて…

Durable Functions のオーケストレーターが失敗したことをキャッチしたい

Durable Functions ではアクティビティが失敗した場合にはオーケストレーターで例外が投げられるので、try ~ catch を使って簡単にハンドリングしたり、アクティビティの実行に CallActivityWithRetryAsync を使えばいい感じにリトライもしてくれます。以下…

Azure SignalR Service の Service Mode 設定による違い

Azure SignalR Service を仕事で少し使ったときに、設定が増えていることに気が付いたので調べたのですが、中の人に聞くまで情報がほぼ無かったのでメモとして残します。そして Serverless mode がかなり良かったので、それの紹介も簡単にですがします。チャ…

Azure Functions v2 でインスタンスメソッドも Function として利用可能に

先週リリースされた Azure Functions Runtime 2.0.12265 からは、インスタンスメソッドでも Function として扱われるようになりました。これまでは静的メソッドしか使えなかったので、モックしにくいとかいろいろ言われていたと記憶しています。リリースノー…

新しい Azure App Service の VNET Integration を試した

App Service の VNET Integration は Gateway が必要となる Point to Site VPN を使っていましたが、去年にプレビュー公開された新しい VNET Integration は Gateway 無しで VNET に参加できるようになってます。新しい VNET Integration については公式ブロ…

Azure Functions Proxies で実現出来ること

前にハッカソンを行った時に Azure Functions Proxies 周りの挙動が気になったので、一通り確認して気になったことを軽くメモとして残します。まずは公式ドキュメントと牛尾さんの Qiita を読めば大体は理解できるはずです。Azure Functions Proxies は名前…

Azure Functions でも HttpTrigger でモデルバインディングを使って楽をしたい

ASP.NET Core MVC だと普通に使っているモデルバインディングですが、Azure Functions の HttpTrigger でも近い形で使えるようになってます。テンプレートでは HttpRequest から自前でパースしてますが、ランタイムに任せることが出来ます。使い方は Core MV…

Azure App Service 上での ASP.NET Core 2.2 のパフォーマンス

ASP.NET Core 2.2 と同時にリリースされた ANCM v2 が +400% パフォーマンス改善したと書かれていたので、実際どのくらいまで頑張れるのか調べたくなりました。ブログにあった +400% という数値は恐らく物理マシンを使っているので、実際に Azure 上の一般的…

Azure App Service で ASP.NET Core 2.2 と ANCM v2 が使えるようになった

.NET Core 2.2 リリース時には 12 月末までの対応が宣言されていた Azure App Service での .NET Core 2.2 対応ですが、全リージョンへのデプロイが完了したようです。デプロイのタイミングによっては .NET Core 2.2 はインストールされていても、ASP.NET Co…

Azure Key Vault を使って App Service の証明書を管理する

今や必須となっている https 対応のために App Service に SSL 証明書をバインドする場合、ほとんどの場合は PFX を作成してアップロードしていると思いますが、割とこの辺りの手順は面倒ですよね。アップロードしたはずの証明書が思ったように出てこない場…

あえて Durable Functions でオーケストレーターの完了まで待つ Web API を作る

通常 HttpTrigger で起動する Durable Functions を作成すると CreateCheckStatusResponse を使って、インスタンス管理用のエンドポイントを含んだレスポンスを返すと思います。テンプレートから作成したコードも以下のようになっているはずです。 [Function…