[Oracle Cloud] Cloud Shellを使ってOracle Functionsサンプルを動かしてみた


以下の記事で、Cloud Shellを使ってOracle Functionsを実行できるようになったことを知ったので、実際に試してみた。

[OCI]Cloud Shellを使ってOracle Functionsサンプルを動かしてみた。






  • 仮想クラウド・ネットワークの作成
  • IAMポリシーの作成

サービスコンソール>開発者サービス>ファンクションと選択すると、「Function Prerequisites」の中に手順(以下、抜粋)が記載されているのでそれに沿って実施すればOK

Before you can start using Functions, your tenancy administrator should set up the following network and policies.

Step 1) Create VCN/Subnets

Create VCN/Subnets using Virtual Cloud Networks > Start VCN Wizard > VCN with Internet Connectivity option.

Step 2) Create Policies

Create a policy in the root compartment with the following statements:

2.1 Service Policies

  • allow service FAAS to use virtual-network-family in tenancy
  • allow service FAAS to read repos in tenancy

2.2 Non Admin User Policies

  • allow group <non-admin-fn-devs> to manage repos in tenancy
  • allow group <non-admin-fn-devs> to use virtual-network-family in tenancy
  • allow group <non-admin-fn-devs> to manage functions-family in tenancy
  • allow group <non-admin-fn-devs> to read metrics in tenancy
  • allow group <non-admin-fn-devs> to use cloud-shell in tenancy



Launch Cloud Shell / アプリケーション作成とクラウドシェルの起動





Use the context for your region / 利用リージョン設定

fn list context
fn use context ap-tokyo-1


Update the context with the function’s compartment ID / コンパートメント登録

fn update context oracle.compartment-id ocid1.compartment.xxxxx


Update the context with the location of the OCI Registry you want to use / リポジトリ登録

fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name>

Creating a Repository



Generate an AuthToken / トークン作成



Log into OCIR using the Auth Token as your password / リポジトリへのログイン

docker login -u ‘<tenancy-namespace>/<user-name>’ <region-key>.ocir.io


Verify your setup by listing Function applications in the compartment / アプリケーション名の確認

fn list apps

SampleFunctions ocid1.fnapp.oc1.ap-tokyo-1.xxxx


Generate a ‘hello-world’ boilerplate function / ファンクション作成(まずは箱だけ)

fn init –runtime java hello-java


Switch into the generated directory  / ファンクションのフォルダに移動

cd hello-java


Deploy your function / アプリケーションへのファンクション登録

fn -v deploy –app SampleFunctions


Invoke your function / ファンクション実行

fn invoke SampleFunctions hello-java

⇒「Hello, world!」が表示されたらOK




・fn invoke SampleFunctions hello-java実行時に以下のエラー発生

$ fn invoke SampleFunctions hello-java
Error invoking function. status: 502 message: dhcp options ocid1.dhcpoptions.oc1.ap-tokyo-1.xxxx does not exist or Oracle Functions is not authorized to use it


Allow service FaaS to read repos in tenancy
Allow service FaaS to use virtual-network-family in tenancy


・2回目以降は、Cloud Shellを起動して「fn invoke SampleFunctions hello-java」で実行可能。


・ファンクションはOCI Monitoringに対応。実行回数やエラー回数などが確認可能



Different Options for Function Development Environments
Option 1: Setting up Cloud Shell. (Recommended)
Option 2: Setting up a local machine
Option 3: Setting up an Oracle Cloud Infrastructure compute instance




[OCI]Cloud Shellを使ってOracle Functionsサンプルを動かしてみた。

チュートリアル:Oracle Functions on Cloud Shell Set up, creation, and deployment

My Quick Start with Oracle Functions in Fresh OCI Tenancy



1 Trackback / Pingback

  1. [Oracle Cloud] Oracle Functionsを使ってCompute Instanceを管理(起動・停止)してみた – IT Edge Blog

Leave a Reply

Your email address will not be published.