Microsoft Azure

WCF でテレメトリを Azure Application Insights に送信する

Microsoft Azure の仮想マシンで動かしている WCF サービスでも、テレメトリを Azure Application Insights に送りたくて、方法を調べたら次のがヒットした。 github.com ただ、こいつは正式リリースされてないし、そもそも開発終わってだいぶ経過してる。WC…

Azure SQL Database の CREATE DATABASE AS COPY OF の罠

Azure SQL Database で使える CREATE DATABASE AS COPY OF は、裏で geo レプリケーションが行われている。その geo レプリケーションが完了する前に、ソースのデータベースをリネームしようとすると、下記の例外が発生する。 The operation cannot be perfo…

ElasticPool に属するデータベースの一覧を取得する SQL

sys.database_servic_objectives という、Azure SQL Database (の SQL Server)にあるシステムビューを見れば分かる。後は sys.databases と JOIN すれば OK。 SELECT * FROM sys.databases AS d INNER JOIN sys.database_servic_objectives AS o ON d.databa…

Durable Functions で一定時間待機して続きを実行

Durable Functions では、IDurableOrchestrationContext .CreateTimer を使うことで、関数の実行中に任意の時間待機できる。 docs.microsoft.com 大人の事情により、処理の途中で 2 時間待機する必要があったけど、Durable Functions のおかげでシンプルに実…

Next.js で作成した静的サイトを Azure App Service の Web Apps でホストする場合カスタム Web.config が要るかもしれない件

Next.js で作成した静的サイトを Azure App Service の Web Apps でホストしている。Static Web Apps でないのは、ZipDeploy できなかったから。本業では GitHub や Azure DevOps が使えないので…。 Web Apps で素直にホストした場合、トップページからリン…

Terraform で Azure の内部ロードバランサーを作成する方法

