本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

Azure Functions の環境構築

Azure Functions を使ってみようと思って環境を整えていました。そこで少しだけ手間取ったのでその記録を残しています。

開発環境

Visual Studio を使った方が色々と便利なのでしょうが、今回は Visual Studio Code (VS Code) を使って開発することに決めました。前提条件として、Azure Functions の処理内容は TypeScript を用いて記述することを考えており、開発 PC には Node.js がインストール済みです。

VS Code の機能拡張から、「Azure Functions」をインストールしました。

ここでインストールされる Azure Storage Emulator がやや古くて 5.7 がインストールされました。これが今試しに使ってみようと思っていた Timer Trigger との組み合わせで失敗したため、個別に更新を行いました。そのときのエラーメッセージは以下の通りです。

The listener for function 'Functions.TimerFunction' was unable to start. Microsoft.Azure.Storage.Common: The REST version of this request is not supported by this release of the Storage Emulator. Please upgrade the storage emulator to the latest version. Refer to the following URL for more information: http://go.microsoft.com/fwlink/?LinkId=392237.

書かれているURLから Storage Emulator のインストーラーをダウンロードできるのでこれをインストールしました。この記事を書いている時点では、バージョン 5.10.0 でした。

サンプルコードを実行してみる

新規にプロジェクトを作って、 “Timer Trigger” で生成されたコードが以下の通りです。

import { AzureFunction, Context } from "@azure/functions"

const timerTrigger: AzureFunction = async function (context: Context, myTimer: any): Promise<void> {
    var timeStamp = new Date().toISOString();
    
    if (myTimer.isPastDue)
    {
        context.log('Timer function is running late!');
    }
    context.log('Timer trigger function ran!', timeStamp);   
};

export default timerTrigger;

今回スケジュールスパンを聞かれたときには、 “0 */5 * * * *” を設定しているので5分間隔に関数が実行されるものを想定しています。 VS Code で F5 デバッグ実行をすると、以下の画像のようにスケジュールが設定され、指定された時間に関数が呼び出されるのを確認できております。

ちなみに起動する前には、スタートメニューから Azure Storage Emulator を起動しておく必要がありました。

余談など

Azure Functions でも Puppeteer や Playwright が動作可能になった、という情報を今更見つけたので試してみたくなり、今回の準備を始めた次第です。

以前 Google Cloud Function だったら Puppeteer が動くのにと諦めて妥協したネタを Azure Functions で動かすのを目標にしています。

とはいえ、最近の状況ではイベントのオフライン開催もなさそうですし、チェッカーが機能するのは割と先の話になるのかもしれないなぁと思っています。

プログラミング
すらりんをフォローする
すらりん日記

コメント

タイトルとURLをコピーしました