しばやん雑記

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

Azure

Azure Data Factory を利用して Cosmos DB のコレクションをお手軽にコピーする

Azure の Cosmos DB を使っていて非常に困るのが、コレクションのパーティションキー設計を変更したい場合になった時です。パーティションキーは作成時にしか設定できず、後から変えることは不可能です。設計ミスと言われると何とも言い返せないのですが、こ…

Azure Functions で SendGrid の Dynamic Templates を使う

この間書いた SendGrid の Dynamic Templates ですが、今朝に対応した SendGrid の C# クライアントがリリースされていたので、早速 Azure Functions の SendGrid バインディングで使ってみました。Dynamic Templates 自体については前回のエントリを参照し…

Azure Functions の Key Management について調べた

Azure Functions で HTTP Trigger や Webhook を使う時に指定する API Key ですが、主に Durable Functions を使う時に悩んだのでメモとして残しておきます。Portal で適当な関数を選んで URL を取得する時に、どのキーを使うか選べます。このキーはユーザー…

Durable Functions v1.6 の Rewind API を使うと失敗した関数から再実行が可能に

Azure Functions v2 の Breaking changes に合わせて Durable Functions v1.6 がリリースされました。今回の Breaking changes は Run From Packages で配布している場合に地味に大変でしたが、その話はまた今後どこかで書こうかと思いますが需要なさそう。I…

Let's Encrypt 周りの自動化を行う Azure Functions の正式版をリリースした

前に作った Let's Encrypt の自動化を行う Azure Functions ですが、あれからもちょいちょい弄り続けた結果、先日やっと正式版を出せました。いろんなバグやよくわからない Azure REST API の仕様などを乗り越えてきました。今回の正式版リリースでは以下の…

Azure Web Apps でデフォルト以外のパフォーマンスカウンターを Application Insights に送信する

Azure App Service では実行ユーザーの権限に制限がいろいろとかかっているために、Application Insights などを使ったパフォーマンスカウンターの送信はそのままでは出来ません。しかし、App Service は環境変数を使ってパフォーマンスカウンターの値を渡し…

Web App for Containers (Linux / Windows) を ARM Template でデプロイする

絶賛プレビュー中の Web App for Containers の Windows 版を ARM Template でデプロイしようと調べていたところ、思ったより Linux 版の情報が無いことに気が付いたので一緒にまとめておきます。基本的には Windows の App Service とほぼ同じですが、追加…

Azure Functions の新しい Run-From-Zip の仕組みと活用方法

Visual Studio 2017 の 15.8 で Azure Functions の Zip Deploy と Run-From-Zip に対応したので、そろそろちゃんとブログにまとめておこうかと思いました。デプロイのタスク定義は Azure Functions の SDK に含まれているので、他のプロジェクトでは Zip De…

Azure App Service で障害が発生した場合にやること

Azure App Service は非常に便利なのですが、アプリケーションに何らかの問題があった場合には VM などと比べると調査方法が若干特殊です。今は公式の診断機能がかなり強化されていますが、逆に多すぎて困ることもあるのでまとめました。 用意されているツー…

ACR Build を使って ASP.NET アプリケーションの Docker Image をビルドする

ついに App Service での対応によって Windows Containers を利用する機運が個人的に高まってきたので、前から気になっていた ACR Build を使って ASP.NET 向けのイメージをビルドしてみました。VSTS や AppVeyor でも Docker Image を作ることは出来ますが…

Azure App Service の Windows Containers 対応が Public Preview になったので試した

前からちょいちょいと情報が出ていた Web App for Containers の Windows 対応が Public Preview としてリリースされました。これで App Service は Windows / Linux で全て出そろった形になります。基本的な情報は公式ブログと App Service Team のブログを…

Azure Functions と Application Insights を同時に ARM Template でデプロイする

今の Azure Functions は Application Insights が無いとモニタリング周りが成り立たないですが、ARM Template を使うと単独でデプロイされるので同時に Application Insights を作るようにします。Azure Functions の Consumption Plan で作る場合のサンプ…

Azure App Service 向けに Let's Encrypt 周りの自動化を行う Azure Functions を作った

タイトルの通りなんですが、App Service 向けに自動で Let's Encrypt の証明書を更新してくれる Azure Functions を作りました。Durable Functions と ACMESharp Core を使っています。とりあえずベータリリース的な感じで出してみることにしました。これま…

バックオーダーを使ってドメインを取得してみた

個人的に App Service の現時点でのランタイム情報とか、プラットフォーム依存の情報を知りたかったので App Service Info というサービスを作っていて、ドメインが欲しかったのですが既に取られていたのでバックオーダーを使った話です。2 年前から試してい…

Azure Functions v2 で .NET Core (netcoreapp2.0) が使いたい

絶賛プレビュー中の Azure Functions v2 では .NET Standard 2.0 を使って開発が出来ますが、最近は .NET Standard 2.0 では API が不足していて困るケースが出てきました。具体的には TFM として netcoreapp2.0 となる .NET Core App を使いたいわけです。…

Managed Service Identity を利用して Kudu に用意された REST API を実行してみる

あまり弄ってなかったのですが、Managed Service Identity を使うと ARM の API とかいろいろと使いやすくなって素晴らしいという話をぶちぞう RD のブログで読んでました。そういえば、ちょっと前に GA になったみたいなので安心して使えるようになりました…

Azure App Service の Outbound IP Address は Premium V2 にスケールアップすると変わる

基本的に App Service の Inbound と Outbound IP Address はスケーリングによって変化しないものだと理解していましたが、ドキュメントを読むと Outbound IP に関しては変化することがあるらしいです。以下のドキュメントに Outbound IP Address が変化する…

ASP.NET Core 2.1 の暗黙的なバージョンには注意

適当に Twitter を眺めていると、モリス先輩が ASP.NET Core Module 周りのエラーではまってそうだったので、また鰻を奢ってもらうために助けることにしました。曰く、Visual Studio のテンプレートから作成して、App Service にデプロイしただけで発生する…

Azure Storage Emulator を最新バージョンへアップデートする

最新の Azure Storage ライブラリを使って Table Storage を操作するコードを書いて実行したところ、以下のようなエラーが出て焦りました。よく読むと REST API のバージョンに Storage Emulator が対応してないのが原因らしいです。ちなみに Visual Studio …

Azure Cloud Services でも Application Insights のフル機能が使えるのか試した

最近の Application Insights は App Service で使われることしか考えられてないのでは、という感じがしていたので Cloud Services でもいろんな機能が使えるようになっているか調べました。一応 Cloud Services 向けのドキュメントが用意されています。され…

Azure SignalR Service がリリースされたのでサクッと試した

Build 2018 が始まったようですね。基本的な内容は明日の朝にブチザッキを見て確認する予定ですが、Cloud Platform Release Announcements に Azure SignalR Service という心惹かれる項目があったので、サクッと確認してみました。Azure Blog でも紹介され…

App Service が HTTP/2 に対応したので ASP.NET で試した

Windows Server 2016 へのアップグレードが行われた際に、一部のリージョンでテスト的に有効化されていた HTTP/2 がグローバルで GA になってました。例によって ASE にはまだデプロイされていないみたいですが、近いうちに対応するみたいです。HTTP/2 はデ…

Application Insights で IP が取れない件と ASP.NET Core で Telemetry Initializer を追加する方法

ASP.NET Core アプリケーションに Application Insights を追加して使ってましたが、いつからかクライアントの IP アドレスが 0.0.0.0 になってしまってました。元々最後のオクテットは 0 になってたのは知ってましたが、なんか不具合化と思ってました。軽く…

Application Insights の Snapshot Debugger を使って本番環境のデバッグを効率的に行う

仕事でも Application Insights を弄っていたのに全く知らなかった機能である Snapshot Debugger ですが、チャックさんの記事で存在を知ったのと何となく試して見たかったので検証してみることにしました。Tech Summit 2017 のチャックさんのセッションで話…

AppVeyor と CircleCI 2.0 を使って Azure Functions v2 の CI/CD を行う

GitHub を使って Azure Functions の管理をしている場合には、やはりデプロイは自動化しておきたいです。VSTS は標準で対応してるみたいですが、AppVeyor は見た記憶がないので試しました。少し試した感じでは WebDeploy Package を Azure Functions プロジ…

Azure Functions のコールドスタートを Application Insights で確認してみる

何かと(一部?で)話題になる Azure Functions のコールドスタートが非常に遅いという話ですが、App Service Team Blog にてどのような動きとなっているか解説記事が公開されていました。ぶちぞう RD のアンテナは高いので、フォローしておくと有益な情報が…

Application Insights を利用した Durable Functions の診断を試してみた

仕事でも Durable Functions を使っていますが、一般的な HttpTrigger などと異なり Durable Functions は実行される仕組みが特殊なので、Azure Functions のログだけでは分かりにくいことが多いです。なので、とりあえず Application Insights は有効にして…

Azure Functions v2 でアプリケーション設定と接続文字列を読み込む

.NET Framework 版では ConfigurationManager を使っておけば、アプリケーション設定と接続文字列を App Service がいい感じに環境変数からオーバーライドしてくれましたが、.NET Core 版の Azure Functions を使っている場合はクラスが無いので調べました。…

Durable Functions を使って時間のかかる処理を非同期で行う

前回は Durable Functions について大雑把に試したりしていましたが、ちょうど今仕事で Durable Functions を適用するのにちょうどよいタスクがあったので、実際に使ってみることにしました。内容はタイトルの通りです。Durable Functions については前回の…

今更ながら Azure Functions の Durable Functions を試した

前から Durable Functions が面白そうだと思いつつ、Visual Studio 2017 15.5 が必要とかで中々試していなかったのですが、少し時間があったので一通り調べて動かしてみました。当然ながら全ては .NET Core の v2 ランタイム向けで試してあります。まずはド…