frontend_ip_configuration で public_ip_address_id を設定しなかったら、内部ロードバランサーになった。 resource "azurerm_resource_group" "example" { name = "rg-example" location = "japaneast" } resource "azurerm_virtual_network" "example" { …

CustomScriptExtension の commandToExecute で複数のコマンドを実行したメモ

CustomScriptExtension を使ってタイムゾーンを変更しても、既に実行中の Windows サービスには反映されなかった。反映するには Windows サービスの再起動が必要とはね。 commandToExec で powershell.exe を使い、-Command に複数コマンドを指定するハック…

Terraform で仮想マシンスケールセットのインスタンスのタイムゾーンを変更する方法

仮想マシンスケールセットのインスタンスのタイムゾーンを日本時間に変更したいのに、仮想マシンスケールセットで動かすためのイメージを作るとき Sysprep で一般化したら、タイムゾーンが UTC になってしまう。 応答ファイルでタイムゾーンを設定できたはず…

Azure Data Studio の SQL Server Profiler 拡張

SQL Server Management Studio に付属している SQL Server Profiler は Azure SQL Database で使えなかったので、自前の簡易的なプロファイル機能をアプリに仕込んだりしてたけど、Azure Data Studio に SQL Server Profiler 拡張をインストールすればプロフ…

ZIP ファイルを使用した Azure App Service への React 製アプリのデプロイ

React 製 Single Page Application を Azure App Service でホストするために、Kudu のカスタムデプロイスクリプトを書いてデプロイ時にアプリをビルドし、それを express でサーブしていた。 tnakamura.hatenablog.com でも実は、Kudu のカスタムデプロイス…

Trace に出力した内容を Application Insights に保存する

はじめに セルフホストしてる WCF サービスで、例外が発生したら Application Insights に記録したい。ただ、WCF 用のパッケージはラボの段階で、しかもリポジトリはアーカイブされている。開発されていない。 github.com 今から TelemetryClient を使って A…

React の SPA を Azure App Service でホストする

2021-07-06 追記 ZipDeploy で OK だった。 tnakamura.hatenablog.com はじめに React で実装した Single Page Application(SPA)を Azure App Service でホストしたい。Azure Static Web Apps ではなく、Web Apps。というのも、大人の事情で、GitHub や Azur…

可用性セットを組んだ仮想マシンをバックエンドプールに使うロードバランサーを構築する Terraform サンプル

Azure にて、仮想マシンスケールセットではなく、可用性セットを組んだ仮想マシン 2 台を、ロードバランサーのバックエンドプールにしてみた。 まぁ、最終的には仮想マシンスケールセットを使ったけどね。せっかく試したんでメモを残しておく。 resource "az…

Azure App Service で Managed Certificate を使う Terraform サンプル

カスタムドメインは Azure DNS ゾーンに登録してある前提。 resource "azurerm_resource_group" "example" { name = "rg-example" location = "japaneast" } resource "azurerm_app_service_plan" "example" { name = "plan-example" location = azurerm_res…

Packer で VM イメージビルド中に Azure ファイル共有をマウントする

Packer で Windows Server 2019 Datacenter の VM イメージを作成しているが、アプリケーションをインストールために、WinRM でインストーラーをアップロードするのは遅すぎてまったく実用的ではなかった。 インストーラーみたいな大きいファイルは、あらか…

Packer で .NET Framework 4.8 をインストールした Windows Server 2019 の Azure VM イメージを作成

はじめに Azure にある公式の Windows Server 2019 Datacenter の VM イメージは、記事執筆時点で .NET Framework 4.8 が入っていなかったので、 .NET Framework 4.8 入りの VM イメージをビルドした。Packer で。 www.packer.io Azure リソース グループを…

Azure SQL Database に接続する WCF サービスの Windows コンテナを Azure Kubernetes Service で動かす

はじめに Azure SQL Database に接続する WCF サービスを、Windows コンテナのプロセス分離モードで動かすところまで漕ぎつけた。 tnakamura.hatenablog.com 一連の実験もいよいよ今回で最後。Azure SQL Database に接続する WCF サービスを、Azure Kubernet…

Packer で Azure VM のイメージを作成しようとしたら WinRM の有効化でタイムアウトした

Microsoft Docs の資料を参考に、Packer を使って Azure VM のイメージを作成しようと試みた。 docs.microsoft.com ところが、WinRM の有効化を待機しているところでタイムアウト。winrm_timeout を延ばしてもダメ、vm_size を上げてもダメ、image_sku を変…

Azure SQL Database でデータベースをまたがった SQL を実行可能にする手順メモ

Azure SQL Database でも、 外部データソースと外部テーブルを使ってデータベースをまたがった SQL を実行できるので、 手順をメモしておく。 マスターキーの作成 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<パスワード>' データベース スコープ ベース…

Azure SQL Database の一時テーブルに SqlBulkCopy が使えるようになっていた

Azure SQL Database は着実に改善しているようで、以前はできなかった「SqlBulkCopy を使った一時テーブルへの書き込み」ができるようになっていた。 検証に使ったソースコードを貼っておく。 using System; using System.Configuration; using System.Data.…

Azure Functions を使った Azure Storage の増分バックアップ

先日作成した Azure Storage のコンテナをバックアップするプログラムは、高速化しても完了までに 5 時間弱かかる。 tnakamura.hatenablog.com こいつを毎日実行するのは気が引ける。コンテナの完全バックアップは週一回にしておき、増分バックアップを毎日…

Azure Storage に保存したブロブのバックアップを高速化

先日、「Azure Storageに保存したブロブをバックアップ専用ストレージアカウントにコピーする」プログラムを書いたが、素直に実装したため激しく遅かった。並列化すらしていないから当然か。 tnakamura.hatenablog.com そこで、『Azure Storage Data Movemen…

Azure Storage に保存したブロブのバックアップ

仮想マシンのイメージなんかを Azure Storage にバックアップする記事は探せばすぐ見つかるけど、 Azure Storage に保存しているブロブを別のどこかにバックアップする記事は見つけることができなかったので、 Microsoft.WindowsAzure.Storage を使ってバッ…

Azure Storage を使っていて同時接続数でハマった

Azure Storage に添付ファイルをアップロードする処理を持つ ASP.NET Core MVC(.NET Core) アプリを、 Azure App Service にデプロイしてベンチマークをとってみたら、 スケールアウトやスケールアップしても思ったようにパフォーマンスが上がらなくて、 ボ…

Azure App Service で Spring Boot 製 Web アプリケーションの Blue-Green Deployment を行う

Azure App Service で Spring Boot 製 Web アプリケーションを動かすことに成功した。 tnakamura.hatenablog.com ただし、このままだと新しいバージョンをデプロイするときにサービスを停止しないといけない。実行中に App Service Editor で jar ファイルを…

Spring Boot 製 Web アプリケーションを Microsoft Azure の App Service で動かす

Spring Boot を使って作成した Web アプリケーションを、 Microsoft Azure の App Service で動かすことができたので、 手順をメモしておく。 App Service で Web App を作成 Microsoft Azure ポータルの App Service ページで、 SQL とか付いてない Web App…

Azure App Services から Azure Database for PostgreSQL に接続できるようにする方法

Azure App Services のアウトバウンド IP を、Azure Database for PostgreSQL のファイアウォール規則に追加する必要があるみたいだ。 Azure App Services のアウトバウンド ID は [プロパティ] - [送信 IP アドレス] で確認できた。4 つの IP アドレスが表…

Azure SQL データベースのデータを Azure Storage Services にバックアップするサンプル

Azure SQL データベースのデータを DAC Framework を使ってエクスポートし、Azure Storage Services にアップロードするサンプルを書いてみた。バックアップだけでなく、バックアップ一覧の取得と、復旧も実装している。エミューレータで動くことは確認した…

Azure SQL データベースでは SqlBulkCopy で一時テーブルにデータを書き込めない

集計中のデータを SqlBulkCopy を使って一時テーブルに流し込もうとしたら、 目的のテーブル '#tblae9a0940ec5d4a81912e3598ba6c24cf' にアクセスできません。 っていうエラーが発生した。原因を調べていてたどり着いた MSDN フォーラムの投稿では、 これは …

Azure SQL データベースの課金の仕様がややこしい

Azure SQL Database で、データを Insert したり Delete したり、ときにはデータベースを CREATE したり DROP したりしていたら、無料評価版の有効期限を30日残して Azure SQL Database の使用制限に達してしまった。てっきり、データベースに保存しているデ…