Oracle Cloud Infrastructureに接続するためのFn ProjectのCLIコンテキストの作成

Oracle Functionsを使用する前に、Oracle Cloud Infrastructureテナンシに接続するようにFn ProjectのCLIを構成する必要があります。

Fn ProjectのCLIが最初にインストールされるとき、これはローカル開発の「コンテキスト」用に構成されます。Oracle Cloud Infrastructureテナンシに接続するようFn ProjectのCLIを構成するには、かわりに新しいコンテキストを作成する必要があります。コンテキストでは、Oracle Functionsエンドポイント、デプロイされたファンクションが属するコンパートメントのOCID、およびイメージをプッシュおよびプルするDockerレジストリのアドレスを指定します。

複数のコンテキストを定義し、それぞれを.yaml形式で異なるコンテキスト・ファイルに格納できます。デフォルトでは、個々のコンテキスト・ファイルは~/.fn/contextsディレクトリに格納されます。~/.fn/config.yamlファイルでは、どのコンテキスト・ファイルをFn Projectが使用するかを指定します。

新規コンテキストを作成するには、新規コンテキスト・ファイルを手動で作成し、そのファイルを指すように~/.fn/config.yamlファイルを手動で編集します。また、次の説明のように、Fn ProjectのCLIを使用して新しいコンテキスト・ファイルを対話形式で作成し、Fn ProjectのCLIにそのファイルの使用を開始するように指示することもできます。

開発環境としてクラウド・シェルを使用している場合、2つのFn Project CLIコンテキストがすでに作成されています(デフォルトのコンテキストと現在のリージョンのコンテキスト)。詳細は、クラウド・シェルのOracle Functions QuickStartガイドを参照してください。単に、「スタート・ガイド」ページからクラウド・シェル・ウィンドウにコマンドをコピーして貼り付ける必要があります。

  • Fn ProjectのCLIに、現在のリージョンのコンテキストを使用するように指示します。
  • デプロイ済関数を所有するコンパートメントのOCIDを提供するため
  • Oracle Functionsで使用するOracle Cloud Infrastructure Registryアドレスを指定します

このトピックの手順では、次のことを前提としています:

  • クラウド・シェルを開発環境として使用していません
  • Linuxを使用している
  • Fn Project CLIのインストールのステップはすでに完了しています

Fn ProjectのCLIを使用して新しいコンテキストファイルを作成するには:

  1. ファンクション開発者として開発環境にログインします。

  2. ターミナル・ウィンドウで、次のように入力して、Oracle Cloud Infrastructure用の新しいFn ProjectのCLIコンテキストを作成します:

    fn create context <my-context> --provider oracle

    ここで、< my-context >は選択した名前です。例:

    fn create context johns-oci-context --provider oracle

    Oracle Cloud Infrastructureリクエスト署名、秘密キー、ユーザー・グループ、およびそれらのユーザー・グループに権限を付与するポリシーを使用して、認証および認可を有効にするには、--provider oracleを指定します。

  3. 次を入力して、Fn ProjectのCLIが新しいコンテキストを使用するように指定します:

    fn use context <my-context>

    ここで、< my-context >は前のステップで指定した名前です。例:

    fn use context johns-oci-context
  4. 次を入力して、デプロイされたファンクションを所有するコンパートメントのOCIDを持つ新規コンテキストを構成します(この目的のために新規コンパートメントを作成した可能性があります。テナンシのネットワーク・リソースおよびOracle Functionsリソースを所有するためのコンパートメントの作成を参照してください)。

    fn update context oracle.compartment-id <compartment-ocid>

    例:

    fn update context oracle.compartment-id ocid1.compartment.oc1..aaaaaaaarvdfa72n...
  5. 次のように入力して、APIのコール時に使用するapi-urlエンドポイントで新しいコンテキストを構成します。

    fn update context api-url <api-endpoint>

    ここで、<api-endpoint>は、ファンクションAPIファンクション・エンドポイントのリストにあるエンドポイントの1つです。フォーマットはhttps://functions.<region-identifier>.oci.oraclecloud.comです。<api-endpoint><region-identifier>は、ファンクションを作成およびデプロイするOracle Cloud Infrastructureのリージョン識別子です。たとえば、us-phoenix-1です。

    例:

    fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
  6. 次のように入力して、Oracle Functionsで使用するDockerレジストリのアドレスを使用した新しいコンテキストを構成します:

    fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name-prefix>

    ここでは:

    • <region-key>は、Oracle Cloud Infrastructure Registryリージョンのキーです。たとえば、Phoenixの場合はphxです。リージョン別の可用性を参照してください。

      Oracleでは、指定したDockerレジストリは、ファンクションを実行する対象のサブネットと同じリージョンにあることが推奨されます。

    • <tenancy-namespace>は、リポジトリを作成するテナンシの自動生成されたオブジェクト・ストレージ・ネームスペース文字列(「テナンシ情報」ページに表示)です。たとえば、acme-devテナンシのネームスペースは、ansh81vru1zpである可能性があります。一部の古いテナンシでは、ネームスペース文字列が、すべて小文字のテナンシ名(たとえば、acme-dev)と同じ場合があることに注意してください。
    • <repo-name-prefix>は、デプロイするファンクションの名前の先頭に付加されるリポジトリ名の接頭辞です。

    例:

    fn update context registry phx.ocir.io/ansh81vru1zp/acme-repo
  7. (オプション)コンテキスト・ファイルを表示して、作成したFn ProjectのCLIコンテキストを確認します。たとえば、次のように入力します:

    more ~/.fn/contexts/johns-oci-context.yaml

    コンテキスト・ファイルには次のものが含まれています。

    api-url: https://functions.us-phoenix-1.oci.oraclecloud.com
    provider: oracle
    registry: phx.ocir.io/ansh81vru1zp/acme-repo

このトピックのステップを完了したら、oracle.profileパラメータを使用したFn Project CLIのコンテキストの設定を参照してください。