しばやん雑記

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

Azure

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 ランタイム向けで試してあります。まずはド…

Azure VM のセルフサービスメンテナンスを実施してみた

2018 年になってすぐに Azure のプラットフォーム側のアップデートという非常に大きなイベントがあります。ホスト OS が Windows Server 2016 ベースになるという話だったので期待してました。日本語の公式ブログで翻訳が公開されているので、まずは読んでお…

ASP.NET Core で Azure AD B2C を使った際に謎のエラーが多発する問題

ASP.NET Core の OpenID Connect Middleware を使って Azure AD B2C なログインを GitHub で公開されているサンプルとほぼ同じように実装したら、よくわからないエラーが多発して困ったという話です。実際に Application Insights からデータを引っ張ってき…

App Service の Japan East / West にも Windows Server 2016 がデプロイされていました

手持ちの App Service を確認したところ、初期に Japan East に作成した App Service が Windows Server 2016 にアップグレードされていました。数日前に Japan West にはデプロイされていたので、Japan East でも開始されたみたいです。ちゃんと Windows Se…

Azure Functions Runtime を Intel NUC にインストールした

自宅で Windows Server 2016 用として動かしていた Intel NUC を流用して、Windows 10 Pro をインストールし直し Azure Functions Runtime の環境に作り変えました。Windows Server 2016 より Windows 10 Pro の方が FCU が扱いやすいので、個人的にお勧めし…

Cosmos DB の SQL クエリパフォーマンスを調査する

仕事で Cosmos DB を使っていますが、最近は RU の消費が気になってきて、実際に投げたクエリがどのように実行されているのか知りたくなったので、例によっておーみさんに聞きました。実行計画とはいかなくとも、非常に参考になるメトリックを返してくれるよ…

Windows Server 2016 になった Azure App Service を試す

GitHub の Issue を眺めていたら、West Central US の App Service には Windows Server 2016 をデプロイしたと書いてあったので、早速新しく Web App をデプロイして試していました。中の人曰く、West Central US をテストの場として使っているみたいです。…

Azure App Service が Windows Server 2016 に段階的にアップグレードされます

12/4 から App Service のホスト OS が Windows Server 2012 R2 から Windows Server 2016 へアップグレードされているらしいです。とはいえ非常にゆっくりロールアウトするらしいので、実際に 2016 なスケールユニットが使えるようになっているかはわかりま…

Azure Functions and Web Jobs Tools のアップデートが失敗するのを直した

Visual Studio 2017 の 15.5 が出たので、やっと Azure Functions の新しいツールがインストール出来ると楽しみにしてましたが、無情にも謎のエラーが出てアップデートできませんでした。インストールの途中ぐらいで以下の画像のようなエラーが出てしまいま…

Premium V2 が選べない App Service Plan が存在する

タイトルの通りですが、大昔に作った Japan East の App Service Plan を何となくスケールさせようかとしたら、Premium V2 がグレーアウトして選べなくなっていました。Premium V2 について知りたい方は、Public Preview の時に書いたエントリがあるので、こ…

Application Insights に Cosmos DB で消費された RUs を送信すると非常に捗った話

仕事で Cosmos DB を使ってアプリケーションを書きましたが、最近はあらかじめ割り当てておいた RU を突き抜けることがあって原因の調査を行っていました。その時に Cosmos DB のメトリックだけではコレクション別でしか RU を確認出来ず、Application Insig…

Azure AD B2C を ASP.NET Core で使うと頻繁にログアウトするのを直す

Azure AD B2C を使ってログイン処理を実装した ASP.NET Core なアプリケーションが、何故か頻繁にログアウトしてしまうので調べてました。これもまた地味にはまったポイントです。とりあえず OpenIdConnect な Middleware のコードを読んで調べました。AAD B…

Azure Container Services (AKS) のデプロイで苦労した話

ここ数日は AKS のクラスター作成と戦っていたので、ARM ベースでいろいろと調べていました。例によって忘れそうなので、ちゃんとメモしておくことにします。AKS の最新情報を知りたければ、GitHub を追っかけておけば OK です。ちなみに以下のエントリで使…

AKS を使って Windows Containers 対応の Kubernetes クラスターを作成する

既にいろんな人が AKS を触っているみたいですが、個人的には Windows や ACI と組み合わせて使いたかったので、まずは Windows 向けクラスターが作成できるのか確認しました。ACS Engine を使って作成していたクラスターの管理が面倒だったので、これを機に…

Cosmos DB では Repository パターンを使うのが楽だった話

Cosmos DB の API は地味にくせがあるというか、コレクション毎の違いは UriFactory のパラメータ以外あまりなくて、大体は同じような処理を書く感じだったので Repository を用意して共通化しました。勿論これが正解とか言うわけではなく、あくまでも一例と…

App Service on Linux を本番環境で運用する際の注意点

最近は App Service on Linux を使った仕事もしていたので、本番環境で使う場合の注意点を簡単にまとめておきます。地味にはまるポイントが多くて忘れそうなので、ほぼ自分用のメモですね。 2 コア以上のインスタンスを選ぶ 1 core 1.75GB の B1 / S1 インス…

Visual Studio Team Services と Web App for Container を使用した ASP.NET Core アプリケーションの CI/CD

最近は仕事で Visual Studio Team Services と Web App for Container を使っていましたが、地味にデプロイ周りで苦労をしたので軽くまとめておきます。デプロイだけでは面白くないので、ASP.NET Core アプリケーションのビルドから行ってみます。Web App fo…

Cosmos DB を利用する上で最初にはまった部分のメモ

Twitter でおーみさんに Cosmos DB についていろいろ聞いたので、忘れないようにメモっておきます。kyrt.in に書いてあればみんな幸せになりそうなんですが、いつ書いてくれるかわからないので。 HTTP GW ではなく TCP Direct を使う デフォルト設定のまま C…

App Service on Linux と Azure Container Registry を使ったデプロイを試したら罠が多かった話

App Service on Linux が GA する少し前に Azure Container Registry を使った自動デプロイが、Azure Portal から簡単に設定できるようになったとブログに上がってました。Azure Portal から Continuous Deployment を On にすると Webhook の設定をしてくれ…