BEACHSIDE BLOG

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

C#

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月頃に書きかけてから、書くほどのことでもないなーと放置してたブログを更新しました...あの頃…

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

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

TensowFlow の学習モデルを C# で読み込む( ASP.NET Core 編)

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

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

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

ASP.NET Core の インメモリー キャッシュ 機能を使う

ASP.NET Core 2.2 で In-Memory にデータをキャッシュしておくための専用の機能のひとつ、System.Runtime.Caching/MemoryCache の使い方について軽く整理してみました。 In-Memory キャッシュの利用ガイドライン コーディング Nuget Package のインストール …

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

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

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

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

Azure Function V2 (C#) で Run From Package の CICD と Azure DevOps (3/4)

今回は、Zip デプロイ・Run From Package の CI/CD パイプラインを作ります。具体的には、Azure DevOps 上で Build Pipelines と Release Pipelines を構築します。 以前の回で作成した Azure Functions V2 のプロジェクトを使ってやります。

Azure Function V2 (C#) で Run From Package の CICD と Azure DevOps (2/4)

今回は Azure Function Core Tools の CLI を使って Blob Storage へ Zip デプロイ、Run From Package する方法のメモです。前回作成したプロジェクトを使って進めていきます。

Bot Builder V4 開発入門 : C# : 会話ログ を Blob Storage に保存

Bot Builder V4 での会話ロギングを、Nuget パッケージ: Microsoft.Bot.Builder.Azure でサクッと実装する方法のメモです。

Bot Builder V4 (v4.0.7) 入門 ハンズオン (2018-09-27版)

Bot Builder V4 (v4.0.7) のハンズオンを、日本マイクロソフトが運営している Azure Antenna で9/27にやらせて頂きました。 azure.connpass.com ハンズオンコンテンツは、以下になります。 ご興味がありましたら遊んでみてください♪ github.com

Bot Builder V4 (4.0.1-preview) 開発入門 : C# : State の保持

2019-10追記: 2018年9月末に GA したバージョン V4.0.7 で、破壊的変更が多かったためこのバージョンと互換の無い部分があります。バージョンにご注意くださいね。 State は、外見だけなら V3 からあまり変更はないですが...さらっと整理しておきます♪ 手順…

Bot Builder V4 (4.0.1-preview) 開発入門 : C# : 準備編(Azure Bot Service / Microsoft Bot Framework)

2019-10追記: 2018年9月末に GA したバージョン V4.0.7 で、破壊的変更が多かったためこのバージョンと互換の無い部分があります。バージョンにご注意くださいね。 2018年7月時点で Bot Builder v4 は プレビュー中(Microsoft.Bot.Builder.Core v4.0.1-prev…

Bot Builder v4 (4.0.1-preview) SDK のメモ: UseBotFramework() とか(2018-07版)

Bot Builder SDK v4 のサンプルコードを見ると、V3 までの仕組みとして存在した ASP.NET の Controller から...という実装が無くなっています。 じゃー ASP.NET Core で Middlewareでなんかやってるんだろなって想像はつきますが、気になったのでちょっと調…

ASP.NET Core の TempData (ASP.NET Core 2.1 ~)

ASP.NET Core(2.1)で TempData の動作確認しようと思った際のにメモです。

Azure Functions の バインディング - Binder 編

Azure Functions では、関数の出力するデータをBlob や Queue に投げる処理を簡単にプログラムで書くことができます。 実装方法として、 宣言型のバインディング( declarative binding ) 命令型のバインディング( imperative binding ) があります。 今…

Azure Functions - Queue トリガーの キュー の 接続文字列

Azure Functions の Queue Trigger で、キューの ConnectionString のメモです。 たまーに新規に Queue Trigger 作るとき、後述する 余談 が気になって試して時間を浪費している気がしたので..メモっておきました。 環境 Visual Studion 2017 で C# ( C# scr…

AWS Lambda から CloudWatch Events を呼ぶ

AWS Lambda から CloudWatch を呼ぶ際の実装メモです。 (2017/10月時点 =.NET Core 1.0しかサポートしてない時点の話です) Overview 1 開発環境の準備 (その1) 2 .NET Core 1.0 対応の .NET Standard 1.6 のクラスライブラリの作成(その1) 3 簡易なク…

C# HttpClient の小ネタ(Content-Type、Basic / OAuth2 認証とか)

たまにはC# ビギナー向けネタとして、以下のHttpClient のTipsを。 Content-Typeの設定 Basic 認証 OAuth2 認証 その他...

C# HttpClient の Mock でFake のレスポンスを返す in 単体テスト

単体テストでHttpClient のMock的なので Fakeなレスポンスを返す時の方法のメモ(..というか聞かれたので答えた内容書いたってお話です。) 今回の単体テストする対象クラスは以下の想定です。 とあるビジネスロジックがあるクラスの中に HttpClient がいて、…

C# で AWS Lambda から 別の AWS Lambda を呼ぶ

AWS Lambda から AWS Lambda を呼ぶ際の実装メモです。 (2017/10月時点 =.NET Core 1.0しかサポートしてない時点の話です) Overview 1 開発環境の準備 (その1) 2 .NET Core 1.0 対応の .NET Standard 1.6 のクラスライブラリの作成(その1) 3 簡易なク…

C# で API Gateway から Lambda - プロキシ統合 の使用とか

API Gateway から Lambda を呼ぶ際の設定、Lambda プロキシ統合 の使用有無時の実装などをメモ。 (2017/10月時点での話=.NET Core 1.0しかサポートしてない時点です) Overview 1 開発環境の準備 (その1) 2 .NET Core 1.0 対応の .NET Standard 1.6 のク…

AWS Lambda を .Net Core と ( .NET Standard と) C# で実装 ~ 環境変数 の読込む

引き続き AWS Lambda を C# で、.NET Core 1.0、.NET Standard 1.6 を使って実装する際のメモです。 環境変数の取り扱いについてです。 (2017/9月時点での話=.NET Core 1.0しかサポートしてない時点です) Overview 1 開発環境の準備 (その1) 2 .NET Cor…

AWS Lambda を .Net Core と ( .NET Standard と) C# で実装する(その1)

AWS Lambda を C# で、.NET Core 1.0、.NET Standard 1.6 を使って実装する際のメモです。 (2017/9月時点での話=.NET Core 1.0しかサポートしてない時点) Overview 1 開発環境の準備 2 .NET Core 1.0 対応の .NET Standard 1.6 のクラスライブラリの作成 …

Bot Framework で State を CosmosDB ( DocumenDB ) に保存する - C#

Bot Framework の State を CosmosDB に保存する方法のメモです。 前回、State を 安価な Table Storage に保存しましたが、多少使いにくかったり遅かったりします。その対極(?)、高価で使いやすくて速い CosmosDB のターンです。 (個人的感覚です) 今…

Bot Framework で State を Table Storage に保存する

前回、ステート管理の概要を整理したので今回は実装編です。Azure の Table Storage に保存します。 事前準備としては、 以前に作った「会話のログを Table Storage に出力するアプリ」を使って拡張していきます。 Azure の Table Storage もその時に作った…

チャットボットの会話のログを Table Storage に出力( Bot Framework )

今回は Azure の Table Storage に、チャットボットの会話のやり取りをロギングする方法を整理します。 前回は、ログ出力の重要な要素、IActivityLogger インターフェースについて概要を整理しました。それを応用して…と言いたいところですが、Nuget で用意…