Oracle Cloud Infrastructureドキュメント

Oracle Functionsの概念

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

ファンクション開発者

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

「Oracle Functionsで使用するグループおよびユーザーの作成(存在しない場合)」も参照してください。

アプリケーション

Oracle Functionsでは、アプリケーションは次のようになります:

  • ファンクションの論理グループ
  • アプリケーションのすべてのファンクションで使用できる構成変数を格納するための共通コンテキスト

Oracle Functionsでアプリケーションを定義する場合は、そのアプリケーションでファンクションを実行するサブネットを指定します。

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つまたは複数のトリガーに関連付けることもできます。