tech.guitarrapc.cóm

Technical updates

Azure

Azure SDK for .NET の認証を DefaultAzureCredential にそろえる

Azure SDK for .NET はなぜか AzureCredentials と DefaultAzureCredential という2つの認証方法があります。 今回は AzureCredentials しか受け付けない Azure SDK のクライアントに、DefaultAzureCredential で得た認証を使いたいというメモです。 tl;dr; …

Infrastructure as Code に最低限求めること

Infrastructure as Code (以降 IaC) で組むときに IaC ツールを選ぶ基準はいろいろあります。 IaCの言語がチームとって扱いやすいか、クラウドやサービスへのIaCの対応状況は早い/十分か、コミュニティの大きさは十分でググれば情報を入手できるか、実装がオ…

Azure Bicep の設計 Resource編

前回は、Bicep の性質から、どういう基本設計でIaC を指向するか書きました。 tech.guitarrapc.com 今回は、実際に Bicep Resource を使って書くときに、どういう工夫が必要なのかメモしておきます。 tl;dr; Bicep Resource Preview リソースと ARM Template…

Azure Bicep の設計

Azure の構成を IaC したいとなると、おおむね選択肢は次の3つになりそうです。 ARM Template Terraform Pulumi Terraform と Pulumi はおおむね同じ性質ですが、Pulumi は Azure に対しては他のクラウドよりも優先的に機能が入るのでちょっと面白いです。 …

PowerShell の -PipelineVariable を使おう

PowerShell v5 で追加された PipelineVariable に関して、本では説明していたのですがブログに書いていませんでした。 いい感じの例があったので、説明しておこうと思います 目次 目次 TL;DR 対象のPowerShellコード PipelineVariable とは PipelineVariable…

Azure DevOps Pipeline をYAML で定義しよう

何度か挙げている Azure DevOps Pipeline ですが、ずっとYAML で紹介してきたかと思います。 実際に私はAzure DevOps にYAML がPreview で来てからずっとYAML にしています。 これはほかのCIサービスも複数触っていたことからもYAML でかけることに大きなメ…

Azure DevOpsの Microsoft-hosted Agent で HoloLens ビルドを行う(MRTK/MRTKv2)

前回、Azure DevOps で HoloLens のビルド環境を行うこと、Microsoft-hosted Agent が今ならいいということを書きました。 tech.guitarrapc.com 今回は、MRTKとMRTKv2 を Microsoft-hosted Agent で現実的にビルドすることを考えてみましょう。 内容としては…

Azure DevOpsでのHoloLens ビルドを行うためのCI/CD選択

お手伝い先でHoloLens でのCI/CD を構築、運用して1年を超えましたが、日々安定してビルドができています。 先日素敵な記事も出てて良い感じです。*1 Azure DevOpsでHoloLensアプリをビルド(MS-hosted編) | NEXTSCAPE with MR HoloLens のCI環境について、…

Terraform 0.11.14から0.12.0 にアップグレードを行う

Terraform 0.12.0 がリリースされ、すでに 0.12.1 がリリースされました。 いくつかのTerraform 環境で随時0.11.14 から 0.12.0 にアップグレードしているのですが、その中で AzureRM Provider に関して少し困ったのでメモしておきます。 目次 目次 TL;DR 操…

Azure DevOps の Template を利用してビルドする

Azure DevOps Pipeline で何度も同じ処理をYAMLに書いていた場合、Templateを使うとまとめられて便利になります。 実際にビルドが多く重複した定義の多いプロジェクトに適用したところ、表向き300行 (template 含めると100行) 減らせて見通しは良くなりまし…

AzureDevOpsPipeline/Azure DevOps Pipeline で docker build と Azure Container Repository への push を行う

Azure Pipeline を使っているとタスクによせたくなるのですが、あんまりそういうのもアレなのでほどほどにというのはもうちょっと言われてもいい気がします。 Docker はその最たる例で コマンドで3行で済むようなものがDockerタスクを使うといたずらに時間を…

AzureFunctions におけるStorageTableBindingの選択

Azureには、Storage Table という機能があり単純なテーブル形式でデータが管理できます。 C# のコード的にはTableEntity を継承してデータを表現し、メソッドを組み立ててCRUDを実現できます。 さて、このStorage TableをWebJobs 並びにその実装の一つである…

Deployment Groupを用いてManagedにVMへのデプロイを行う

現状、サーバーサイドの多くはコンテナで動かすことが可能です。そのため、VMに直接アプリケーションをデプロイする機会はかなり減りました。最高ですね。しかし、UWPをはじめとして一定の要件下においてはコンテナ対応が技術的に難しく、VMへのデプロイをせ…

MSIを使ったStorage Account(Blob, Queue) の認証を使ってQueueの監視を行う

Azure の Storage Account アクセスといえばConnection String ですが、Managed Service Identity (MSI) による AzureAD認証が可能です。(2019/3/25 に GAしたはず.... あれ?) ここでは、Storage Account ではなく MSI を使ったAzure Functions からのアクセ…

Azure Storage Queue を Application Insightsで監視する

あるあるな Queue の監視ですが、自前でやらなきゃいけないなら Serverless でぺちって任せるのは楽ちんですよ、というのはよくあるパターンです。 実際にQueue Storage のモニタリングをしてみましょう。 TL;DR Azure Storage Queue や Service Bus などの…

