Oracle Functionsの概念

このトピックでは、Oracle Functionsを使用する際に理解しておく必要がある主要な概念について説明します。

ファンクション開発者

Oracle Functionsを使用してファンクションを作成およびデプロイするOracle Cloud Infrastructureユーザーは、「ファンクション開発者」と呼ばれます。Oracle Functionsを使用するには、ファンクション開発者はOracle Cloud Infrastructureユーザー・アカウントを持っている必要があります。そのユーザー・アカウントは、適切なポリシーによりファンクション関連リソースへのアクセス権たが付与されたグループに属している必要があります。

Oracle Functionsで使用するグループとユーザーの作成を参照してください(まだない場合)。

アプリケーション

Oracle Functionsでのアプリケーションは:

  • ファンクションの論理グループ
  • アプリケーションのすべてのファンクションにリソースを割り当てて構成する方法
  • アプリケーション内のすべてのファンクションで使用できる構成変数を格納する共通コンテキスト
  • ファンクションの実行時分離を保証する方法

Oracle Functionsでアプリケーションを定義するときは、アプリケーションでファンクションを実行するサブネットを指定します。アプリケーションのファンクションのロギングを有効にするかどうかも指定します。

様々なアプリケーションのファンクションが同時に呼び出されるとき、Oracle Functionsによって、それらのファンクションの実行が互いに分離されることが保証されます。

ベスト・プラクティスは、効率性とパフォーマンスを向上させるために、複数のファンクションを1つのアプリケーションにグループ化することです。

Oracle Functionsでは、コンソールにアプリケーションとそのファンクションが表示されます。

アプリケーションの作成を参照してください。

ファンクション

Oracle Functionsでのファンクションは:

  • 小規模だが強力なコード・ブロック(通常は1つの単純な処理を実行)
  • アプリケーションにグループ化される
  • 指定したDockerレジストリにDockerイメージとして格納される
  • CLIコマンドまたは署名付きHTTPリクエストに応答して呼び出される

Fn ProjectのCLIを使用してOracle Functionsにファンクションをデプロイする場合、そのファンクションはDockerイメージとして作成され、指定されたDockerレジストリにプッシュされます。

ファンクションの定義は、Oracle Functionsサーバーにメタデータとして格納されます。この定義ではファンクションの実行方法が説明されており、次のものが含まれます:

  • ファンクションの呼出し時にプルするDockerイメージ
  • ファンクションを実行できる最大時間
  • ファンクションで消費できるメモリーの最大量

Oracle Functionsでは、コンソールにファンクションとそのグループ化の先となるアプリケーションが表示されます。

Helloworldファンクションの作成、デプロイおよび呼出しを参照してください。

呼出し

Oracle Functionsでは、ファンクションのコール(または呼出し)時にファンクションのコードが実行されます。Oracle Functionsにデプロイしたファンクションを次により呼び出すことができます:

  • Fn ProjectのCLI。
  • Oracle Cloud Infrastructure SDK。
  • ファンクションの呼出しエンドポイントへの署名付きHTTPリクエスト。すべてのファンクションに呼出しエンドポイントがあります。
  • その他のOracle Cloudサービス(イベント・サービスでイベントによりトリガーされるなど)または外部サービス。

ファンクションが初めて呼び出されると、Oracle Functionsは、指定したDockerレジストリからファンクションのDockerイメージをプルし、Dockerコンテナとして実行してファンクションを実行します。同じファンクションに対する後続のリクエストがある場合、Oracle Functionsは、それらのリクエストを同じコンテナに送ります。アイドル時間が経過すると、Dockerコンテナは削除されます。

Oracle Functionsでは、メトリック・チャートでファンクションの呼出しに関する情報を示します。

ファンクションの呼出しを参照してください。

トリガー

トリガーは、システム内の他の場所にあるアクションの結果であり、Oracle Functions内のファンクションを呼び出すリクエストを送信します。たとえば、イベント・サービスのイベントによって、トリガーがOracle Functionsにファンクションの呼出しを行うように送信される場合があります。また、トリガーにより、定義された時間ベースのスケジュールでファンクションを呼び出すように通常のリクエストを送信することもできます。

ファンクションはどのトリガーにも関連付けられていない場合や、1つまたは複数のトリガーに関連付けることができる場合があります。