しばやん雑記

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

Azure

Azure Pipelines を利用した App Service へのアプリケーションデプロイ戦略

Azure App Service を使っている場合のアプリケーションデプロイ方法をいろいろと極めておきたいと思ったので、実際に考え付いたデプロイ方法を Azure Pipelines を使って実装してみました。最適な定義になっているかは分からないですし、Azure Pipelines 側…

Azure Pipelines で利用できる Agentless jobs を一通り試した

Classic Pipelines では GUI で Agentless jobs を選べたようですが、YAML ではそういった専用の Job はなく、使いたかった Delay などの Task を選ぶとエラーが出るという状態だったので、一通り調べて試しました。Agentless jobs と言いますが、YAML では …

Azure Pipelines の Hosted Agent が持っている Outbound IP アドレスを知りたい

Azure Pipelines を使って API を呼び出す時に、たまに Outbound IP アドレスが欲しくなる時があります。今回は Firewall でアクセス元が制限されている Azure Storage への操作の時に欲しくなりました。具体的には Azure CDN からのリクエストは許可したい…

Terraform の Multiple Provider を利用して複数の Azure Subscription に対する構築を行う

Azure の Subscription は割と気軽に作れるので、メータリングを分ける目的などで Subscription を複数使っているケースもあると思います。そういった時には Multiple Provider を使うといい感じに解決できます。公式のサンプルだと AWS のリージョン毎に Pr…

Azure Pipelines の Self-hosted agent を簡単に作ってみた

これまで Azure Pipelines は Microsoft-hosted agents しか使ってこなかったのですが、何となく Self-hosted agents を作って試しておきたくなったので Azure VM を使って作ってみました。ドキュメントは OS 毎に用意されていますが、今回は Windows で試し…

Terraform Provider for Azure v2.3.0 で Service Tags の Data Source が追加されたので試した

今日 Azure Resource Manager 向けの Terraform Provider の新バージョンがリリースされていたので、リリースノートを眺めていたら Service Tags を取るための Data Source が追加されていました。Service Tags を取るには巨大な JSON を読み取るしかないと…

Azure Functions SDK 3.0.4 以降を使う場合は依存関係に注意

今月頭にリリースされた Azure Functions SDK 3.0.4 では Function Runtime が持っているアセンブリを、Function のデプロイパッケージから除外するという実装が追加されています。ASP.NET Core 周りの明らかに必要ないだろうというアセンブリがごっそり除外…

Azure App Service の Private Link サポートを一通り試した

ちょっと前に SQL Database や Cosmos DB などの Private Link サポートが一気に GA になったタイミングで、新たに App Service の Private Link サポートが Preview になりました。発表の数日前から App Service の Networking 設定に Private Link が増え…

Azure Functions v3 で快適に REST API を書くためのライブラリを公開した

前にサンプルコード的に書いた REST API を作りやすくするコードを、ちゃんとライブラリとして切り出して NuGet で公開するようにしました。使い方とかは前回と変わっていないので、新規追加した点についてだけ書きます。リポジトリは前回と同じなので、興味…

Terraform Provider for Azure を 2.0 へアップグレードする

少し前に Terraform Provider for Azure を 2.0 へアップグレードしようとして、軽い気持ちでバージョンを上げたらいきなりエラーが出たり、terraform plan で予期しない変更が大量に出て心が折れました。即オチ 2 コマみたいなツイートをしてしまうぐらいで…

App Center と Azure Pipelines を利用した WPF (.NET Core) アプリケーション開発の効率化

App Center SDK 3.0.0 で WPF (.NET Core) に正式対応したのと、ずっと SR を投げていた Azure Pipelines の問題が解消されたので、この二つを使って WPF アプリケーションのビルドを自動化しました。例によって対象の WPF アプリケーションは WinQuickLook …

Durable Functions を使って実行時間が長い処理の進捗をクライアントに返す

既に何回も書いていますが Durable Functions は非常に便利で、並列処理や時間のかかる処理をスケーラブルかつ高い信頼性を保ったまま実行できます。並列処理の場合は全体として処理時間は短くなる傾向にあるのでまだ良いのですが、時間のかかる処理を書いた…

Azure App Service の使い方が変わる Regional VNET Integration が GA に

プレビュー公開されてから 1 年近くが経過して、ようやく App Service の Regional VNET Integration が GA されました。ただし GA は Windows のみとなっているので Linux は未だプレビューのままです。以前からドキュメントには Windows の Regional VNET …

App Service と ASP.NET Core で Application Insights を有効化する方法を整理する

Azure App Service に ASP.NET Core アプリケーションをデプロイする時には、必ず Application Insights を同時に有効化するようにしていますが、有効化の方法として 2 種類が存在しているので軽くまとめておきます。自分でもこのあたりは割と混乱していたの…

Azure Functions v3 向けに REST API を作りやすくするサンプルコードを書いた

最近は Azure Functions でサクッと HttpTrigger を使って REST API を書くことが多いですが、ASP.NET Core のように API 実装に必要な機能が揃っていないので、毎回同じようなコードを書いて対応してました。具体的にはリクエストをモデルにバインドする部…

