※ 本記事は、Winston Linによる”Introducing Long-Running Functions and Response Destinations with OCI Functions“を翻訳したものです。

2026年1月7日


OCI Functionsに、2つの強力な新機能が一般提供されたことをお知らせします: 

  • Long-Running Functions – detached modeで最大60分間実行
  • Response Destinations – Streaming、Queue、Notificationsで成功と失敗の結果を自動的に取得

これらの機能により、OCI上のサーバーレス・ワークロードの長年の制限を取り除き、新しい自動化パターン、データ・パイプライン、統合シナリオを解き放ちます。開発者は、ポーリング、cronジョブまたはカスタム・オーケストレーションなしで、長時間にわたるタスクを処理し、イベントドリブンなワークフローを構築できるようになりました。結果を単に後続処理にルーティングして、クリーンでスケーラブルな自動化を実現できます。

Long-Running Functions: 5分を超えて

これまで、OCI Functionsは最大5分の実行をサポートし、軽量な自動化に最適でしたが、ワークロードの重さは制限されています。Long-Running Functionsでは、detachedModeTimeoutInSecondsフィールドを最大60分(3600秒)に設定し、連結解除モードで関数を呼び出すことで、実行を1時間に拡張できるようになりました。これにより、複雑なジョブを複数の連鎖呼出しに再設計することなく、サーバーレス・インフラストラクチャにオフロードできます。

ユース・ケースの例

  • AI/ML推論または準備 – より小さなチャンクに分割することなく、大規模なモデル・スコアリングまたはデータ準備タスクを実行します。
  • ファイル処理とETL – 変換、圧縮または複数ステップのデータ取込みパイプラインを処理します。
  • バッチ・ジョブとビジネス・ロジック – スケジュール済調整、財務計算またはコンプライアンス・レポートを実行します。
  • サードパーティ統合 – 数秒で完了しない長いAPIコールまたはワークフローを調整します。

また、これらは依然としてOCI Functionsで実行されるため、インフラストラクチャ管理、自動スケーリング、従量制の価格設定など、サーバーレスのメリットを維持できます。

*Long-Running Functionsでは、切り離された起動が必要です。同期起動タイプと連結解除起動タイプについてさらに参照ください

Response Destinations: 常に結果を知る

長時間実行のタスクまたは非同期タスクを実行すると、課題が生じます。ファンクションが終了した時に、どのようにして何が起こったのかを知ることができますか。そこで、Response Destinationsが登場します。ファンクション呼出しの結果は、別のOCIサービスに自動的に送信されます。関数が正常に完了した場合は、次のステップをトリガーしたり、結果マーカーを格納したり、ダウンストリーム・システムに通知したりできます。失敗すると、ステータス・コード、エラー・コード、メッセージなどのエラー詳細が表示され、問題を簡単に記録したり、チームにアラートを送信したり、再試行を調整できます。

宛先は成功と失敗に対して個別に構成でき、今日はStreamingQueueまたはNotificationsにルーティングできます。これにより、手動チェックや外部オーケストレーションなしで、ファンクションの結果をパイプラインまたはアラート・システムに直接接続することが容易になります。

はじめに: Long Running Functions 

ファンクションを5分を超えて実行できるようにするには、ファンクションの作成または更新時にdetachedModeTimeoutInSecondsフィールドを設定します。

コンソールの例

  • OCIコンソールでFunctionsサービスを開きます。
  • アプリケーションを選択し、「Create Function」をクリックします(または既存のアプリケーションを編集します)。
  • Detached invocation timeout (in seconds)」をクリックし、必要な値(最大3600秒)を入力します。
Console Create Function

CLIの例

oci fn function create \
  --application-id <app_ocid> \
  --display-name "long-fn" \
  --image "<image>" \
  --memory-in-mbs 256 \
  --detached-mode-timeout-in-seconds 1800
#Detached mode is required for long-running execution. Sync invocations will continue to use the default timeout.

はじめに: Response Destination 成功/失敗の構成

ファンクションが終了した時に自動的にステータスを受け取る宛先を構成することもできます。選択したNotifications、QueueまたはStreaming宛先に結果を書き込むために、Functionsアプリケーションに必要なIAMポリシーがあることを確認してください。これらの権限がない場合、宛先はステータス更新を受信しません。ポリシーの例と詳細は、デタッチされた呼出しの成功および失敗の宛先のIAMポリシーの作成を参照してください。

コンソールの例

  1. OCIコンソールでFunctionsサービスを開きます。
  2. アプリケーションを選択し、「Create Function」をクリックします(または既存のアプリケーションを編集します)。
  3. Success destination」または「Failure destination」フィールドを選択して、サポートされている宛先を表示します
  4. StreamingQueueNotificationsなどのサポートされているサービスを宛先として選択します
Console Configure Response Destination

CLIの例

宛先を記述する小さいJSONファイルを作成します:

success-dest.json 

{"kind":"NOTIFICATION","topicId":"<topic_OCID>"}

failure-dest.json

{"kind":"QUEUE","queueId":"<queue_OCID>","channelId":"failure-channel"}

CLI Creation

oci fn function create \
  --application-id <app_ocid> \
  --display-name "long-fn-with-dest" \
  --image "<image>" \
  --memory-in-mbs 256 \
  --detached-mode-timeout-in-seconds 1200 \
  --success-destination file://success-dest.json \
  --failure-destination file://failure-dest.json

今すぐ試す

Long-Running FunctionsとResponse Destinationsは、標準の実行およびサービス使用を超えて、追加コストなしで、すべての商用OCIリージョンで使用できるようになりました。これらの機能により、再設計せずに複雑なジョブを最終的に実行し、ポーリングやカスタム・コードのオーバーヘッドなしで非同期実行を可視化できます。OCI Functionsを今すぐ開始し、これらの新機能が、より応答性の高いイベントドリブンなワークフローの構築にどのように役立つかをご覧ください。

さらに学習するには、次のリソースを参照してください: