Functions: CLIの使用の開始
このチュートリアルでは、Oracle Cloud Infrastructureアカウントを使用してOracle Functions開発を設定します。次に、ファンクション・アプリケーションおよびファンクションを作成します。
主なタスクは:
- 認証トークンを設定します。
- 必要な情報を収集します。
- VCNを設定します。
- OCIレジストリ(OCIR)を設定します。
- ファンクションをデプロイするためのCLIを設定します
- Fnコンテキストを構成します。
- Oracleファンクション用のアプリケーションを作成します。
- ファンクションを作成します。
- ファンクションをデプロイします。
- ファンクションをテストします。

その他の情報については、次のWebサイトを参照してください。
開始する前に
このチュートリアルを正常に実行するには、次が必要です:
- 有料Oracle Cloud Infrastructureアカウント。Oracle Cloud Infrastructureへのサインアップを参照してください。
- Oracle Functions開発をサポートするように構成されたOCIアカウント。Oracle Functionsのポリシーの作成を参照してください。
- Python 3.6以上およびpip3。
- Dockerエンジン: LinuxコンピュータまたはLinux VM。サポートされているバージョンおよびディストリビューションについては、Dockerエンジンの要件を参照してください。
- Dockerデスクトップ: MacOSまたはWindows 10で使用可能です。
- Windows 10: WSL 2およびUbuntuまたはその他のディストリビューションがインストールされたWindows 10 update 2004。
ノート
Dockerには、Windows 10 update 2004でのWSL 2に対する特別なLinuxサポートが含まれています。 - MacOS: MacOS用Dockerデスクトップのインストールを参照してください。
- Windows 10: WSL 2およびUbuntuまたはその他のディストリビューションがインストールされたWindows 10 update 2004。
1. 必要な情報の収集
チュートリアルを完了するために必要なすべての情報を収集します。
OCIコンソールから必要な情報を準備します。
- リージョンおよび可用性ドメインから、リージョン識別子およびリージョン・キーを見つけます。
例: アッシュバーンの場合は
us-ashburn-1
およびiad
。 - OCIレジストリ(OCIR)にファンクション・イメージを格納するレジストリ・プロジェクト名を作成します。
ファンクションを公開すると、OCIRにDockerイメージが作成されます。OCIRプロジェクト名は、検索しやすいように、ファンクション・イメージの先頭に付加されます。たとえば、次が指定された場合:
- レジストリ・プロジェクト名:
my-func-prj
- ファンクション名:
node-func
関数イメージは、OCIRの
my-func-prj/node-func
の下に格納されます - レジストリ・プロジェクト名:
コンパートメントを作成するには、コンパートメントの作成を参照してください。コンパートメントを作成したら、コンパートメントOCIDを保存します。
既存のコンパートメントからコンパートメントOCIDを取得するには:
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「コンパートメント」をクリックします。
- コンパートメントを選択します。
- OCIDフィールドの「コピー」リンクをクリックします。
OCIレジストリにログインするための認可トークンを作成します。認可トークンを作成するには:
チュートリアルを完了するために必要なすべての情報を収集します。次の情報をメモ帳にコピーします。
2. 仮想クラウド・ネットワーク(VCN)の作成
Linuxインスタンスをインターネットに接続するように、VCNを設定します。仮想ネットワークの作成に必要なすべてのコンポーネントを構成します。
- 「Oracle Cloud」アイコンをクリックして、メイン・ランディング・ページに移動します。
- 「リソースの起動」までスクロールします。
- 「ウィザードを使用してネットワークを設定」を選択します。
- 「VCNウィザードの起動」ワークフローで、「インターネット接続が可能なVCNの作成」を選択し、「VCNウィザードの起動」をクリックします。
- 構成ダイアログで、VCNのVCN名を入力します。コンパートメントはすでに、作業していた最後のコンパートメントに設定されているか、デフォルトで
<your-tenancy> (root)
に設定されています - 「VCNとサブネットの構成」セクションで、CIDRブロックのデフォルト値をそのまま使用します:
- VCN CIDRブロック: 10.0.0.0/16
- パブリック・サブネットCIDRブロック: 10.0.0.0/24
- プライベート・サブネットCIDRブロック: 10.0.1.0/24
ノート
パブリック・サブネットとプライベート・サブネットのネットワーク・アドレスが異なることに注意してください。 - 「DNS解決」では、「このVCNでDNSホスト名を使用」の選択解除します。
- 「次」をクリックします。
入力したすべての値を確認する「インターネット接続性を持つVCNの作成」構成ダイアログが表示されます(ここでは表示されていません)。
- VCNを作成するには、「作成」をクリックします。
作成中のすべてのVCNコンポーネントを示す「リソースの作成中」ダイアログが表示されます(ここでは表示されていません)。
- 「Virtual Cloud Networkの表示」をクリックして、新しいVCNを表示します。
新しいVCNが表示されます。ここで、アプリケーションのデフォルト・ポートであるポート80でHTTP接続を許可するセキュリティ・ルールを追加する必要があります。
- 新しいVCNが表示され、「パブリック」サブネット・リンクをクリックします。
パブリック・サブネット情報は、ページの下部にあるセキュリティ・リストとともに表示されます。VCNのデフォルト・セキュリティ・リストへのリンクが表示されます。
- 「デフォルト・セキュリティ・リスト」リンクをクリックします。
VCNのデフォルトのイングレス・ルールが表示されます。
- 「イングレス・ルールの追加」をクリックします。
「Add Ingress Rules」ダイアログが表示されます。
- イングレス・ルールに次の情報を入力します。すべてのデータを入力したら、「イングレス・ルールの追加」をクリックします
イングレス・ルールを次のように入力します:
- ステートレス:選択
- ソース・タイプ: CIDR
- ソースCIDR: 0.0.0.0/0
- IPプロトコル: TCP
- ソース・ポート範囲: (空白のまま)
- 宛先ポート範囲: 80
- 説明:アプリケーションのVCN
「イングレス・ルールの追加」をクリックすると、パブリック・サブネットへのHTTP接続が許可されます。
別のポートを開くには、最後のステップの80をポート番号に置き換えます。
アプリケーションをインターネットから使用できるようにするVCNが正常に作成されました。
3. OCIコマンドライン・インタフェースの設定
ローカル・マシンでファンクションを開発するには、OCIコマンドライン・インタフェース(CLI)を設定する必要があります。この項では、Docker、Python 3.6以上およびpip3
がすでにインストールされていることを前提としています。
CLIを使用してローカル・マシンでOracle Functions開発を有効にするには、次の3つの項を実行します。各ステップの詳細な説明は、ローカル開発環境でのOracle Functionsの設定を参照してください。
CLIを設定すると、マシンからOCIレジストリにファンクションおよびファンクション・アプリケーションをデプロイできます。まず、Pythonの仮想環境機能を使用してCLIをインストールします。
OCIサービスに接続できるようにCLIを設定します。
ローカル・マシンでファンクション開発を実行するには、Fnクライアントをインストールする必要があります。Fnを使用すると、ファンクションの作成、アプリケーションの作成およびOCIレジストリへのファンクションのデプロイを行うことができます。
4. Functions用のOCIレジストリの準備
次に、DockerをOCIレジストリ(OCIR)にログインします。
- 以前に収集した情報を取得します。
- ターミナル・ウィンドウを開きます。
- OCIRにログインします:
docker login <region-key>.ocir.io
ログイン名とパスワードの入力を求められます。
- ユーザー名:
<tenancy-name>/<user-name>
- パスワード:
<auth-token>
- ユーザー名:
インスタンスがOCIRにログインしました。
5. Functionsの構成
Oracle Functionsを使用するには、Fnアプリケーション・コンテキストを構成する必要があります。コンテキストには、Oracle Functionsサービスへの接続に必要な値が格納されます。
以前に収集した情報を構成値に使用します。
CLIに複数のプロファイルを使用する場合は、oracle.profile
値を設定する必要があります。
例: fn update context oracle.profile <profile-name>
Oracle Functionsサービスに接続するようにFnを構成しました。
コンテキストの表示/編集
Fnコンテキスト・ファイルは、~/.fn/contexts
ディレクトリにあります。各コンテキストは、.yaml
ファイルに格納されます。たとえば、us-phoenix-1.yaml
ファイルは次のようになります:
api-url: https://functions.us-phoenix-1.oci.oraclecloud.com
oracle.compartment-id: ocid1.compartment.oc1..aaaaaaa...
provider: oracle
registry: phx.ocir.io/my-tenancy/myproject/repo
必要に応じて、ファイルをエディタで直接編集できます。
各ステップの詳細な説明は、ローカル開発環境でのOracle Functionsのクイックスタートを参照してください
6. ファンクションの作成およびデプロイ
構成が完了したら、ファンクションを作成してデプロイします。
アプリケーションは、ファンクションの主要なストレージ・コンテナです。各ファンクションには、デプロイメント用のアプリケーションが必要です。アプリケーションを作成するには、次のステップに従います。
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「ファンクション」で、「アプリケーション」をクリックします。
- 「アプリケーションの作成」をクリックします。
フォーム・データを入力します。
- 名前:
<your-app-name>
- VCN:
<your-VCN>
- サブネット:
<your-public-subnet>
または<your-private-subnet>
ノート
パブリック・サブネットまたはプライベート・サブネットを使用できます。いずれかを選択してください。 - 名前:
- 「作成」をクリックします。
アプリケーションが作成されます。
次のいずれかの言語を選択して、ファンクションを作成してデプロイします。必要に応じて、3つすべてを実行できます。
アプリケーションを作成したら、Javaファンクションをデプロイします。次のステップに従って、Javaの「Hello World」ファンクションを作成します。
これらのステップを実行するには、Java 8以上がインストールされていることを確認してください。
Javaファンクションが正常にデプロイおよびテストされました。
アプリケーションを作成したら、Pythonファンクションをデプロイします。次のステップに従って、Pythonの「Hello World」ファンクションを作成します。
Pythonファンクションが正常にデプロイおよびテストされました。
アプリケーションを作成したら、ノード・ファンクションをデプロイします。次のステップに従って、ノードの「Hello World」ファンクションを作成します。
これらのステップを実行するには、Node.js 10以上がインストールされていることを確認してください。
ノード・ファンクションが正常にデプロイおよびテストされました。
7. ファンクション情報の確認
ファンクションを実行すると、ファンクションに関する情報がOCIコンソールに表示されます。
デプロイすると、ファンクションがアップロードされてOCIRに格納されます。OCIRに移動して、ファンクション・イメージを確認できます。
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「Containers & Artifacts」で、「Container Registry」をクリックします。
<your-repository-project-name>
を検索します。- プロジェクト名の下に、デプロイした各ファンクションのエントリが表示されます。
- 情報を表示する各イメージのリンクをクリックします。
ファンクションを実行した後、そのファンクションのメトリックを表示できます。
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「ファンクション」で、「アプリケーション」をクリックします。
アプリケーションがページにリストされます。
- 作成したアプリケーションへのリンクをクリックします。
- 確認するファンクションへのリンクをクリックします。
ファンクションに関するメトリック情報が表示されます。
アプリケーションのロギングを有効にするには、次のステップに従います。
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「ファンクション」で、「アプリケーション」をクリックします。
- 作成したアプリケーションへのリンクをクリックします。
- アプリケーション・ページの左側で、「ログ」リンクをクリックします。
- 「無効」をクリックして、アプリケーションのロギングを有効にします。
- 「ログの有効化」ダイアログが表示されます。次の情報を入力します:
- コンパートメント: <your-compartment-name>
- ログ・グループ:デフォルト値
Auto-Create a Default Log Group
を使用します - ログ名: <take-default>
- ログ保持: <take-default>
- 「ログの有効化」をクリックします
ログが作成されるまでしばらく待ちます。
ログを表示するには、前述のステップで作成したログ名のリンクをクリックします。
次の手順
ファンクションが正常に作成され、Oracle Functionsにデプロイされました。
Oracle製品を使用した開発の詳細を確認するには、次のサイトを参照してください: