Azure Functionsで自作の外部ライブラリを使う

Visual StudioでAzure Functionsの関数を扱うときには、Functions用のプロジェクトを作成してデプロイしますが、別プロジェクトで作成した自作のライブラリを使うこともあると思います。

簡単な例として、足し算を行うライブラリと、それを用いて計算結果を表示するFunctionsで作ってみました。ライブラリとFunctionsは別のプロジェクトにしています。

ライブラリのコード

namespace Adder
{
    public class Class1
    {
        public static int Add(int a, int b)
        {
            return a + b;
        }
    }
}

 

Functionsのトリガーは何でもよかったのですが、簡単のため、キューをトリガーとして動作するようにしました。ライブラリを参照として追加しています。

Functionsのコード

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Adder;

namespace FunctionApp
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
        {
            log.Info($"1 + 2 = {Class1.Add(1, 2)}");
        }
    }
}

 

これでビルド、Azure環境にデプロイ、実行すると計算結果がきちんとログに表示されています。

[Info] Function started (Id=c86b54e4-5af4-4d1a-af28-116a6fb0af12)
[Info] 1 + 2 = 3
[Info] Function completed (Success, Id=c86b54e4-5af4-4d1a-af28-116a6fb0af12, Duration=2ms)

また、コンソールからディレクトリを見てみると、Functions用のDLLの他に、ライブラリ用のDLLがアップロードされていることが分かります。

特に難しくはないのですが、注意としてフレームワークを揃えることと、クラスライブラリのプロジェクトにすることです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です