Slotを用いたAppService のStaging環境とAzureDevOps PipelineのリリースによるBlueGreen Deployment

Azure の App Service には Slotがあります。 Slotはただ利用してもそれなりにうれしいのですが、Terraform での構成とAzure DevOps の リリースパイプラインでの展開を行えるようにすることで、「CI/CD による App Service の Slot による展開前のStaging環…

.NET Standard や .NET Core におけるAzureのStorage関連nugetパッケージの選択

Azure の C# 向け Storage SDK は nuget でサクッとアプリケーションに追加できます。 しかし、現時点ではWindowsAzure.Storage パッケージとMicrosoft.Azure.Storage.Xxxx パッケージに分かれており、お互いが干渉合うために混在するとAssembly Bindingsを…

.NET Core の Generic Host で WebJobs を利用する

Generic Host を使った場合でも、これまで .NET Core で書いてきた処理は問題なく組み込むことができます。 最近 Azure WebJobs を Generic Host で使う機会があったので見てみましょう。 ※ 社内向けブログの転載なのでシリーズ化します。 目次 目次 TL;DR; …

Serverless Conf Tokyo 2018 に来ている記事2 : Azure Session #ServerlessConf #serverlesstokyo

毎年参加しているServerless Conf Tokyoです。3回目になります。 tokyo.serverlessconf.io 他のセッション tech.guitarrapc.com 引用は私のコメントです。 目次 目次 Speaker Serverless ってServerがないのこと? クラウドコンピューティングを交通で例える…

VSTSの YAML Build Preview でビルド

Visual Studio Team Service (以降 VSTS) は、プロジェクト管理、Gitリポジトリ、CI (リリース含む) などソフトウェア開発を支援する結構大掛かりなサービスです。 私自身は CI の環境としては結構好き*1な一方他の機能はちょっと大掛かりと感じます。本記事…

ServerlessConf Tokyo 2017 に参加してきた(キーノート編)

勉強会、カンファレンス、ミートアップ、言い方は違っても参加するたびに多くのことを学ばせてもらっています。普段、参加ログを書かないのですが、多くのことを人の参加記事から学んでいるので参加したセッションについて書いてみます。 ※ この記事では キ…

AzureFunctions の Precompiled Functions を試してみる

2017/1/6 に Precompiled Functions がサポートされました!! この対応により、C# Scripting (.csx) に比べてかなり Azure Functions が書きやすくなります。早速Precompiled の利用とこれまでの.csxとの違いを見てみましょう。 Nice. Precompiled functions …

Azure Functions で Asssembly.Location が正しくかえって来ない問題の対処

Azure Functions が6日ほど前に更新されて1.0.10690になってから、以下のエラーが発生する場合があります。 Can't create a metadata reference to an assembly without location. at Microsoft.CodeAnalysis.MetadataReference.CreateFromAssemblyInternal(…

.NET Core on Lambda の CI を組んでみる

パッケージの利用、ローカルテスト、ビルド、Visual Studioからのデプロイまで来たのでローカル開発は問題なくできそうですね。ただCIがないままではチーム開発がしにくいです。 tech.guitarrapc.com tech.guitarrapc.com tech.guitarrapc.com そこで今回は…

Azure Functions で SSLサーバー証明書の有効期限を監視する

久しぶりの AzureFunctions 記事です。この間、グラニでは更に Functions が増えてずいぶんと楽になりました。Function as a Service (FaaS) だけでも非常に助かるものです。もちろん Lambda のような Backend as a Service (BaaS) にはまだまだ足りませんが…

Amazon Route53 の DNS Query Test Tool を使わない手はないお話

このブログに限らず、私は基本的に Amazon Route53 を DNS サービスとして愛用しています。Google Cloud DNS のほうが安かったりとか、いつまでβなんだろうという DNS | Microsoft Azure がありますが、Route53 が好きです。 今回は、 ようやく DNS Query Te…

Azure Web Apps を使ったReference Source による ブラウザ上でのコード追跡

2014年2月に Microsoft がブラウザ上におけるソースコード閲覧の新しい体験を提供しました。今でも使うことが多い、Reference Source です!! 個人的にこの時の衝撃はすさまじいものがありました。 blogs.msdn.microsoft.com http://referencesource.microsof…

Azure Functions - C# で Windowsにインストールされている.NET Framework のレジストリバージョンを適切に返してみよう

現在、5/26 -27 で、ニューヨークにて Serverless Conf が行われています。コンテンツホルダーが信じられないぐらい豪華、かつホットな人ばかりなので、動向に注目です。 serverlessconf.io さて、Azure Functions の PMも参加しているように、Azure Functio…

Azure Functions - C# で外部アセンブリ読み込みとRoslynコンパイラに渡してみる

前回は、Azure Functions に C#コードを投げつけると Roslyn Scripting で評価して結果を返すところまでやりました。 tech.guitarrapc.com 次にやりたくなるのが、独自クラス、メソッドも Roslynに評価させることですね。自分用ヘルパーなどはみなさんお持ち…

Azure Functions - C# のRoslyn コード評価環境を構築しよう

C# を書く環境として、Visual Studio や LinqPad、Visual Studio Code が良く話題になります。特にサクッとコード片を試す、インタラクティブにトライアンドエラーをしたいとなると、LinqPad (特に Premium) が素晴らしいです。 LinqPad に関しては、素晴ら…