Oracle Cloud Infrastructureドキュメント

Helloworldファンクションの作成、デプロイ、および起動

Oracle Functionsを使用しないようにするには、Fn Project CLIコマンドを使用して次の操作を開始します:

  • javaで作成された単純なhelloworldファンクションを作成
  • Oracle Functions用に構成されたDockerレジストリにイメージをプッシュ
  • Oracle Functionsでアプリケーションにファンクションをデプロイ
  • ファンクションを起動

ヒント

このトピックのいずれかのステップを正常に完了できない場合は、一般的な問題に対する解決策を確認してください(「Oracle Functionsのトラブルシューティング」を参照)。

Oracle Functionsの使用を開始するには:

  1. 「Oracle Functionsの準備」で説明されているように、Oracle Functionsを使用するための前提条件ステップが完了していることを確認します。 具体的には、次のようになります:

  2. ファンクション開発者としてコンソールにログインします。

  3. コンソールを使用して、Oracle Functionsで新しいアプリケーションを作成します:

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

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

    4. 「アプリケーションの作成」をクリックし、次の項目を指定します:

      • 新しいアプリケーションの名前(helloworld-app )。
      • ファンクションを実行するVCNおよびサブネット(最大3つのサブネット)。 たとえば、acme-vcn-01というVCNおよびパブリック・サブネットIHsY:US-PHOENIX-AD-1という名前のパブリック・サブネットがあります。 リージョン・サブネットが定義済の場合、ベスト・プラクティスは、そのサブネットを選択して、実装するのが単純な可用性ドメイン間のフェイルオーバーを行うことです。 リージョン・サブネットが定義されておらず、高可用性要件を満たす必要がある場合は、複数のサブネットを選択します。 Oracleは、Fn Project CLIコンテキストで指定されたDockerレジストリと同じリージョンにサブネットを配置することをお薦めします(「6. Oracle Cloud Infrastructureに接続するFn Project CLIコンテキストの作成」を参照)。

    5. 「作成」をクリックします
  4. ファンクション開発者として開発環境にログインします。

  5. ターミナル・ウィンドウで、次のように入力してhelloworld javaファンクションを作成します:

     $ fn init --runtime java helloworld-func

    helloworld-funcというディレクトリが作成され、次のものが含まれます:

    • ファンクションを作成および実行するために必要な最小限の情報を含む、func.yamlというファンクション定義ファイル。 func.yamlファイルに含めることができる追加パラメータについては、Fn Projectドキュメント」を参照してください。
    • helloworldファンクションのソース・ファイルとディレクトリが含まれている/srcディレクトリ(/src /main/java/com/example/fn/HelloFunction.javaを含む)。
    • ソース・ファイルからのファンクションのコンパイルに必要なプロジェクト・アーティファクトおよび依存関係を指定する、pom.xmlと呼ばれるMaven構成ファイル。
  6. ディレクトリを、新たに作成されたhelloworld-funcディレクトリに変更します。
  7. 次の単一のFn Projectコマンドを入力して、ファンクションおよび依存性をhelloworld-funcというDockerイメージとして作成し、指定されたDockerレジストリにイメージをプッシュし、helloworld-appでOracle Functionsにファンクションをデプロイします:

     $ fn -v deploy --app helloworld-app

    -vオプションでは、実行しているFn Projectコマンドの詳細が表示されるのみです(「Fn Project CLIをOracle Functionsとともに使用する方法」を参照)。

  8. (オプション)指定されたDockerレジストリが「Oracle Cloud Infrastructureレジストリ」であると仮定すると、コンソールを使用して、helloworld-funcイメージが「Oracle Cloud Infrastructureレジストリ」に正常にプッシュされたことを確認します:
    1. コンソールで、「ナビゲーション・メニュー」を開きます。 ソリューションおよびプラットフォームの下で、開発者サービスに移動して「レジストリ」をクリックします。
    2. レジストリ・リージョンを選択します。

      レジストリにアクセスしているすべてのリポジトリが表示されます。 プッシュしたイメージは、次から構成された名前を使用して新しいリポジトリにあります:

      たとえば、新規リポジトリはacme-repo/helloworld-funcと呼ばれることがあります。

    3. 新規リポジトリの名前をクリックします。 「Oracle Cloud Infrastructureレジストリ」にプッシュされているhelloworld-funcイメージの詳細が表示されます。
  9. (オプション)コンソールを使用して、ファンクションがOracle Functionsに正常にデプロイされたことを確認します:
    1. コンソールで、「ナビゲーション・メニュー」を開きます。 ソリューションおよびプラットフォームの下で、開発者サービスに移動して「ファンクション」をクリックします。
    2. Fn Project CLIコンテキストで指定されたコンパートメントを選択します(「6. Oracle Cloud Infrastructureに接続するFn Project CLIコンテキストの作成」を参照)。

      「アプリケーション」ページに、helloworld-appというアプリケーションが作成されたことが示されます。

    3. helloworld-appアプリケーションをクリックして、その中のファンクションを表示します。

      「ファンクション」ページに、helloworld-funcファンクションがOracle Functionsにデプロイされたことが示されます。

  10. ターミナル・ウィンドウで、次を入力してhelloworld-funcファンクションを呼び出します:

     $ fn invoke helloworld-app helloworld-func

    Hello World !メッセージが表示されます。

おめでとうございます。 最初のファンクションが正常に作成され、Oracle Functionsにデプロイされました。