SORACOM FluxのSORACOM APIアクションを試してみた

2024/10/23に公開

これは

2024/10/16に発表された、SORACOM FluxのSORACOM APIアクションを試してみました。

該当のサービス更新情報はこちらです。

https://changelog.soracom.io/ja/soracom-flux-ni-soracom-api-akusiyongazhui-jia-saremasita-1JXTX2

APIアクションとは

SORACOM FluxのAPIアクションは、Fluxアプリのアクションとして、SORACOMのほぼ全てのAPI(authなど使えないものもあり)を呼び出せる機能です。
API呼び出しは、指定されたSAMユーザの権限で実行されます。

作ってみる

それでは早速公式ドキュメントを参照しながら使ってみます。
今回はイベントソースをマニュアル実行にし、そこからAPIアクションが呼ばれ、その結果をslackで通知するという簡単なアプリを作ってみます。アプリの全体像は以下のようになります。

まずは、イベントソースを作成し、後続のアクションでSORACOM APIアクションを選択します。

SORACOM APIアクションの設定で、実行するAPIを選択します。今回はSIMの一覧(Sim:listSims)を選択します。

選択するとエンドポイントURLが自動で埋められます。
ただし、SORACOM APIアクションで処理できるレスポンスボディの最大サイズは 8192 バイトですので、SIM一覧の結果はそのままでは大きすぎますので件数を絞り込みます。ここではイベントソースで指定した件数をパラメータに渡すように設定します。
図のように、エンドポイントに?limit=${payload.limit}を追加します。

続いて、APIを実行するSAMユーザーを設定します。既存のSAMユーザーを選択することもできますが、ここは新しく作成します。

「新しく SAM User を作成する」を押すと、以下のように自動的にSAMユーザーが作成されて設定されます。

設定の下にあるリンクからこのSAMユーザの情報が確認できるので見てみます。
権限設定は、選択したAPIに対する権限のみが自動で設定されています。

また、信頼ポリシーにはFluxが指定されており、FluxアプリからのみこのSAMユーザーが利用できるようになっています。これによって、最小権限になっていることが分かります。

最後に、アクションの結果をslack通知アクションに渡します。slack通知アクションの設定では、とりあえず結果をそのまま渡すように、payloadには${payload}を設定します。

実行してみる

それでは早速実行してみます。イベントソースの「テスト実行」から、BODYに{"limit": 1}を設定して実行します。

しばらくすると、slackに結果が通知されました。

まとめ

SORACOM FluxのSORACOM APIアクションを使って、SORACOM APIを呼び出すアプリを作成してみました。

SORACOM APIアクションがあると、これまではSORACOM APIを呼び出すために一旦Webhookで外部APIを呼び出していた処理をFluxで完結させたり、イベントソース以外の複数のデータを組み合わせて処理をするようなことができるようになることが期待できます。
例えば、次のようなことが簡単に実現できるようになりそうです。

  • デバイスからのイベントで起動し、古いデータをHarvest Dataから取得してその内容と合わせてLLMで処理する
  • ソラカメのイベント検知で起動し、ソラカメのデータをエクスポートしてそれを処理する
  • これまでシェルスクリプト上でsoracom cliの出力を組み合わせていた処理をFluxで実現し、請求処理等を簡単にする

これはまさにFluxをUNIXパイプ的に使えるようになる素晴らしいアップデートだと言えそうです。
今後もFluxのアップデートに注目です。

GitHubで編集を提案

Discussion