BEACHSIDE BLOG

Azure とか C# 好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

Azure AD B2C のカスタム属性を Graph API で管理する (前編)

Azure AD B2C では、ユーザーの情報として Email や表示名、姓、名といったの一般的な Claim があります。それに加えて独自の Claim を追加することができます。 それがカスタム属性です。 Azure Portal からでは、カスタム属性を作成することがはきますが、…

EF Core の Global Query Filters 機能で論理削除フラグをいい感じに扱う ( Entity Framework Core )

Entity Framework Core では、はるか昔 (v2.0) に Global Query Filters (グローバルクエリフィルター)という Cool な機能が追加されました。 わかりやすそうなユースケースとして 論理削除されたデータはデフォルトで除外して、データを取得する マルチテ…

Azure の Computer Vision まとめ ( Azure Cognitive Services: Vision 編 2020-03版 )

Cognitive Services のブログはしばらく書いてなかったし仕事でも使ってなかったので、そろそろ一通りのおさらいしようと思っています。 ということでまずは Azure の Cognitive Services の中で Vision 系のサービスのひとつ、Computer Vision API から始め…

Azure Data Studio で LocalDB に接続して SQL Notebook を実行する

Azure Data Studio から LocalDB に接続するときは何の値を入れればいいのかなーのメモ。 接続するだけだと寂しさを感じたので知名度が低い SQL Notebook でクエリを実行してみましょう。これは Jupyter Notebook のカーネルが SQL のやつです。 Local DB に…

Cosmos DB の Change Feed 機能と使い方 ( Azure )

Azure Cosmos DB の Change Feed は、データの変更を検知してイベントを発火できる超便利な機能です。Azure Functions の Cosmos DB Trigger を使うことで超簡単に利用できます。 個人的には近年 RDB はほぼ使ってなくて Cosmos DB ばっか使ってるわりに Cha…

GitHub Pages に カスタムドメイン を 設定 ( Google Domains, VuePress )

Google Domains を使って GitHub Pages をカスタムドメイン設定しようって話です。 静的サイトの作成には VuePress を使ってますので、そこらへんの Tips もちょっとだけ入ってます。 ちなみにカスタムドメインの購入は太古の昔、2019年3月に書しました。そ…

Jupyter Notebook で C# や PowerShell を実行する

.NET Interactive で C# が Jupyter Notebook 上で動くのは結構前からありましたが、PowerShell も使えるようになったらしいので試してみました。 (ちなみに普段 PowerShell は滅多に使いまてん...) 準備 conda update .NET Core 3.1 SDK のインストール d…

Slack 通知用の Azure Functions の Custom Bindings を作る (2)

前回 Slack 側の準備と送信したいメッセージの json フォーマットを作りました。 blog.beachside.dev 今回は本題の Azure Functions の Custom Bindings を実装します。 作った順にコードを解説していきますが、コード全部は下の方にリンク張ってます。 Azur…

C# で System.Text.Json 使って Json を操作するときに気になったポイント( .NET Core 3 ~)

C# では .NET Core 3系にて Json のシリアライザーとして System.Text.Json が生まれました。 長らくお世話になった Json.NET - Newtonsoft とのお別れです。 多少お作法が異なるので、個人的に気になった点を整理してみました。 TL;DR 基本的な使い方 準備 …

Chrome 起動時に「 デフォルトのブラウザとして設定されていません 」を表示させない

最近 Microsoft の Chromium 版の Edge をデフォルトのブラウザーに設定したんですが、そうすると Google Chrome 起動時に「 デフォルトのブラウザとして設定されていません 」とメッセージがでてうざいです。 余談ですが、 Edge のDev Channel は出たときか…

Slack 通知用の Azure Functions の Custom Bindings を作る (1)

自分のアプリから Slack への通知を、Azure Functions の Custom Bindings を使って作ります。 Slack の Incoming Webhook を使うことで簡単に Slack へ送信できるため、Logic Apps ...いやそれより Functions で HTTP Request 投げた方が早いですが、時間を…

Oculus Quest 初期トラブル(コントローラーが認識しない)の解決 Tips

前回、購入から設定の話をしましたが、今回は私が実際に遭遇したコントローラーが認識しない問題の解決方法をメモしておきます。 TL;DR 初期のトラブル その1: 初期アップデート後、Touch Controller が認識しない その2: Touch Controller を強く振るとコン…

Oculus Quest の 初期設定 • 基本操作 とゲームの所感

Oculus Quest の購入から初期設定と最初に知っておきたい基本操作についてメモしておきます。 購入 事前に買っておいた方がよいもの 光漏れのためにマスクパット 充電できる電池 初期設定 基本的な操作 正面の再設定 左コントローラーのメニューボタン ゲー…

Azure Database for PostgreSQL の基礎と Data Studio を使って接続

