BEACHSIDE BLOG

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

Azure Functions

.NET8 での Azure Functions の開発を始めるための準備 ( C# )

Azure Functions 開発入門として、.NET のバージョンが更新する度に Visula Studio 2022 での恒例の作業のなった Azure Functions のツールセットの更新の方法の話です。 Azure Functions に新しい .NET のバージョンが選べない?! 更新前の状態で Visual Stu…

Durable Functions で instanceId を確認したい (C# / Typescript / Python)

Durable Functions でたまに instanceId を取得したいときがあります。例えば Activity function で external Event の URL を作りたいときとか。私的にはあまり使わない Durable functions の Python ではどうだっけって気になったので、C# と Typescript …

HttpTrigger の Azure Functions でパスやリクエストヘッダーの値を使って DI する (C#)

今回は C# の Http Trigger の Azure Functions の DI する際の Tips です。 例えば、こんなパス /api/costomers/abc123/order にアクセスする際、abc123 が顧客の ID でその値を使って DI したいときとかの話です。後述しますがなんでも DI した方がいいっ…

Cosmos DB Change Feed の Azure Functions (C#) 実装入門 2023 年編 (Function App / Cosmos DB Trriger)

2022年の後半に Microsoft.Azure.WebJobs.Extensions.CosmosDB の v4 が GA して実装方法も改良されたので、ここで改めて Cosmos DB の Change Feed の開発方法 ≒ Cosmos DB Trigger の Function App の実装の基礎や Tips を書いていきます。 なお、Change F…

Azure Functions のローカルデバッグ時に LogLevel を変えたい

Azure Functions で、本番環境でのログレベルと、ローカルの PC でデバッグでログレベルは変えたいときにどう設定するかのお話です。 2021年7月時点で C# の Azure Functions v3.x (バージョンに関する詳しいことはここ)での話です。 ログレベルの設定は、…

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

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

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

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

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

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

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

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

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

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…

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

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

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

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

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

Azure Functions V2 の Release pipeline の作成その2です。前回はローカルにデプロイしましたが、今回は Blob にデプロイするバージョンです。前回より実践的な方法となります。 ただ、2018年12月時点だと Azure DevOps で Azure Functions V2 の Run From …

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 する方法のメモです。前回作成したプロジェクトを使って進めていきます。

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

Azure Functions v2 の Zip デプロイと Run From Package についての整理です。 今回は、サンプルプロジェクトの作成、Visual Studio から Zip Deploy の実行方法と、Run From Package の基本的な動作についてのメモです。 Azure Function V2 (C#) で Run Fr…

Azure Functions に IP アドレス 制限 をかける (2018/03)

以前、Functions で IPアドレスの制限かけれるようにしてって Feedback したのですが、ステータスが Completed にupdateってメールが来てました♪ 自身の Feedback を対応して頂けたので、設定方法 -2018/03版を紹介します。

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…

QnA Maker と Azure Bot Service を連携(して QnA Makerの閾値を変更)その2

ここでは、Azure Bot Service を作成し、前回作成した QnA Maker と連携してみます。 Bot Service を QnA のテンプレートで作成した際、回答の精度を示すスコアが特定の 閾値 より低い場合、回答を返さない(正確には「No good match in FAQ.」と返します)…

Web Apps / Azure Functions を Https のみに 設定 する

App Service の Web Apps で HTTPS を強制する設定が、 Azure Portal で設定可能になってます。2017-11のアップデートですね。 また、Azure Functions でも Azure ポータルから設定できるようになっています。App Service Planだけでなく、従量課金プランで…

Azure Functions を HTTPS のみでのアクセスにする

前回の投稿「Azure Functions に IPアドレス制限をかける」ことができたということは、HTTPのリクエストは受け付けず(リダイレクトして)HTTPSのアクセスのみにすることができますよネ...ということで試しました。 前回のやり方で対応するので(2017年5月の…

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. …

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

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