このページの本文へ

FIXER cloud.config Tech Blog

超イケなAzure Durable Functionsで非同期HTTP APIをつくっちゃお😎

2022年12月20日 11時10分更新

文● りぃぽぽ/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「超イケなDurable Functionsで非同期HTTP APIをつくっちゃお😎」を再編集したものです。

 みなさんお久しぶりです✨

 最近、増量超えて太っちゃったりぃぽぽです!笑

 さてさて、みなさんはDurable Functionsって聞いたことありますか?

 わたしは最近業務で知りまして、Durable Functionsがイケすぎて感動したので、今回はDurable Functionsについて備忘録的におはなしできたらな、と思います!✨

💛 Durable Functionsってなにもの🙄

 Durable Functionsは、サーバーレス コンピューティング環境でステートフル関数を記述できるAzure Functionsの拡張機能です。

 って...何言ってるかわかんないですよね😥

 私も最初は公式ドキュメント読んではてながいっぱい頭に浮かんでいました笑

 まあざっくり言いますと、Azure Functionsで書くと複雑になりがちな並列処理や関数チェーンなどなどを短いコードで簡単にサーバーレスで書けちゃうよ!

 ってな感じの天才的なやつなんです✨

💛 Durable Functionsでできること

 Durable Functionsでできることをこの記事でも軽くご紹介しますね😎

関数チェーン

 複数の関数が特定の順序で実行できます。

 ある関数の出力が別の関数の入力に適用されるわけです。

ファンアウト/ファンイン

 複数の関数を並列で実行して、すべての関数が完了するまで待機するという操作ができます。

 複数の関数から返される結果に基づいて集計作業が行なえるんですね。

非同期 HTTP API

 外部クライアントとの間の実行時間の長い操作の状態を調整することができます。

 実際に業務で使用した際も、外部クライアントとの間でタイムアウトしてしまって、Azure FunctionsからDurable Functionsに移行したっていう経緯でした👀

💛 マイメンすぎる3つの関数

 Durable Functionsで非同期 HTTP APIをつくるにあたって、避けては通れない3つのマイメンがいるのでご紹介します✨

※ 詳細はドキュメントをみてね💗

クライアント関数

 エントリーポイントになる関数です。

 HTTPをトリガーにしてオーケストレーションを起動します。

 オーケストレーター関数をトリガーするだけでなく、実行中のオーケストレーションと対話できます。

オーケストレーター関数

 アクションの実行順序を管理する(アクティビティ関数を制御する)関数です。

 ひとつのオーケストレーター関数にアクティビティ関数や外部イベントの待ち受け、HTTP タイマーなど、いろんなアクションを設定できます!

 コードの記述方法に厳密な制約があるので注意⚠

アクティビティ関数

 アクションを実行する(個々の処理を行なう)関数です。

 ネットワークの呼び出しやCPU負荷の高い操作によく使われるみたいで、オーケストレーター関数に値を返すことができます。

3つの関連イメージ

 3つの関数の関連性はざっくりですが、以下図の通りです。

 こうやってみるとなんとなーくイメージがわいてきますよね!✨

全体イメージ

💛 非同期 HTTP APIをつくっちゃいHowTo😎

 ここまで理解できればもう完璧✨

 Durable Functionsマスターへの道もすぐそこです😎🤙🏾

 それでは早速、Durable Functionsで非同期 HTTP APIをつくっちゃいましょ~💗

 Visual Studioがサクッと自動でつくってくれちゃう天才的なことをやってるので、今回はその方法でつくりましょう!

1. 新しいプロジェクトの作成

 まずは、新しいプロジェクトを作成しちゃいましょう!

 プロジェクトのテンプレートはAzure Functiosを選択してください。

2. 新しいアプリケーションの作成

 つぎはAzure Functiosのアプリケーションを作成しましょう。

 このとき、Durable Functios Orchestrationを選択してくださいね。

3. 完成✨

 これでデフォルトのDurable Functiosが作成できちゃいました✨

 あとは自分の好きなようにあそんじゃいましょう😎

 ちなみに、デフォルトだとHTTP Triggerでオーケストレーションが開始されているようになっているので、 これで非同期 HTTP APIができちゃってます笑

Durable Functionsをマスターしてみんなでイケになっちゃお~🧚🏾‍♀️🤙🏾

 ここまでこれたみんなはDurable Functiosマスターだっ✨

 最初に紹介した通り、Durable Functiosではいろんなことできちゃうので、ぜひぜひ、今年中にチャレンジして超イケに今年を締めくくってみてはいかがでしょうか😎

りぃぽぽ/FIXER
高専卒、FIXER新卒1年目👑
駆け出しエンジニア✨
エンジニア界のNo.1ギャル!!!

[転載元]
 超イケなDurable Functionsで非同期HTTP APIをつくっちゃお😎

カテゴリートップへ