ファンクション開発環境の様々なオプション
Fn Project CLIを使用してOCI Functionsでファンクションを作成およびデプロイするための開発環境オプションについて説明します。
OCI Functionsでファンクションを作成およびデプロイする開発環境を設定する場合、様々なオプションがあります。ほとんどのユーザーにとって、ローカル・マシンの設定がOCI関数を操作するための推奨方法です。
コード専用ファンクションは、サポートされている管理対象ランタイムでファンクションを実行でき、コンテナ・イメージを構築および公開せずにファンクション・コードをデプロイする場合に使用します。オペレーティング・システム、パッケージ、ランタイムまたはイメージの内容を完全に制御する必要がある場合は、イメージベースの関数を使用します。
-
オプション1: ローカル・マシンの設定。(推奨)ほとんどのユーザーにとって、ローカル・マシンの設定は、ファンクションを作成、デプロイおよび起動する推奨方法です。ローカル・マシンを使用して、アーカイブからコード専用関数を作成したり、コンテナ・イメージからイメージベースの関数を作成したりできます。
- コード専用関数の場合は、関数アーカイブを指定し、サポートされている管理対象ランタイムを選択します。OCI Functionsは、アーカイブで必要な形式およびディレクトリ構造が使用されていることを確認し、ファンクションの実行に使用される実行環境を管理します。
- イメージベースのファンクションの場合は、コンテナ・イメージを構築し、イメージをOracle Cloud Infrastructure Registryにプッシュして、イメージからファンクションをデプロイします。
ローカル・マシンを設定する場合、新しいFn Project CLIコンテキストを作成するときに
--provider oracleを指定する必要があります。このオプションを使用すると、OCI Functionsで、OCIリクエスト署名、秘密キー、ユーザー・ グループ、およびそれらのユーザー・グループに権限を付与するポリシーを使用して、認証および認可を実行することができます。ローカル・マシンを開発環境として設定し、コード専用関数を作成する場合は、アーカイブを使用するローカル・ホストでの関数QuickStart (コード専用関数)を使用します。
ローカル・マシンを開発環境として設定し、イメージベースのファンクションを作成する場合は、「コンテナ・イメージを使用するローカル・ホストでのファンクション・クイックスタート」を使用します。
-
オプション2: クラウド・シェルの設定。 ローカル開発ツールをインストールせずに、イメージベースの機能を迅速に試す場合は、Cloud Shellを使用します。コンソールからいくつかのコマンドをコピーしてクラウド・シェル・ウィンドウに貼り付けることで、わずか数分でOCI Functions開発環境を設定できます。
Cloud Shellを設定すると、2つの既製のFn Project CLIコンテキストが提供されます。独自のFn Project CLIコンテキストを作成する場合は、コンテキストの作成時に
--provider oracle-csを指定します。このオプションを使用すると、イメージベースのファンクションの作成、デプロイおよび起動を試行できます。GitHubのサンプルを使用してOCI関数を調べることもできます。クラウド・シェルでは、ユーザーのホーム・ディレクトリごとに5 GBが割り当てられるため、外部ストレージに拡張またはマウントすることはできません。領域使用量を5 GB未満に保つために、定期的なハウスキーピングを実行する責任があります。
クラウド・シェルをイメージベース関数の開発環境として設定する場合は、「コンテナ・イメージを使用したクラウド・シェルでのファンクション・クイックスタート」を使用します。
-
オプション3: Oracle Cloud Infrastructureコンピュート・インスタンスの設定。 一部のユーザーにとって、OCIコンピュート・インスタンスの設定は、ローカル・マシンの設定よりも便利です。OCIコンピュート・インスタンスを設定する場合、新しいFn Project CLIコンテキストを作成するときに
--provider oracle-ipを指定する必要があります。このオプションにより、OCI Functionsは、インスタンスOCIDs、動的グループ、およびそれらの動的グループに権限を付与するポリシーを使用して、認証および認可を実行できます。このアプローチでは、ユーザーが秘密キーを管理する必要がなくなります。
OCIコンピュート・インスタンスでOCI Functions開発環境を設定するには、動的グループの作成、コンピュート・インスタンスのOCIDを含む動的グループの作成、ファンクション・リソースおよびネットワーク・リソースへの動的グループ・アクセス権を付与するポリシーの作成、および新しいFn Project CLIコンテキストの作成時に
--provider oracle-ipの指定を行う権限が必要です。OCIコンピュート・インスタンスを開発環境として設定する場合は、「コンテナ・イメージを使用したOCIコンピュート・インスタンスでのファンクション・クイックスタート」を使用します。
異なる開発環境に対するFn ProjectのCLIコンテキストの設定
Fn Project CLIでは、コンテキストを使用してOCIテナンシに接続します。コンテキストでは、OCIファンクション・エンドポイントと、デプロイされたファンクションが属するコンパートメントのOCIDを指定します。暗黙的な開発者フローを使用するコード専用関数の場合、コンテキストでは、アーカイブ・アップロードのオブジェクト・ストレージ詳細を指定することもできます。イメージベースの関数の場合、コンテキストでは、イメージをプッシュおよびプルするコンテナ・レジストリのアドレスも指定します。
ローカル・マシン開発環境またはOCIコンピュート・インスタンス開発環境を設定する場合は、独自のFn Project CLIコンテキストを作成する必要があります。Cloud Shell開発環境には2つの既製のコンテキストが用意されていますが、独自のコンテキストを作成することもできます。
Fn Project CLIコンテキストを作成する場合は、fn create contextコマンドを使用し、認証プロバイダを指定します。指定するプロバイダは、次の表に示すように、使用している開発環境によって異なります。
| 開発環境 | Fn Project CLIコンテキストを作成するコマンド |
|---|---|
| ローカル・マシン |
fn create context <my-context> --provider oracle |
| クラウド・シェル | fn create context <my-context> --provider oracle-cs |
| OCIコンピュート・インスタンス | fn create context <my-context> --provider oracle-ip |