しばやん雑記

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

Azure

Azure Resource の Tags を使って Service Discovery を実現するライブラリを作った

こないだ Azure App Service / Functions 向けに App Configuration を使ったシンプルな Service Discovery を作ってみたのですが、 Azure Resource は全て Azure Resource Manager の API を使えば探せます。そして各 Resource にはタグを設定できるので、…

Azure Resources に対して Kusto を使ってクエリが書ける Resource Graph で遊んだ

Azure にデプロイ済みのリソースをいい感じにクエリしたかったので、その辺りについてぶちぞう RD に聞いたら Resource Graph を使えと言われたので色々触って遊んでみました。割と前からあるサービスでした。ドキュメントを読む限りでは、Azure Resource Ma…

Azure App Service 向けに簡単な Service Discovery を提供するライブラリを作った

Azure App Service や Azure Functions でアプリケーションを書いている時に、別でホストされている API を叩きたい時にはデプロイされた環境単位で向き先を変える必要がありますが、大抵のケースでは App Settings に入れることになるので設定が面倒になっ…

Azure Functions v2 の Graceful Shutdown の挙動を試した

これまで Azure Functions では再起動やデプロイなどでホストが再起動されるタイミングを正しく検知できず、Function App が処理を実行中でも強制的にシャットダウンされていましたが、最近にリリースされたバージョンでシャットダウンの検知が出来るように…

Azure Web Apps に VuePress / Hugo を簡単にデプロイ出来るテンプレートを作った

深夜に Twitter で駄弁ってる時に「App Service に用意された仕組みを使えば、いい感じに静的サイトジェネレータを使ったサイトのビルドが行えるのでは?」と思ったので 1 日かけて作ってみました。Firebase Hosting や Netlify と比べると App Service は設…

Azure Pipelines で VuePress のビルドとデプロイを自動化する

これまで Grav を使って shibayan.jp にペライチのコンテンツを配置していたのですが、メンテナンスが面倒だったりパフォーマンスに問題があったので移行を考えていました。そして今日もアップデートが失敗して Composer からやり直しになった結果、三宅さん…

ASP.NET Core アプリケーションにも Azure Pipelines でバージョンを付ける

.NET Core から AssemblyInfo.cs に書いていたバージョンなどを、MSBuild を使ってビルド時に自動生成されるようになったので、簡単にアセンブリのバージョンを CI で埋め込めるようになりました。NuGet 向けでは普通にビルド時にバージョンを付けてきました…

Azure Pipelines で NuGet パッケージのデプロイを自動化

AppVeyor から Azure Pipelines への移行を見越しつつも、ちゃんと NuGet パッケージの発行周りを検証していなかったので Build と Release のパイプラインを組みました。AppVeyor での自動化については前回書いたエントリを参照してください。やっているこ…

Durable Functions の Activity を安全に呼び出すためのプロキシを作った

Durable Functions が相変わらず凄く便利なので、いろんな部分で使っています。しかしヘビーに使うにつれて、アクティビティ関数を呼び出す部分で事故ったり、非常に冗長だと感じるようになってきました。新しい Function をテンプレートから作成すると、以…

Azure Functions Consumption と SQL Database Serverless の組み合わせは相性が良い

プレビュー中の SQL Database Serverless は設定した時間アイドルが続くと、自動的に停止するように構成できます。Serverless Tier の説明はドキュメントや SE の雑記を見てください。アイドルが続くと停止してしまいますが、新しく接続したタイミングで復帰…

Durable Functions v2 で追加される Durable Entities を実際に動かして学んでみた

Build 合わせでリリースされた Durable Functions v2 ですが、Typed Invocation が入ったバージョンを待ってたら 1 ヵ月が過ぎようとしてたので、諦めて現行バージョンで Durable Entities を学ぶことにしました。ちなみに Durable Entities 以外に Storage …

Azure Functions 向けに App Center Push を簡単に扱える拡張を作った

de:code 2019 の準備からの逃避として App Center Push を扱う Azure Functions 向けの拡張を書きました。単に IAsyncCollector<T> を提供して、REST API を呼ぶだけの簡単な実装です。SignalR Service の実装を調べながら作ったので構造はほぼ同じです。Azure </t>…

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 への移行を勧められているようです。正直言ってこの提案は全くの見当外れであるケースが大半でしょう。何故なら現…