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

Fn ProjectのCLIコマンドを使用して、ファンクションを作成してOCI Functionsにデプロイする方法を確認します。

FnプロジェクトのCLIコマンドを使用して、ファンクションを作成してOCIファンクションにデプロイします。

ヒント

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

Fn ProjectのCLIコマンドの使用

ヒント

時々、Fn ProjectCLIの新しいバージョンがリリースされます。最新バージョンがインストールされていることを定期的に確認することをお勧めします。詳細は、Fn ProjectのCLIをアップグレードするステップを参照してください。

Fn ProjectのCLIコマンドを使用してファンクションを作成してOCIファンクションにデプロイするには:

  1. ファンクションQuickStartガイドのステップが完了していることを確認します。
  2. ファンクションの追加先のアプリケーションがOCIファンクションにまだ存在しない場合は、Fn ProjectのCLIまたはコンソールを使用して作成します。たとえば、acmeappという新しいアプリケーションを作成します。アプリケーションの作成を参照してください。

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

  4. ターミナル・ウィンドウで、ディレクトリをファンクション・コードが含まれるディレクトリに変更します。

  5. 次のように入力してファンクションを初期化します:

    fn init --runtime <runtime-language> <function-name>

    ここでは:

    • <runtime-language>は、サポートされているランタイム言語(現在はgo、java、node、python、rubyおよびdotnet (C#)がサポートされている)のいずれかです
    • <function-name>は、ファンクション名として使用する名前です。ファンクション名を指定しない場合は、現行ディレクトリ名(小文字)が使用されます。機密情報の入力は避けてください。

    例:

    fn init --runtime java acme-func

    指定したファンクション名で、次のディレクトリが作成されます:

    • func.yamlというファンクション定義ファイル。ファンクションの構築と実行に最低限必要な情報が含まれています。func.yamlファイルに含めることのできる追加パラメータについては、Fn Projectのドキュメントを参照してください。
    • ソース・ファイルとディレクトリを含む/srcディレクトリ。
    • pom.xmlというMaven構成ファイル。ソース・ファイルからファンクションをコンパイルするために必要なプロジェクト・アーティファクトおよび依存性を指定します。

    fn initコマンドは、指定したランタイム言語に応じて、helloworldアプリケーションのコードが含まれた/exampleディレクトリを作成する場合があります。このため、/exampleディレクトリを削除することをお薦めします。

  6. ディレクトリを新たに作成されたディレクトリに変更します。
  7. 次のFn Projectコマンドを入力して、ファンクションとその依存関係をDockerイメージとして構築し、そのイメージを指定したDockerレジストリにプッシュしてそのファンクションをOCI Functionsにデプロイします:

    fn -v deploy --app <app-name>

    ここで、<app-name>は、ファンクションを追加するOCIファンクションのアプリケーションの名前です例:

    fn -v deploy --app acmeapp

    -vオプションは、Fn Projectコマンドが実行している内容の詳細のみを表示します(OCI関数でのFn ProjectのCLIの使用を参照)。

    単一のfn deployコマンドのかわりに、個別のFn Projectコマンドを使用してファンクションの構築、プッシュおよびデプロイができます。

    また、署名検証ポリシーが有効になっているアプリケーションにファンクションを追加する場合は、追加のオプションを指定する必要があります。ファンクション・イメージの署名およびレジストリからの署名付きイメージの使用の適用を参照してください。

  8. (オプション)指定されたDockerレジストリがOracle Cloud Infrastructure Registryである場合、コンソールを使用して、イメージがOracle Cloud Infrastructure Registryに正常にプッシュされたことを確認します:
    1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします「コンテナとアーティファクト」で、「コンテナ・レジストリ」をクリックします。
    2. レジストリのリージョンを選択します。

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

      たとえば、新規リポジトリをacme-repo/acme-funcと呼びます。

    3. 新しいリポジトリの名前をクリックします。Oracle Cloud Infrastructure Registryにプッシュされたイメージの詳細が表示されます
  9. (オプション)コンソールを使用して、ファンクションがOCI Functionsに正常にデプロイされていることを確認します。

    1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします「ファンクション」で、「アプリケーション」をクリックします。
    2. Fn ProjectのCLIコンテキストで指定されているコンパートメントを選択します(Oracle Cloud Infrastructureに接続するためのFn ProjectのCLIコンテキストの作成を参照)。

      「アプリケーション」ページに、fn deployコマンドで指定したアプリケーションを含む、コンパートメント内のアプリケーションが表示されます。

    3. fn deployコマンドで指定したアプリケーション名をクリックすると、その内部のファンクションが表示されます。

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