Azure App Service (Windows / Linux) に Java アプリケーションをデプロイして動かす簡単な方法

最近 Spring Boot なアプリケーションを Azure App Service にデプロイしてみたら、いつの間にかに Java アプリケーションを動かすのがかなり簡単になっていたのでメモとして残しておきます。今回は Docker Image ではなく JAR をデプロイする方法を使います…

Terraform と Azure Pipelines を使って複数の環境を管理する

以前に Terraform と Azure Pipelines を使ってシンプルに App Service を作るのを試しましたが、現実的にはあんな単純な定義で済むはずはなく、開発環境や本番環境といった複数の環境への対応が必要になってきます。実際に Terraform でインフラ周りの管理…

Azure Pipelines の Azure Resource Manager 接続は 2 年で期限が切れるので注意

Azure App Service や Azure Functions に対してデプロイする場合には、必ず Service connections に Azure Resource Manager を追加していると思います。その際は大体が Azure Pipelines から Service Principal を自動生成していると思います。ここから Se…

後悔しないための Azure App Service 設計パターン (2020 年版)

Azure App Service (Web Apps) がリリースされて 6 年、情報のアップデートを行いつつ気になった情報は適当にブログに書くという日々ですが、Regional VNET Integration や Service Endpoins が使えるようになって設計に大きな変化が出るようになったのでま…

API Management にカスタムドメインと SSL/TLS 証明書を追加してみた

これまでに API Management をちゃんと弄ったことがなかったのと、運用するとなるとカスタムドメインと証明書設定は必須になるので絞って確認してみました。カスタムドメインは Azure の場合、確認用の CNAME / TXT レコードを作成する必要があることが多い…

Azure Pipelines に追加された特定の Service Connection で承認を必須にする機能が便利

Azure DevOps の Sprint 158 Update で紹介されていた割に全然公開されていなかった Service Connection に対する承認機能が、最近になって自分のテナントでも使えるようになってました。Sprint 158 Update は 9 月なので内容を既に忘れている人も居そうです…

Deno を Azure App Service (Windows / IIS) で動かしてみた

Twitter で記事が流れてきたり、通知が飛んできたので Deno というランタイムを知ったわけですが、どうやらそのままだと Windows の App Service 上では動かなかったらしいです。App Service はサンドボックス環境で動くので多少制限が厳しいですが、エラー…

Azure Cosmos DB v3 SDK の Bulk Support がとても使い勝手が良かった

少し前にリリースされた Azure Cosmos DB v3 SDK の Bulk Support を試そうと思いつつ放置してたのですが、仕事で割と良い感じのお題が降ってきたのでこれを機に試してみました。開発チームの人がブログで色々と紹介してくれているので、一通り目を通してお…

Azure App Service の .NET Core 3.1 対応と Azure Functions v3 が Go Live リリース

.NET Core 2.2 と 3.0 の EOL が近づいてきていますが、App Service と Azure Functions は無事に年内に LTS となる .NET Core 3.1 への対応が完了しました。特に 2.2 の EOL は今年中なので、サクッと .NET Core 3.1 へのアップデートを行っておくと良いで…

Azure Functions v3 で .NET Core 3.1 が利用可能になった

Ignite 2019 のタイミングで Azure Functions v3 のプレビューが正式に公開されましたが、Azure Functions SDK 側の問題で .NET Standard 2.1 ターゲットのライブラリ*1が使えなかったので弄って来ませんでした。その後 Runtime も一時的に非公開になりまし…

Azure Functions と Append Blob の組み合わせは相性が良かった話

ここ最近は Azure Functions と Append Blob を組み合わせて、非常に便利かつスケーラブルな処理をシンプルなコードで書くことが多かったので紹介します。割と地味な立ち位置の Append Blob ですが、Serverless や Event-driven なコードとの相性が良かった…

Ignite 2019 で発表された Azure App Service のアップデート

Surface Pro X を買うためにハワイに行ってたのでキャッチアップが遅れましたが、個人的な興味を持っている App Service 周りに関して Ignite 2019 での発表を軽くまとめました。App Service Team のブログに関連するセッションリストが載っているので楽です…

無料で SSL/TLS 証明書が発行できる App Service Managed Certificate がプレビューに

待望の App Service 向けに無料 SSL/TLS 証明書が発行できる App Service Managed Certificate がプレビューとして公開されました。既存の App Service Certificate とは全くの別物です。Azure Updates やドキュメントにあるように、あらかじめカスタムドメ…

Azure App Service の Clone App 機能が Standard でも使えるようになっていた

これまでは App Service の Premium 以上でしか使えなかった Clone App 機能が、いつの間にかに Standard でも使えるようになっていました。ドキュメントの履歴を見る限りでは 6 月ぐらいには Standard でも解放されていたようですが、アナウンスはされてな…

ARM Template を使って Azure Web Apps / Azure Functions の作成と同時に Zip Deploy まで行う

昔から ARM Template では Web Deploy を使ったトラディショナルなデプロイに対応していましたが、ちょっと前に Windows の Web Apps と Azure Functions では Zip Deploy が使えるようになっていたようです。ちなみに Web Deploy を使ったデプロイは、昔か…