tech.guitarrapc.cóm

Technical updates

.NETCore

servo で gRPC(MagicOnion)サーバーを公開する

2019/7/29 に servo に関する記事をみて、gRPC っていけるのかなということで MagicOnion で試していました。 qiita.com 記事にするのを忘れてたので書いておきます。 目次 目次 結論 何がうれしいのか 結論 問題なくok 大事なのは、MagicOnion のサーバーを…

TeamsId2BitwardenConverter でTeamsId から Bitwardenへの移行を再度行う

TeamsId から Bitwarden への移行をまたやってました。 tech.guitarrapc.com 作っておいてよかったということでサクッとやったのですがいくつか修正しています。 目次 目次 TeamsId2BitwardenConverter 個人のデータを移行する まとめ TeamsId2BitwardenConv…

.NET Core 3の Single-file executables を生成する

.NET Core 3.0 では、単一バイナリ(Single-file executables)が生成可能になりました。 github.com 今回はどのようにSingle Executable生成するのか、普段は .NET Core 2.1 でビルドしたいときの分け方、dotnet global tool とビルドを分けること、GitHubリ…

AWS Secret Manager を使ってASP.NET Core のシークレット情報を扱う

.NET Core で AWS において機微情報を扱うときに、AWS Secret Manager や System Manager の Parameter Store が候補に上がります。 ここでは、Secret Manager を使った ASP.NET Core での組み込みについて書いておきます。

非ASP.NET Coreなプロジェクトで UserSecretsを使うためのVisual Studio 拡張を作りました

非ASP.NET Core、特にGeneric Host で開発するなら必要になるVS拡張を公開していたのを忘れていました。*1 今回は、GenericHost など非ASP.NET Coreなプロジェクトでも、ASP.NET Core なプロジェクトにある Manage UserSecrets (ユーザーシークレットの管理)…

.NET Core でgitなどSCM情報をCIで埋め込んでアプリケーションに表示する方法と選択

開発中、リリースのいずれにおいても「今どのバージョンなのか」という情報は重要な情報です。 とはいえ、実際に埋め込みたいのはバージョンというより「ソースコード」とくに「コミット」と連動する情報、加えて「ビルド」と紐づく情報もほしいでしょう。 …

.NET Core で AssemblyInfo.cs の生成を制御する

C# のアセンブリ情報は AssemblyInfo.cs によって制御されています。 .NET Core でいくぶん取り扱いが変わったものの基本は一緒です。 たびたび忘れるので、どのように取り扱いが変わったのか制御方法をメモしておきます。

.NET Core Global Tools のインストールとアップグレードを状態に応じて行う

.NET Core Global Tools は.NET Core SDKがインストールされている環境でdotnet系cliツールをlist/install/upgrade/uninstall を行う仕組みです。 docs.microsoft.com この仕組みがでたことで、少なくとも dotnet core製のCLIツールの配布はnugetを経由する…

Azure Storage Queue を Application Insightsで監視する

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

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

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

base64urlを扱えるNuGetライラブラリと.NET Core Global Toolを作りました(MicroBatchFrameworkも使ったよ)

最近 JWT を取り扱っているのですが、仕様上base64url フォーマットを頻繁に利用します。 C# で base64 というと、Convert.FromBase64String あたりですが、base64url にしてくれるような気の利いた仕組みはなく、入力がbase64url仕様に沿ってないとすぐに例…

.NET CoreのGeneric Host で Windows Service を作成する

.NET Framework で Windows Service を作るときは、Windows Service のために地道に実装するのは大変.... なので、TopShelf を使うことが定番でした。以前 Nancy を Windows Service でホストする記事を書いたこともあります。 tech.guitarrapc.com では、.N…

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

.NET Core で Generic Host を利用する

ASP.NET Core 2.1 で追加された Generic Host (汎用ホスト) は、non-Web App アプリの作成をASP.NET Core と似た書き心地で提供します。 今後のスタンダードとなる見込みですが、どのようにして Generic Hostを利用するのか見てみましょう。 ※ 社内向けブロ…

パスワード管理をTeamsId から Bitwarden に移行した

今のパスワード管理に小さな不満があるので長年次のパスワード管理をさがしていたのですが、Bitwardenが今ある全ての望みをかなえてくれました。 bitwarden.com 今回、TeamsId から Bitwarden に全面移行したのでその移行についてメモをしておきます。

はてなブログを https 対応するためにmixed content を検知する MixedContentCheckerを作った

前回の記事でhttps 化の前段階として、はてなブログの全URLを取得しました。 tech.guitarrapc.com https化を有効にすると、mixed content が出るようになるので有効にします。 あとは、https 化したページに httpコンテンツが混じっている時に起こる、mixed …

はてなブログの全エントリーURLを取得する

このブログ、実はhttpのままです。 はてなブログをやめるか考えているのですが、いったんhttps対応を進めましょう。 困るのがmixed content なのですが、とっかかりとしてこのブログの全URLを取得します。

PowerShellでマルチプラットフォームに動くモジュールの作成と継続的なテスト

この記事は、PowerShell Advent Calendar 2018 の 22日目です。 qiita.com 今年は、PowerShell Coreについて本を書いたのですが、その中で書ききれなかった.NET Core と .NET Framework の両方で動くPowerShellモジュールの実用的なサンプルです。

.NET Core App を Docker コンテナとして公開する

C# を使っていて最も困るのがランタイムと感じます。 C#は書きやすい、Visual Studio も使いやすいは良く耳にします。実際享受しやすいメリットだと思いますが、C# を Windows 以外で実行したいはどうでしょうか? 今回はその実行方法についてコンテナを用い…

.NET Core on Lambda で Unity Cloud Build のWebhook処理とLambda をネスト実行する

今回は、Unity 開発に欠かせない存在になってきた Unity Cloud Build のビルド通知をAWS Lambda (.NET Core) でいい感じに処理することを考えてみます。手始めに、他のチャット基盤 (Chatwork) への通知に取り組んでみましょう。 結果こんな通知がくるように…

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

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

.NET Core on Lambda で nuget パッケージを利用してみた

といいつつ、当初から Json.NET を利用しているのですが、そこはおいておきましょう。 今回は、AWS Lambda で nuget パッケージを利用してみます。とはいっても難しいことは何もなく、通常の.NET Core アプリと同様です。 Azure Fucntions とは少し違うので…

.NET Core on Lambda のローカルデバッグでロガーと変数確認する

Serverless といっても大事なのはローカルで実行できるかです。どんなに便利でも高速なイテレーションが回せないものは継続せず触らなくなったり進化の波に乗れません。 さて、.NET Core on Lambda が出た当初にローカルデバッグで ILambdaContext がないた…

.NET Core on Lambda で Github 連携をSlack に飛ばしてみよう

私の中で Serverless ななんとかネタで鉄板なのが、Github の PRやIssue などの通知連携です。日々使っているものなのでついつい。 もちろん過去にも Lambda + Node.js や Azure Functions で作っています。 tech.guitarrapc.com では .NET Core でもやって…

.NET Core on Lambda で Slack Slash Command を作ってみよう

さて、前回、前々回と .NET Core on Lambda の下回りを見てきました。 tech.guitarrapc.com tech.guitarrapc.com 大事なパッケージ周りやデプロイについては別の機会にするとして、そろそろ簡単なコマンドをWebhook で投げて返してみましょう。ついでに Lamb…

.NET Core on Lambda で テスト、ローカル実行、async/await、ロギングについて

さて、AWS Lambda の続きです。 tech.guitarrapc.com Lambda というか サーバーレスに限らず、ローカル実行ができるか、言語機能の対応状況、ログ確認方法は開発の基本となります。NuGetパッケージの対応状況や他を見る前にざっと確認しておきましょう。

.NET Core on AWS Lambda がリリースされました

今年は非常にうれしいことが Azure と AWS 両方でありました。Azure Functions と .NET Core on AWS Lambda です。 これまで多くの AWS Lambda関数 (Node.js) と Azure Functions (C#) を書いてきましたがこれでようやく AWS Lambda に完全に寄せることがで…