Azure Functions v2でリモートデバッグしたい

Visual Studio 2017を使ってAzure FunctionsにデプロイしたFunctionのリモートデバッグをしたいことってありますよね。
最近Azure Functionsのランタイムもv2になって.NET Coreが使えるようになりましたが、v2ランタイム上で動作する.NET CoreなFunctionをリモートデバッグしようとしてもシンボルがロードされず、ブレークポイントも無視されます。

症状的には以下のような感じ。

続きを読む

Visual Studio 2017 Update 3 / .NET Core SDK 2.0 他いろいろ

でました。

Visual Studio 2017 Update 3 (15.3)にあわせて.NET Core 2.0 / .NET Standard 2.0 / ASP.NET Core 2.0 / Entity Framework Core 2.0などがリリースです。
またVisual Studio for MacもUpdateがあるみたいですね。

関連してAzure Functions Toolsも正式対応かな。(以前はPreviewなUpdate 3でのみ対応だったので)

なおUpdateするにはVisual Studio Installerを起動して更新すればよいかと思います。(VS本体の通知にはまだ来てなかった)

Azure Functions の OpenAPI 2.0(Swagger)サポート [Preview]

Azure Functions にはもともとAPI定義(API Definition)という機能があって、外部のどこかにOpenAPI 2.0(Swagger 2.0)の定義ファイルを置いてそのURLを登録できる機能がありました。(特に連携などなし)
今回追加されたPreview機能ではその機能に追加して定義されているHttpTriggerなFunctionから自動的にSwagger2.0な定義ファイルを生成・テストできる機能が増えました。

詳細は公式ドキュメントに概要・手順が載っていますのでそちらをどうぞ。

続きを読む

Azure Functions で EXEを実行する

普通にできたので。

例えばFunctionのフォルダ内にBinフォルダとかを作成してEXEをUploadします。呼び出しは普通にできるので.bat(Batch)とかでFunction作ると楽ですね。
後はbinをPATH環境変数に追加もしくはフルパス指定でEXE呼べばいいです。

例: ffmpegで動画ファイルから音声だけ抜き出す

echo OFF

set PATH=bin;%PATH%

ffmpeg.exe -i %inputBlob% -ac 1 -ar 16000 -acodec pcm_s16le -f wav %outputBlob%

BindingしたBlobなどは環境変数にパスが入るので、そこに対して読み書きすればいいだけです。
フルパスの場合は D:\home\site\wwwroot\<function名>\  なので適宜どうぞ。

まぁAzure Functionsのプラットフォームが今のところWindowsなのでEXE動かせますけど。。用量・用法を守ってご使用ください。

Azure Functions でJavaを使う

というドキュメントがUpされていました。

ドキュメントはこちらです。

かいつまんで説明すると、Azure Functions上にはJavaの実行に必要なものが一通りあるのでBatch(.bat)などからjavaコマンドで.classまたは.jar指定して呼び出すだけ、となります。

続きを読む

Azure Functions のプリコンパイルサポート

.NETなFunctionsの場合、プリコンパイルがサポートされました。簡単にいうと.csxじゃなくてコンパイル済みアセンブリ(.dll)を指定することで動的コンパイル処理をスキップすることができるようになりました。

 

続きを読む

Azure Functions のローカル開発

Azure Functions をローカルで開発するためのツールが2種類出ました(1つは結構前からですけど)

細かい話は本家Blog等を参照ください。

またこちらのBlog、動画も参考にどうぞ。

続きを読む