BEACHSIDE BLOG

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

Azure

Cognitive Services: Read API 3.x - OCR の API を試す (2020/10月)

2020 年は1月から9月の間で Cognitive Services の Vision カテゴリーの中の OCR の機能がちょろちょろとアップデートしてました。 OCR の今までのアップデートを振り返りつつ、最新の Read API v3.1 Preview2 を試してみます。 Cogbot #29でもお話しした内…

Python + Azure Functions 入門: タイマートリガー 編

前回は Python で Azure Functions をローカルで開発するときの環境セットアップと、HTTP トリガーの Function App を作りました。 blog.beachside.dev 今回はタイマートリガー、つまり一定の時間間隔で起動するような Function App を作ってみます。 時間指…

Azure AD で ゲストユーザー が所属するグループのメンバー一覧が見えてしまうのを制限する

Azure Active Directory (Azure AD) に外部のゲストユーザーを招待すると、招待されたユーザーは アクセスパネル からグループに属しているユーザー全員の ID (メールアドレス) を見ることができました。以下図のようにがっつりみえます(ぼかして見えてねー…

Python + Azure Functions 入門: Http トリガー 編

普段から C# で Functions をがっつり使ってる私ですが、たまには Python での入門ネタでも整理しようかと思った今日この頃です。 今回は、Python で HTTP リクエストを受けてレスポンスを返す Azure Functions を作ります。簡易な Web API ですね。デバッグ…

Azure Active Directory のテナントを削除する

いらなくなった Azure AD のテナントを削除する際、以下図のよう削除前にやるべきことを示唆されます。 ほとんどが画面上からポチポチして状態をグリーンにできるんですが、エンタープライズアプリケーションの削除は、画面上では削除できないやつがあります…

アダプティブダイアログ を使って Echo Bot を作ってみる (Bot Framework, C#)

先日 Cogbot でお話しした際にコーディングだけですましてしまったので、そのフォローアップとして話した内容やコードをまとめました。 はじめに Echo Bot の作成 EchoBot の Adaptive dialog を書いてみる root.dialog の追加 出力ディレクトリに常にコピー…

Azure のリソースの命名規則: 2020年版

ちょいちょい使う Azure のリソースの命名規則に関するドキュメント、ちょいちょいググるがめんどくなったのでリンクをメモしておきます(ブックマークとかする気はないのだ)。 docs.microsoft.com ドキュメント後半の"名前の例" にあるように、このドキュ…

Azure AD の AppRoles ( アプリ ロール ) で認可 - 3: ASP.NET Core の実装

Azure AD で AppRoles を使って認証・認可をするのも、ようやく今回 ASP.NET Core (3.1)で Web API を作り、認証・認可を実現するターンです。 過去2つのブログでは 前々回、Azure AD の設定と AppRoles を定義 前回は、フロント側のサンプルコードで認証を…

Azure AD の AppRoles ( アプリ ロール ) で認可 - 2: SPAで認証トークンの取得

前回 AzureAD で AppRoles で権限を作って、ユーザーに割り当てました。 blog.beachside.dev 続編の今回は、フロントエンドのサンプルアプリで認証するメモです。 Azure AD を設定する上で一番重要と思っている Azure AD の "サポートされているアカウントの…

Azure AD の AppRoles ( アプリ ロール ) で認可 - 1: Azure AD の設定

例えば ASP.NET Core の Web API を Azure Active Directory ( Azure AD ) で認証をするとき、Azure AD の アプリの登録 ってメニューから登録をします( Web API が Azure AD を使いますっていうサービスプリンシパルの登録っすな)。 今回は Azure AD B2C …

Azure AD B2C の ID プロバイダー ( IdP ) に AWS Cognito を追加する

Azure AD B2C は ID プロバイダー(Identity Provider, IdP, また OpenID Provider, OP)として使うことができます。 雑にいうとユーザーのパスワードは AAD B2C で管理されている状態です。 また、Azure AD B2C を Relying Party (RP) として使うこともでき…

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

前回は AAD B2C の設定をするだけで力尽きました。今回は Console App を使って、前回設定した Azure AD B2C のユーザーの情報やカスタム属性を取得・変更してみましょう。 カスタム属性は、前回 Tenant という名前の属性を追加したってことを前提に、Tenant…

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

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

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…

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

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

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

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

Azure Database for PostgreSQL の入門 Tips と Data Studio を使って接続

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

Azure のアイコン ( svg ) を取得する

資料作成時に利用する Azure の svg のアイコンの一覧記載のサイトってどこだっけ?ってなるのがめんどくさいのでメモしておきます。 サイトからダウンロード(イマイチ) Chrome の拡張で取得(おすすめ) サイトからダウンロード(イマイチ) 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月頃に書きかけてから、書くほどのことでもないなーと放置してたブログを更新しました...あの頃…