Fn Project CLIを使用したイメージベース・ファンクションの作成およびデプロイ
Fn Project CLIコマンドを使用して、イメージベースの関数を作成してOCI Functionsにデプロイする方法をご紹介します。
Fn ProjectのCLIコマンドを使用して、イメージベースの関数を作成し、OCI Functionsにデプロイできます。
このトピックでは、Fn Project CLIを使用したイメージベース・ファンクションの作成およびデプロイについて説明します。コンテナ・イメージをビルドおよび公開せずにアーカイブからファンクションを作成するには、アーカイブからのファンクションの作成(コード専用ファンクション)を参照してください。
Fn ProjectのCLIコマンドの使用
時々、Fn ProjectCLIの新しいバージョンがリリースされます。最新バージョンがインストールされていることを定期的に確認することをお勧めします。詳細は、Fn ProjectのCLIをアップグレードするステップを参照してください。
Fn ProjectのCLIコマンドを使用してイメージベースのファンクションを作成してOCI Functionsにデプロイするには:
- イメージベースの関数のファンクション・クイックスタート・ガイドのステップが完了していることを確認します。
-
ファンクションの追加先のアプリケーションがOCI Functionsにまだ存在しない場合は、Fn ProjectのCLIまたはコンソールを使用して作成します。たとえば、acmeappという新しいアプリケーションを作成します。アプリケーションの作成を参照してください。
-
ファンクション開発者として開発環境にログインします。
-
ターミナル・ウィンドウで、ディレクトリをファンクション・コードが含まれるディレクトリに変更します。
-
次のように入力してファンクションを初期化します:
fn init --runtime <runtime-language> <function-name>ここでは:
-
<runtime-language>は、イメージベース関数でサポートされているランタイム言語の1つです(現在は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ディレクトリを削除することをお薦めします。 -
- ディレクトリを新たに作成されたディレクトリに変更します。
-
次の単一のFn Projectコマンドを入力して、ファンクションとその依存関係をDockerイメージとしてビルドし、そのイメージを指定したDockerレジストリにプッシュし、イメージベース・ファンクションをOCIファンクションにデプロイします:
fn -v deploy --app <app-name>ここで、
<app-name>は、ファンクションを追加するOCIファンクションのアプリケーションの名前です。例:fn -v deploy --app acmeapp-vオプションは、Fn Projectコマンドが実行している内容の詳細を表示します(OCI FunctionsでのFn ProjectのCLIの使用を参照)。単一の
fn deployコマンドではなく、個別のFn Project CLIコマンドを使用して、イメージベース・ファンクションを構築、プッシュおよびデプロイすることもできます。署名検証ポリシーが有効になっているアプリケーションにイメージベースのファンクションを追加する場合は、追加のオプションを指定する必要があります。イメージ・ベース関数のイメージの署名およびレジストリからの署名付イメージの使用のを強制を参照してください。
- (オプション)指定されたDockerレジストリがOracle Cloud Infrastructure Registryである場合、コンソールを使用して、イメージがOracle Cloud Infrastructure Registryに正常にプッシュされたことを確認します:
- ナビゲーション・メニューを開き、「開発者サービス」を選択します。「コンテナおよびアーティファクト」で、「コンテナ・レジストリ」を選択します。
-
レジストリのリージョンを選択します。
アクセス権のあるレジストリ内のすべてのリポジトリが表示されます。プッシュしたイメージは、次から構築された名前の新しいプライベート・リポジトリにあります:
- Fn Project CLIコンテキスト内のDockerレジストリのアドレスにあるリポジトリ名接頭辞(「Oracle Cloud Infrastructureに接続するためのFn Project CLIコンテキストの作成と」を参照)
- プッシュしたイメージの名前
たとえば、新規リポジトリを
acme-repo/acme-funcと呼びます。 - 新しいリポジトリの名前を選択します。Oracle Cloud Infrastructure Registryにプッシュされたイメージの詳細が表示されます
-
(オプション)コンソールを使用して、ファンクションがOCIファンクションに正常にデプロイされていることを確認します。
- ナビゲーション・メニューを開き、「開発者サービス」を選択します。「関数」で、「アプリケーション」を選択します。
-
Fn ProjectのCLIコンテキストで指定されているコンパートメントを選択します( Oracle Cloud Infrastructureに接続するためのFn ProjectのCLIコンテキストを作成するを参照)。
「アプリケーション」ページに、
fn deployコマンドで指定したアプリケーションを含む、コンパートメント内のアプリケーションが表示されます。 -
fn deployコマンドで指定したアプリケーション名を選択すると、その内部のファンクションが表示されます。「関数」タブには、イメージベースの関数がOCI関数にデプロイされていることが示されます。