BEACHSIDE BLOG

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

Azure

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

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

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, C# )

NuGet Package を作成する際、バージョン管理とかライセンスの情報といった パッケージのプロパティ を設定しておきたいところですが、たまにしかやらないしやるときは毎回記憶にないので、ようやくメモしておきます。 今回は .NET Standard のライブラリを …

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 pipeline Yaml をテンプレート化する ( Web Apps / ASP.NET Core )

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

Multi-stage pipelines で WebApps の Pipeline を構築する ( Azure DevOps )

Azure DevOps の Azure Pipeline が今までの作り方から生まれ変わり 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 などを使って解決しようと思いました。 (ヨガのレクチャー受けてるときはポーズになんの効果あるかとか説明ありそうですけどね、まだ受…

Speech Service の Speech To Text で音声をコンソールに表示する ( Azure Cognitive Services )

Microsoft Inspire で HoloLends 使った翻訳デモがあったりして盛り上がりを感じたので久々に触ってみようと思いました。 今回は、話した音声を Speech to Text でテキスト化して表示するコンソールアプリを作ります。 プロジェクト作成と Nuget のインスト…

Azure DevOps と Teams でプルリクとかの通知の連携を設定する

Slack から Teams に移行しようとずーっと思って一年以上がたってしまい、会社のチームでようやく使い始めました。超今更感ですが Azure DevOps の通知を Teams で受けれるよう連携の設定をやります。 Azure DevOps の Dashboard または Kanban board の追加…

TensowFlow の学習モデルを C# で読み込む(コンソールアプリ編)

犬種の画像分類の学習モデルを C# のコンソールアプリに組み込みんで画像分類できるようにします。 Azure の Custom Vision で画像の分類器を秒殺で作成することで(盛りました、作成に数分くらいです)、TensorFlow の画像分類のモデル作成のターンでは、機…

Azure Functions V2 ドキュメントリンク(入門者 向け)

Azure Functions (C#) を仕事で使いたいなーと思っている入門者方向けに、(私個人的に最低限ここは把握しておいてほしいと思っている)公式ドキュメントのリンク集です。 慣れないと公式ドキュメントを見ても量も多くて迷子になるので、(個人的に)最初に…

Azure Functions V2 の Startup.cs で appsettings.json を読み込む(2019年5月バージョン)

前回書いた Azure Functions の DI の方法だと、ASP.NET Core ではよく使う appsettings.json の読み込みがデフォルトで設定されていません。 local.setting.json ローカルデバッグ用の環境変数の設定はできるけど、 で困るのは Array とか object に対応し…

Azure Functions V2 での DI ( Dependency Injection ) : 2019年5月編

気づけば Azure Functions V2 のC#で DI ( Dependency Injection )が正式にサポートされましたね。依存性の注入とか依存関係の注入とか、MSのドキュメントだと依存関係の挿入とかってやつです。 実装のざっくりな要点は以下だと思ってます。 Startup.cs で D…

ノーコーディング で QnA Maker のチャットボットを作る: 2019/04編 (Bot Framework v4 Template for QnA Maker)

2019年4月に Bot Framework v4 Template for QnA Maker が更新され、QnA Maker と Bot Service を使ったチャットボットをサクッと作れるようになりました。試してみます。 リリースされたばかりで多少の罠とか縄とかありますが、そのうち改善されるでしょう…

Azure Bot Service で作成した Echo Bot (SDK V4.3.2)のソースをローカルでデバッグしたら 500 エラー

最近(2019/4ごろ) Azure Bot Service でチャットボットを作成してソースをダウンロードし、デバッグしても動かないということがあったのでちょっと調べてみました。 このエラーの対処もまた色々な変更ですぐに対処方法が変わるでしょうけど、メモしておきま…

Bot Channel のコールドスタート対策( Azure Bot Service )

Azure Bot Service では、WebChat とか外からの接続は Bot Channel 経由でなります。 WebChatとかだとここが Cold Start するので、たまーにアクセスすると初回のみ遅くて残念(一昔前よりはだいぶ早くなったけど!)。 ならば定期的にヘルスチェックして Co…

Azure Cosmos DB の一意キー制約(Unique Key Constraints)

Cosmos DB の一意キー制約(Unique Key Constraints)について、実装方法やエラー時の挙動を調べたメモです。 いきなり余談ですが、 一昔前に Cosmos DB で Collection と呼ばれていたものは、Azure の Portal だとまだ "Collection" と表現されていますが、…

Azure Cosmos DB Emulator を使ってみた(2019年2月編)

ローカル環境だけで開発が進めれるよう Azure Cosmos DB Emulator があります。 接続文字列は固定なので、ASP.NET Core で使うなら appsettings.Development.json とかに直接接続文字列書いたりも許容範囲化と思いますし、便利に使えそうだと思っています。 …

Azure DevOps の Wiki で使える 絵文字 チートシートとマークダウンのシンタックスガイド

いつも探すのに数秒手間取るのがイラっとするので、リンクのメモです。 (手間取るならブックマークでもつけておけよ感ありますが....)

Azure DevOps : master ブランチだけは削除できないように権限設定

Azure DevOps の Repos で、 master は削除できない master ブランチ以外は削除できる(Pull Request の Complete の時とか) という権限設定をするときのメモです。 PR を merge するときにブランチ消したいので削除権限は必要だけど master だけは削除でき…

Azure Functions プロキシ のレスポンスのオーバーライド( responseOverrides )で Json を返す

Azure Functions Proxies の機能のひとつに、リクエストを backend の url に送信せず、定義しておいたレスポンスを直接返すことができます。backend が用意できてないけどクライアント側の都合でどうしても通信したいときにサクッと使えます。 公式ドキュメ…

Release Pipeline 作成時 Azure Subscription の 認証 エラー 時の解決方法 ( Azure DevOps )

Azure DevOps で Release のパイプラインを作成する際、サブスクリプションを選択して Authorize する必要がありますが、認証できないトラブルに遭遇している方をちょいちょい見かけます。 「error insufficient privileges to complete the operation」とい…