Oracle Cloud Infrastructureドキュメント

既存のDockerイメージからのファンクションの作成

Oracle Functionsサーバーでは、様々な方法で新しいファンクション定義を作成できます:

  • コンソールまたはFn Project CLIコマンドfn create functionを使用して、Dockerレジストリにすでにプッシュされている既存のDockerイメージ(このトピックで説明)に基づいて、新しいファンクションを作成します。
  • 単一のFn Project CLIコマンドfn deployを使用して、新しいDockerイメージをビルドし、Dockerレジストリにイメージをプッシュし、イメージに基づいて1つのステップ(「ファンクションの作成およびデプロイ」を参照)で新しいファンクションを作成します。
  • APIを使用します(CreateFunctionを参照)。

コンソールまたはfn create functionコマンドを使用して、既存のDockerイメージに基づいて新規ファンクションを作成する場合は、Oracle Functionsサーバーに格納するファンクション・メタデータを指定します。 たとえば、ファンクションの実行最大許容時間などです。

新しいファンクションのベースにする既存のイメージは、Oracle Functionsでの使用に適している必要があります。 通常、適切なイメージを作成してプッシュするには、ユーザーまたはユーザー自身が別のユーザーにFn Project CLIコマンドまたはDocker CLIコマンド(あるいはその両方)を使用します。 たとえば、ファンクション・コードおよびファンクション・メタデータを含むfunc.yamlファイル(おそらく、テンプレートのhelloworldファンクションに基づいており、 fn initを使用して作成したfunc.yamlなど)を作成した場合、次のことができます:

  • fn buildを使用して、ファンクションから新しいDockerイメージを作成します。
  • docker pushを使用して、イメージをDockerレジストリにプッシュします。

Dockerレジストリのイメージで、コンソールを使用し、このトピックの説明に従ってイメージに基づいてファンクションを作成できます。

コンソールの使用

コンソールを使用して、すでにDockerレジストリにプッシュされている既存のDockerイメージからOracle Functionsサーバーに新しいファンクションを作成するには:

  1. ファンクション開発者としてコンソールにログインします。
  2. コンソールで、「ナビゲーション・メニュー」を開きます。 ソリューションおよびプラットフォームの下で、開発者サービスに移動して「ファンクション」をクリックします。
  3. Oracle Functionsで使用するリージョンを選択します。 Oracleは、Fn Project CLIコンテキストで指定されたDockerレジストリと同じリージョンを使用することをお薦めします(「6. Oracle Cloud Infrastructureに接続するFn Project CLIコンテキストの作成」を参照)。
  4. Fn Project CLIコンテキストで指定されたコンパートメントを選択します(「6. Oracle Cloud Infrastructureに接続するFn Project CLIコンテキストの作成」を参照)。

    「アプリケーション」ページには、コンパートメントで定義されたアプリケーションが表示されます。

  5. 新規ファンクションを作成するアプリケーションの名前をクリックします。

  6. 「ファンクションの作成」をクリックし、次の項目を指定します:
    • 名: 新しいファンクションの名前。
    • イメージ: 現在選択されているリージョンのOracle Cloud Infrastructureレジストリ内の既存のイメージ。 最初にイメージ・リポジトリを選択し、次にイメージ・バージョンを選択します。
    • メモリー: ファンクションが実行時に使用できるメモリーの最大量。
    • タイムアウト: ファンクションの実行最大許容時間。
    • タグ: オプションで、タグを適用できます。 リソースを作成する権限を持っている場合は、フリーフォーム・タグをそのリソースに適用する権限も持っています。 定義済みタグを適用するには、タグ・ネームスペースを使用する権限が必要です。 タギングの詳細については、「リソース・タグ」を参照してください。 タグを適用する必要があるかどうかわからない場合は、このオプションをスキップしてください(後でタグを適用することもできます)。
  7. 「作成」をクリックして、Oracle Functionsサーバーに新しいファンクションを作成します。

選択したアプリケーションのファンクションのリストに、コンソールに新しいファンクションが表示されます。

Fn Project CLIコマンドの使用方法

Fn Project CLIを使用して、すでにDockerレジストリにプッシュされている既存のDockerイメージからOracle Functionsサーバーに新しいファンクションを作成するには:

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

  2. ターミナル・ウィンドウで、次を入力して新しいファンクションを作成します:

     $ fn create function <app-name> <function-name> <image-name>

    説明:

    • <app-name>は、新しいファンクションを作成する既存のアプリケーションの名前です。
    • <function-name>は、作成する新しいファンクションの名前です。 機密情報を入力しないでください。
    • <image-name>は、新しいファンクションのベースとなる、Dockerレジストリ内の既存のイメージの名前です。

    例えば:

     $ fn create function acmeapp acme-func phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.3

    既存のイメージおよび指定した名前に基づいて、Oracle Functionsに新規ファンクションが作成されます

  3. 次を入力して新しいファンクションが作成されていることを確認します:

     $ fn list functions <app-name>

    例えば:

    $ fn list functions acme-app
    			
    NAME            IMAGE
    acme-func       phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.3

APIの使用

APIおよび署名リクエストの使用については、REST APIおよび「セキュリティ資格証明」を参照してください。 SDKの詳細は、「ソフトウェア開発キットとコマンドライン・インタフェース」を参照してください。

次のAPI操作を使用して、ファンクションを管理します: