Azure

terraform-provider-azurermでエラーが出たときの調査ログ

Terraformのトラブルシューティングログです。 問題起きた時にどうやって原因を突き止めるのか、後で手順を誰かに説明する時のために書いておきます。 事象 TerraformのProviderのリポジトリを確認する ログを取得する APIを確認する Githubを検索 最終手段 …

ACR(Azure Container Registry)に保存されているイメージの世代管理をしたい

ACRのイメージが溜まるのが気になるので、古いモノ削除したいなと思って調べてみたら以下のMicrosoftの公式ページにまとまっていました。 ただ、記載があるのは、タイムスタンプである期間より古いものとか、タグの付いてないものを削除する手順でした。今回…

TerraformでLinux Azure VMにHeartbeatの死活監視を組み込む

タイトルの件、検索してもあまり見つからなかったので書き残しておきます。 いきなりTerraformの定義です。ドキュメントを元に作ってます。 www.terraform.io variable "azure_subscription_id" {} variable "azure_tenant_id" {} variable "mail_address" {…

AKSやVMで複数マネージドIDに紐付けるとIdentity not foundとなり認証できなくなる件

結論 事象 事象の深掘り 原因を調査 Addon設定前 Addon設定後 最後に 参考URL 結論 複数のマネージドIDを紐付けている時には、認証時にどのマネージドIDを利用するか指定する必要があります。 こう書くと当たり前の話ですが・・ハマりました。 以下の例ではA…

Azure PipelinesでAKSプライベートクラスタにデプロイを行う

AKSはAPIサーバーへの通信をプライベートに限定するプライベートクラスタを構築することが可能です。 ただしDevOpsでCI/CD組もうとすると通常のAKSクラスタだと簡単に統合できたところが、プライベートクラスタだと上手くいきません。(API叩けないので当然で…

Azure Kubernetes ServiceのPod上でkubectlコマンドをマネージドID認証して実行

AKSでもマネージドIDが使えるようになったことで、KubernetesのPodから定期ジョブなどでkubectlを実行したい時にAzure CLIで認証できるようになりました。 前提 コンテナイメージをビルド ENTRYPOINTのスクリプト イメージのビルド ACRにイメージをビルド Ku…

Azureリソースのマネージド ID(旧MSI)の権限をCURLでREST APIを実行して検証する

最近、AKSも対応したマネージド ID(旧MSI)です。これで認証情報をローカルに持たなくてもAPIが叩けるようになりました。 docs.microsoft.com 権限の検証はAzure CLIやSDKでも検証できますが、ここでは手っ取り早くcurlで検証する方法を記載します。 仮想マシ…

TerraformでAzure DevOpsをプロビジョニングする

タイトルの通り、Terraform使ってAzure DevOpsをプロビジョニングする方法です。 前提 組織登録 Personal Access Tokenの取得 Terraform定義準備 Terraformの定義の準備 Azure DevOps Providerのインストール Terraformの実行 スキーマの確認 前提 組織登録 …

KEDAを使ってServiceBus Queueに合わせてKubernetesジョブをスケールする

KEDAは「Kubernetes-based Event-Driven Autoscaling」の略で、イベントをトリガーとしてKubernetesのデプロイを管理することを目的としたCRD(Custom Resource Definitio)で、イベントを使ってpodを0~nにスケールイン・アウトできる機能です。 KEDA is a Ku…

Azure Kubernetes ServiceのPodからManaged identities(旧MSI)認証でKey Vaultの情報を取得する

Key Vaultに保存した情報をAKS上のPodから取得するような要件は良くあると思います。でもKey Vaultへの認証をどうしたものかと思っていました。Service Principal使えば良いのですが、AKSでもMSIを使えたら良いなと思い調べていたところ、以下の情報がドキュ…

Azure Kubernetes Serviceデプロイしたらvirtual-nodeが機能しなかったので対応メモ

virtual-nodeアドオンは、Azure Container InstancesをAKS(Azure Kubernetes Service)の仮想ノードとして利用できる便利な機能です。 azure.microsoft.com Azureのウィザードで作成している分には問題無く動いていたのですが、環境構築をTerraform化した際に…

「しくみがわかるKubernetes~Azureで動かしながら学ぶコンセプトと実践知識」を読んだ

今度、Kubernetes使うので、復習としてこちらの書籍読みました。 しくみがわかるKubernetes Azureで動かしながら学ぶコンセプトと実践知識作者:阿佐 志保,真壁 徹発売日: 2019/01/23メディア: 単行本(ソフトカバー) 構成 目次は以下でした。 第1部 導入編 …

MinikubeでACR(Azure Container Registry)を使う

MinikubeからACRにアップロードしたコンテナイメージを利用する方法です。 変数設定 ACRの準備 Service Principalの作成と認証情報取得 Minikubeに認証情報の登録 その他 認証情報を更新する Dockerでログインしてみる 設定の確認 参考URL 変数設定 Azureに…

AZ-400 Microsoft Azure DevOps Solutions に合格してきた

プロジェクトの隙間で少し時間ができたのでAZ-203と併せて取得してきました。これでMicrosoft Certified: Azure DevOps Engineer Expert認定を取得できました。 ロードマップ上はここに当たります。AzureはExpertが二つあるのですが、その片割れです。 引用…

AZ-203 Developing Solutions for Microsoft Azureを合格してきた

AZ-203を合格してきました。これでMicrosoft Certified Azure Developer Associateらしいです。 実は目的はAZ-400なのですが、その前提条件になっているので受けてきました。Azureは上位認定受けるのに複数試験受けないといけないので、結構疲れます。 勉強…

PythonでAzure SQL databaseにJDBC接続してみる

利用するモジュール SQL Server用のJDBC Driverダウンロード Pythonコード 既知のエラー 関連 利用するモジュール JDBCを使うためにこちらのモジュールを利用します。 github.com $ pip install JayDeBeApi SQL Server用のJDBC Driverダウンロード SQL Serve…

Azure Table StorageのデータをCloud Dataflowを使ってBigQueryに挿入する

Azure Table StorageのデータをCloud Dataflow (Apache Beam)から扱ってみたのでメモ。 対象のAzure Table Storage 対象としたTable Storageの中身です。mytable という名前にしました。このデータをDataflowを使ってBigQueryに挿入してみます。 準備 デー…

Azure Table Storageをpandas+pyarrowでParquet変換してBLOB側にアップロード

BeeX Advent Calendar 2019の12/6の記事です。空いてたので滑り込みです。 Azure Table Storageですが、対応しているツールも少なく、なかなか扱いずらいので、Pandasに読み込んで、Parquet形式に変更する方法を調べました。 対象 対象としたTable Storageの…

Apache AirflowでAzure BLOB Storageのオブジェクトを監視してワークフローをトリガする

AirflowにはAzureのパッケージが存在しています。 pip install 'apache-airflow[azure]' その辺りを使って、Azure Blob Storageへオブジェクトがアップロードしたことを検知して、ワークフローを流したいと思いました。 モジュールとしては以下のモジュール…

AZ-301取ってAzure Solutions Architect Expert 認定取りました

Azure Solutions Architect Expertを取得してきました。 試験 前提試験 AZ-300 と AZ-301 Azure Solutions Architect Expertの認定には、以下の2試験の合格が必要です。 AZ-300:Microsoft Azure Architect Technologies AZ-301:Microsoft Azure Architect D…

AZ-300 Microsoft Azure Architect Technologies を合格してきた

このブログ始めた頃(4~5年前)は、主に仕事ではAzureを使っていたのですが、暫くご無沙汰でした。 最近だと去年ChatBot作るため、Azure Bot Serviceを使いたくてAzure使っていたくらい。 最近マルチクラウドの案件が増えてきたため、AWSとGCPに合わせてAzur…

GCPとAzureをSite-to-SiteでVPN接続してみた(CLI作業)

GCPからAzureにサイト間VPNを接続した手順です。 以下にあるように、2019/10/18時点では、GCPとAzureのBGP接続はサポートされていないようなので、ルートベースのVPNを設定手順です。 VPN interoperability guides | Cloud VPN | Google Cloud 全体像 このフ…

LUISが日本語の日付に対応していないので正規表現で引くことにした

LUISで日付認識させようとして、上手く行かないので一旦正規表現で対応したという話です。2018/11/15時点の内容なので、将来的には対応されると信じています。対応状況はこちらを見るとわかると思います。 LUISがDatetimeを認識しない 正規表現で対応するこ…

Application Insightsのログ検索(Log Analytics)でJSONを展開する方法

Application Insightsのログ検索(Log Analytics)はKusto Query Languageという言語のようです。 Application Insightsのログ検索機能ですが、SDK使えば簡単にログ情報を構造化して保存できて、後で検索もしやすいです。使えるようになれば、凄い便利なのに調…

Azure Bot Service で宛先やCC追加などEmailの返信をカスタマイズする

掲題の件、 channelData のプロパティ調整すれば可能です。 つまりはこんな感じです。 enum Importance { High = "high", Normal = "normal", Low = "low", } const sendMail = async (context: TurnContext, toRecipients: string[], ccRecipients: string[…

Azure Bot Builder SDK for Node.js Version 4でTypeScript開発環境構築

botbuilderのVersion4ですが、いつリリースされるのかと待ってたところ、今週botbuilderの4.0.6がnpmにリリースされて、preview表示が消えているのを見つけました。 実際はまだ各所でPreviewのままなので正式リリースでは無いのかもしれません。 このロード…

Azure Bot ServiceでSlackやTeamsなどの別チャネル間でのメッセージを仲介するBotを作る

やりたいことタイトルで伝わるか微妙ですが、要は以下の図のようにAzure Bot Serviceで仲介して複数のチャネルの人を繋げるやり方が無いかと調べ始めました。 そこで見つけた、このあたりのIssueを読むと、できそうな気がしたので実際にやってみました。 Mak…

aptで任意のバージョンを指定してazure-cliをインストールする方法

最新版にバグがあって、古いバージョンに戻した際のメモ。 ちなみにインストール手順はこちらです。 docs.microsoft.com 利用可能なパッケージの一覧を取得します。 $ apt list -a --installed azure-cli 一覧表示... 完了 azure-cli/bionic,now 2.0.45-1~bi…

Azure Bot ServiceのFunctionsでNode.jsコード変更が反映されないのでデプロイ方法調べた

タイトルの通りです。 Web App版のAzure Bot Serviceではオンラインエディタで変更した内容がすぐ反映されるのに対して、Functions版のBotでは、オンラインエディタからJavaScriptコードを変更しても、変更内容が全く反映されませんでした。 サービスの再起…

【Ubuntu】Serverless FrameworkでAzure Functionsのデプロイまで

Azure Functionsを触る必要が出てきたのでデプロイ方法確認するために調べました。とりあえずUbuntuでも何とかなりそうです。 開発環境 Serverless Framework 事前準備 Ubuntu用事前準備 npm プロジェクト作成 主要ファイル確認 package.json handler.js ser…