ファンクションの作成およびデプロイ
Fn ProjectのCLIコマンドを使用してファンクションを作成し、OCIファンクションにデプロイする方法をご紹介します。
Fn ProjectのCLIコマンドを使用して、ファンクションの作成およびOCIファンクションへのデプロイを行います。
Fn ProjectのCLIコマンドの使用
時々、Fn ProjectCLIの新しいバージョンがリリースされます。最新バージョンがインストールされていることを定期的に確認することをお勧めします。詳細は、Fn ProjectのCLIをアップグレードするステップを参照してください。
Fn ProjectのCLIコマンドを使用してファンクションを作成してOCIファンクションにデプロイするには:
- ファンクションQuickStartガイドのステップが完了していることを確認します。
-
ファンクションの追加先のアプリケーションがOCIファンクションにまだ存在しない場合は、Fn ProjectのCLIまたはコンソールを使用して作成します。たとえば、acmeappという新しいアプリケーションを作成します。アプリケーションの作成を参照してください。
-
ファンクション開発者として開発環境にログインします。
-
ターミナル・ウィンドウで、ディレクトリをファンクション・コードが含まれるディレクトリに変更します。
-
次のように入力してファンクションを初期化します:
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ディレクトリを削除することをお薦めします。 - ディレクトリを新たに作成されたディレクトリに変更します。
-
次の単一のFn Projectコマンドを入力して、ファンクションとその依存関係をDockerイメージとして構築し、そのイメージを指定したDockerレジストリにプッシュし、そのファンクションをOCIファンクションにデプロイします:
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コマンドを使用してファンクションの構築、プッシュおよびデプロイができます。また、署名検証ポリシーが有効になっているアプリケーションにファンクションを追加する場合は、追加のオプションを指定する必要があります。ファンクション・イメージの署名およびレジストリからの署名付きイメージの使用の強制を参照してください。
- (オプション)指定された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ファンクションにデプロイされたことが示されます。