OCI FunctionsとFn Projectの相違点

OCI FunctionsとFn Projectの相違点をご覧ください。

一般に、OCI FunctionsとFn Projectはよく似ています。ただし、後述のように、いくつかの相違点があります。

イメージベースの関数とコード専用関数

Fn Project関数とOCI関数の両方で、イメージベースの関数がサポートされています。イメージベースのファンクションの場合、ファンクションのコンテナ・イメージは、指定されたコンテナ・レジストリから取得されます。既存のDockerイメージからのイメージベース・ファンクションの作成を参照してください。

コードのみの関数は、OCI関数に固有です。コードのみの関数では、コンテナ・イメージを自分で作成および公開せずに、関数コードおよび依存関係を含む関数をアーカイブから作成します。OCI Functionsは、コード専用関数に管理対象ランタイムを使用します。Creating Functions from Archives (Code-only Functions)を参照してください

APIコール実行時の認証の相違点

OCI FunctionsでOracle Cloud Infrastructure APIを使用するとき、リクエスト・ヘッダーで次の内容を指定する必要があります:
  • ファンクションが属するコンパートメントのOCID
  • Oracle Cloud Infrastructure認証詳細

ファンクション呼び出し時の相違点

OCIファンクションにデプロイされているファンクションを呼び出すには、Oracle Cloud Infrastructureエンドポイントを明示的に指定する必要があります(Fn ProjectのCLIを使用していない場合)。

たとえば、https://fht7ns4mn2q.us-phoenix-1.functions.oci.oraclecloud.com/20181201/functions/ocid1.fnfunc.oc1.phx.aaaa____uxoa/actions/invokeと入力します。

APIへの呼出しを直接行うか、Fn ProjectのCLIコマンドを使用して、適切なエンドポイントを取得できます:

fn inspect function <app-name> <function-name>

OCI関数のその他のコンテキスト構成パラメータ

次の表に示すように、Fn Projectのコンテキスト構成パラメータをサポートするだけでなく、OCI Functionsにはいくつかの追加パラメータもあります。

追加パラメータ 設定 値 ノート
provider ~/.fn/contextsのコンテキスト構成.yamlファイル oracle

Fn Project機能ではなく、OCI Functionsを有効にします。providerがoracleに設定されている場合、次のパラメータが有効です:

  • oracle.compartment-id
  • oracle.profile

Oracle Cloud Infrastructureに接続するためのFnプロジェクトのCLIコンテキストを作成を参照してください。

oracle.compartment-id ~/.fn/contextsのコンテキスト構成.yamlファイル <compartment -ocid>

ファンクション関連のリソースを所有するOracle Cloud InfrastructureコンパートメントのOCIDを指定します。

Oracle Cloud Infrastructureに接続するためのFnプロジェクトのCLIコンテキストを作成を参照してください。

oracle.profile ~/.fn/contextsのコンテキスト構成.yamlファイル <profile-name>

~/.oci/configファイルから使用するプロファイルを指定します。設定しない場合、defaultというプロファイルが使用されます。

「oracle.profileパラメータを使用したFn ProjectのCLIコンテキスト設定」を参照してください

object_storage_bucket_name ~/.fn/contextsのコンテキスト構成.yamlファイル <bucket-name>

コードのみの関数ではオプションです。Fn Project CLIの暗黙的開発者フローがコード専用ファンクション・アーカイブをオブジェクト・ストレージにアップロードする際に、ファンクション・アーカイブに使用するオブジェクト・ストレージ・バケットを指定します。object_storage_namespaceとともに使用します。

「fn init、fn buildおよびfn deployコマンドを使用してコードのみの関数を暗黙的に作成する」を参照してください。

object_storage_namespace ~/.fn/contextsのコンテキスト構成.yamlファイル <object-storage-namespace>

コードのみの関数ではオプションです。Fn Project CLIの暗黙的な開発者フローがコード専用ファンクション・アーカイブをオブジェクト・ストレージにアップロードするときに、ファンクション・アーカイブに使用するバケットのオブジェクト・ストレージ・ネームスペースを指定します。object_storage_bucket_nameとともに使用します。

「fn init、fn buildおよびfn deployコマンドを使用してコードのみの関数を暗黙的に作成する」を参照してください。

注釈の使用

Fn Project CLIを使用してOCI Functionsリソースを作成および表示する場合、通常、パラメータを使用して値を指定します。たとえば、fn create app <app-name>を使用して新しいアプリケーションを作成する場合は、通常、--subnet-id <subnet-ocid>パラメータを使用して、ファンクションを実行するサブネットのOCIDを指定します。

高度な使用および下位互換性を実現するために、一部のFn Project CLIコマンドでは、関連付けられたOracle Cloud Infrastructureリソースを識別および指定するための注釈の使用もサポートされています。

例:

  • Fn ProjectのCLIを使用して新しいアプリケーションを作成する場合、--annotationパラメータを使用して、ファンクションを実行するサブネットのOCIDを次の形式で指定できます。
    fn create app <app-name> --annotation oracle.com/oci/subnetIds='["<subnet-ocid>"]'
  • Fn ProjectのCLIを使用してファンクションのプロパティを表示しているとき、annotations要素は、そのファンクションを所有しているコンパートメントのOCIDを示します。

他の構成パラメータや環境変数とは異なり、注釈値は実行中のファンクションを実行するための引数として渡すことはできません。