tech.guitarrapc.cóm

Technical updates

Azure

Azure Deployment Environmentのデプロイログがとれるようになった

Azure Deployment Environmentの最大の難点が、BicepやPulumi、Terraformで環境構築中にエラーが出たときに実行ログを確認できないことでした。今回ついにデプロイログという名で実行ログがとれるようになったのでメモです。 Azure Deployment Environmentの…

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

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

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

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

Azure Bicep の設計 Resource編

前回は、Bicepの性質から、どのような基本設計でIaCを指向するか書きました。 https://tech.guitarrapc.com/entry/2021/07/15/033715 今回は、実際にBicep Resourceを使って書くときに、どのような工夫が必要なのかメモしておきます。 概要 Bicep Resource P…

Azure Bicep の設計

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

PowerShell の -PipelineVariable を使おう

PowerShell v5で追加されたPipelineVariableに関して、本では説明していたのですがブログに書いていませんでした。いい感じの例があったので紹介します。 概要 対象のPowerShellコード PipelineVariable とは PipelineVariables を使う例 Aggregateする処理…

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が今ならいいということを書きました。 https://tech.guitarrapc.com/entry/2019/06/26/155159 今回は、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に関して少し困ったのでメモしておきます。 概要 操作環境 アップグレー…

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並びにその実装の1つであるAzur…

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のモニタリングをしてみましょう。 概要 Azure Storage QueueやService Busなどのキューサー…

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

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

.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で使う機会があったので見てみましょう。 ※ 社内向けブログの転載なのでシリーズ化します。 概要 事前に読んでおきた…

Serverless Conf Tokyo 2018 に来ている記事2 - Azure Session

毎年参加しているServerless Conf Tokyoです。3回目になります。 http://tokyo.serverlessconf.io/ 他のセッション http://tech.guitarrapc.com/entry/2018/09/29/110107 引用は私のコメントです。 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との違いを見てみましょう。 Jeremy Hutchinson (@hutchcodes) 20…

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がないままではチーム開発がしにくいです。 http://tech.guitarrapc.com/entry/2016/12/05/055458 http://tech.guitarrapc…

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のほうが安かったりとか、いつまでβなんだろうというhttps://azure.microsoft.com/ja-jp/services/dns/がありますが、Route53が好きです。 今回は、 よ…

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

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

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

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

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

前回は、Azure FunctionsにC#コードを投げつけるとRoslyn Scriptingで評価して結果を返すところまでやりました。 https://tech.guitarrapc.com/entry/2016/05/04/150011 次にやりたくなるのが、独自クラス、メソッドもRoslynに評価させることですね。自分用…