【Functions】HTTPトリガーのFunctionsへデータを渡す方法

JavaScript,Windows

こんにちは、しきゆらです。
今回は、タイトル通りHTTPトリガーへリクエスト時にデータを渡し、Functions側で受け取る方法をまとめます。
参考となるドキュメントは以下あたり。

最近以下の本が発売されました。
読んでいる途中ですが、これまでまとめたFunctions以外にもAzureを使った開発についての概要を俯瞰することができます。
Microsoftのドキュメントが読みずらい・・・と思っている方はこちらもぜひ。

Azureの知識地図 〜クラウドの基礎から実装・運用管理まで

Azureの知識地図 〜クラウドの基礎から実装・運用管理まで

土田 純平, 永田 祥平, 栗本 美穂, 石塚 航希, 乃村 翼, 草谷 一輝, 酒見 一幸
3,234円(01/10 11:51時点)
発売日: 2025/05/13
Amazonの情報を掲載しています

データを渡す方法

HTTPリクエストにおけるデータの渡し方としては、よくあるのが以下のパターンかと思います。
他にもパスパラメータというのもありますが、Functionsの場合は処理させたい関数ごとに分かれているはずなので、ここでは扱いません。

  • ヘッダーパラメータ
    • AuthorizationやContent-Typeなど
  • クエリパラメータ
    • リクエストのURLに付与する
  • リクエストボディ
    • JSONなどの文字列

トリガーに対してどのようなデータを渡すのかによって使い分けるのが良いとされていますが
一般的には特定のデータを処理する場合や処理の条件等の小さなデータを渡す場合はクエリパラメータ、
データを新規で作る・更新するなど大きなデータを渡す場合にはリクエストボディを使うようです。

詳しくはこの辺を参照していただければ。

Web API: The Good Parts

Web API: The Good Parts

水野貴明
2,420円(01/10 11:51時点)
Amazonの情報を掲載しています
Webを支える技術 ―― HTTP,URI,HTML,そしてREST WEB+DB PRESS plus

Webを支える技術 ―― HTTP,URI,HTML,そしてREST WEB+DB PRESS plus

山本 陽平
2,770円(01/10 12:49時点)
発売日: 2018/11/14
Amazonの情報を掲載しています

以下でいくつかの方法をサンプルコードを含めて紹介します。
ベースとなるコードはこれまでまとめていた、SharePointへファイルをアップロードするコードです。
詳しくはこちら。

クエリパラメータを取得する

トリガーのrequest引数から取得可能です。

const httpTrigger = (request: HttpRequest, context: InvocationContext) => {
        // 略
        const fileName = `${request.query.get("filename")}.txt`;
        const fileContent = "テキストファイルの中身";
        // 略
}

前回のコードではファイル名をFunctions内で決めていましたが、クエリとしてリクエスト側から指定できるようにする場合はこんな感じにするかと思います。

curlから呼び出すときは、以下のような感じで呼びます。

curl -X POST localhost:7071/api/httpTrigger1?filename=hogehoge

リクエストボディを取得する

リクエストボディもrequest引数から取得可能です。

const httpTrigger = (request: HttpRequest, context: InvocationContext) => {
        // 略
        const fileName = `result_${Date.now()}.txt`;
        const fileContent = JSON.stringify(await request.json());
        // 略
}

以前のコードはrequest.bodyで取得していましたが、JSONを送ると決めてしまえば専用のメソッドから取得が可能です。

curlから呼び出すときは、以下のような感じ。

まとめ

今回は、Functionsに対して外部から処理に対して値を渡す方法をまとめました。
おそらくFunctionsを開発するうえで基本的な情報は網羅できたのではないかと思います。

Azureの知識地図 〜クラウドの基礎から実装・運用管理まで

Azureの知識地図 〜クラウドの基礎から実装・運用管理まで

土田 純平, 永田 祥平, 栗本 美穂, 石塚 航希, 乃村 翼, 草谷 一輝, 酒見 一幸
3,234円(01/10 11:51時点)
発売日: 2025/05/13
Amazonの情報を掲載しています

今回はここまで。

おわり

Posted by しきゆら