BEACHSIDE BLOG

MicrosoftとかC#を好むレンジャーの個人的メモ

C#

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 で用意…

Bot Framework のメッセージ を ログ するための IActivityLogger ( C# ) の概要

ボットとユーザーの会話のロギングに便利な IActivityLogger インターフェースのメモです。 まず最初にまとめですが、IActivityLogger インターフェースを実装したログの出力クラスを定義しておけば、ボットがメッセージを受け取ったときや送信したときに、…

ASP.NET Core の SPA の Template が動かない(dist のフォルダーが作られない)

事象の再現方法は、 ASP.NET Core の SPA の Tempates から Angular のプロジェクトを作成(ここでは正常に動きます) GitHubやVSTSにPushする。 (別の人が)リモートからクローンしたソースをデバッグでエラーが出て動かない というものです。 ちなみに.NET…

グローバルメッセージハンドラー (2/2) - Bot Frameworkの基本機能 (global message handlers using Scorables)

前回から引き続き、本題の Scorables の実装です。 Overview 0. Scorables とは (前回) 1. デモ用ボットの作成(前回) 2. 簡易なScorableの実装(今回はココから!) 3. DIの実装 4. Scorableの実装からDialogへ 5. Scorableの実装の注意点

グローバルメッセージハンドラー (1/2) - Bot Frameworkの基本機能 (global message handlers using Scorables)

Bot Framework で開発するときに使うであろう基本機能、Scoralbles をC#で実装関連のメモです。 通称(?)global message handler でドキュメントやGitHubに載っていて、Scorables を使って実装するやーつです。 Overview 0. Scorables とは 1. デモ用ボッ…

Cognitive Services のSDK有無 @201707

ちょっとしたきっかけから Cognitive Services のSDKの有無について、2017年7月時点での情報を整理してみました。 注意 SDKがあって公開されているものは基本的にgithubのリンクをつけていますが、ドキュメントのリンクの場合もあります。 〇はSDKのソース、…

Typing indicator の送信 - Bot Framework の基本機能

Typing indicator は、文字の入力中に出てきそうなあれです。 Bot Framework では簡単に実装ができるので、実装しておくといい感じになるでしょう(最後に残念なオチがありますが…) 今回の実装はもちろんC#ですが、Nodeでももちろん同じことができます。

Face APIのDotnetCore版 Client SDK でFaceAttributeを全て取得できるようにする

Face API の Client SDK(.NET Core版)だと、現状ではCognitive Services のAPIで公開されているFaceAttributeの一部しか取得できないです。 FaceAttributeについて具体的には、前回の記事内の、Face APIの概要のfaceAttributesです。もちろんEmotionも取得…

Azure Functions に IPアドレス制限をかける(2017/04版)

2018/3 更新: 機能が追加されたので、以下を参照ください♪ beachside.hatenablog.com (↓↓↓ 以下は古い情報です! ↓↓↓) 2017年4月の現時点では「従量課金プラン」ではできないです。 「AppServiceプラン」でやる必要があります。むむ。 今回はこの方法の手…

OpenAPI 2.0 (Swagger) を Azure Functions で定義する

OpenAPI 2.0 (Swagger) を Fucntion App で定義する際のメモを書きました。 Overview AzureポータルでFunctionAppを作って、 OpenAPI 2.0 (Swagger) を利用してAPIの定義を作り、動作確認する流れです。 1. FunctionApp の作成 2. API Definition の作成 3. …

.NET Core と xUnit でライブユニットテスト(的なやつ)

Visual Studio 2017のEnterprise限定のライブユニットテストの話ではなく、VS2017であればどのバージョンでも(たぶん)使えるライブなユニットテスト(的なやつ)です。 Microsoft.DotNet.Watcher.Toolsを使い、コマンドプロンプトでwatchしてtest結果を見…

React も Angular も ASP.NET Core で Get Started♪

2017年2月の .NET Core SDK が 1.0 RC4 に更新 されたことで、プロジェクトを作成するコマンド dotnet new がちょっと変わりました。 dotnet new コマンドで今まで作れたプロジェクトテンプレートに加えて、以下のSingle-Page Applications(SPA)のカスタム…

DocumentDB - リソーストークンを使ったアクセス - 2/2 ( Access to DocumentDB with resource tokens )

前回から引き続きで、以下のイメージを実装したものを動かしてみるところからです。(図はこちらから引用)。 結局のところ、今回書いた認証サーバーの役割をするAzure Functionsの実装と、最後に載せてるクライアント側を想定したコンソールアプリクラスが…