Azure Database for PostgreSQL を作って Azure Data Studio でアクセスしてみようってお話です。 SQL Database と Cosmos DB ばかり触っているので、PostgreSQL をいじったり参考ドキュメントの整理にメモしてみました。 Azure Database for PostgreSQL (Si…

Azure アイコン 集の公式サイト ( svg )

資料作成時に利用する Azure の svg のアイコンの一覧記載のサイトってどこだっけ?ってなるのがめんどくさいのでメモしておきます。 https://azure.microsoft.com/en-us/patterns/styles/glyphs-icons/ 以前のように一括でファイルをダウンロードするじゃな…

Azure Machine Learning の Workspace アクセス時に認証エラー

Azure Machine Learning ( ml.azure.com ) では、Workspace で NotebookVM を作りそのVM上で Jupyter Notebook を起動できます。 ちなみに Azure AI Advent Calendar 初日の投稿です!まだ空きがありますよ! qiita.com 一応説明しておくと、Azure Machine L…

Azure Web Apps の環境変数の管理の基本 ( Key Vault と User Secrets )

ASP.NET Core で Azure の Web Apps といった App Service にホストするアプリを作る際の接続族文字列の管理について整理しておきましょう。今回は SQL Database の接続文字列というソースコード管理上におきたくない情報を管理することを例にして進めます。…

Easy Auth の App Service Token Store

前回 App Service の Authentication / Authorization feature (a.k.a. Easy Auth ) のアーキテクチャーに関する Chris さんのブログの意訳をしましたが、その続編の Chris さんのブログを今回も意訳します。2016年の記事ですが、参考になります。 オリジナ…

Easy Auth のアーキテクチャ ( Azure App Service Authentication / Authorization )

App Service には、ポチポチーしただけでコードを変更することなく認証ができてしまう Easy Auth という素晴らしい機能があります。 公式ドキュメントはこちら。 docs.microsoft.com 公式ドキュメントの内容は十分に充実してますが、作ったChris Gillum さん…

Azure Storage の 冗長性 のまとめ

Azure の Storage の冗長化をする際のレプリケーションの構成や、余談で Blob のアクセス層に関して簡単にまとめます。Data Lake storage Gen2 には触れません。 冗長化の構成 冗長化のオプションのキーワード L: Local Z: Zone G: Geo RA: Read Access 冗長…

GitHub のコードを Azure Pipelines 使って Azure Artifacts へ公開 (NuGet パッケージ, Azure DevOps )

前回は NuGet パッケージの作る際の注意点と手作業での Azure Artifacts への発行をメモしましたが、 今回は Azure Pipelines で CICD します。 公式ドキュメントの左側のメニューで "classic" と記載のある古い時代の Release pipelines ではなく、Multi st…

NuGet パッケージ 作成と Azure Artifacts へ公開 ( Azure DevOps )

今回は .NET Standard のライブラリを NuGet パッケージ化して手作業で AzureDevOps の Artifacts への発行をします。次回 Azure DevOps の Pipelines を使って発行を自動化します。 また NuGet Package を作成するの備忘録として、バージョン管理とかライセ…

MS Teams 通知用の Azure Functions の Custom Bindings を作る

Azure Functions には、バインディング ( bindings ) という仕組みがあります。これを使うことでいちいち細かいコードを書かなくても設定と少量のコードで、Queue トリガーを指定したり、Cosmos DB からデータを取得したり登録したりできます。 bindings の…

Durable Functions の状態管理と起動の基本 ( Azure Functions / C# )

Durable Functions を使うと、基本的に Azure の Storage で状態が管理されますが、久ぶりに使ったときに基本的な内容が改めて全く記憶がなかったのでメモしました。 状態管理 Table Queue 起動 Durable Functions の基本構成 starter の起動 Orchestrator …

Durable Functions: Human interaction pattern ( 人による操作 pattern )

Azure Functions の拡張機能である Durable Functions にはいくつかの実装パターンがありますが、ここでは Human interaction pattern を取り上げます。 今年の1月頃に書きかけてから、書くほどのことでもないなーと放置してたブログを更新しました...あの頃…

Azure のコストが一定額に達したら Slack とか Teams に通知する

Azure ではいくつかのコスト管理と通知に関する設定があります。 制限の手段として、何らかの特典でクレジットカードを登録したけど無料の範囲でしか使わない場合は、Azure Portal ではなく、アカウントポータル: https://account.azure.com/Subscriptions/…

Azure Pipelines で Multi-stage pipelines の Yaml をテンプレート化する ( Web Apps / ASP.NET Core )

前回はシンプルに1ファイルで ASP.NET Core の Web アプリを Azure の Web Apps にデプロイする Multi-stage pipeline を作りましたが、今回は再利用できるようにテンプレートするという、自分用メモです。 それにしても、このブログ書きかけてから2週間ほっ…

Multi-stage pipelines で Azure Pipelines を構築する ( Web Apps 編 / Azure DevOps )

Azure DevOps の Azure Pipelines は、今までの作り方から新しくなり Multi-stage pipelines と呼ばれるものになりました(2019年5月の話ですが..)。 Release pipeline も Yaml できっちりかけるようになりました。以前の Builds と Releases のメニューが…

QnA Maker の Web API を Ptyhon + Azure Functions でアクセス

前回は ヨガのポーズとその説明のデータを準備しました。続編の今回は、QnA Maker を使ってヨガのポーズを質問したらポーズの特性を答えてくれる Knowledge Base (KB、質問投げたら回答してくれるFAQチャットみたいなもの) をノーコーディングで作成します。…

QnA Maker でヨガのポーズからその特徴を調べる( Python でスクレイピングしてデータ準備編 )

もし、ヨガのレクチャーを受けたとき、そのポーズがなんの効果があるか知りたいと思うだろうと妄想したので QnA Maker などを使って解決しようと思いました。 (ヨガのレクチャー受けてるときはポーズになんの効果あるかとか説明ありそうですけどね、まだ受…