今回やりたいこと
タイトルの通りOCIイベント経由でオブジェクト・ストレージにファイルをアップロード時にFunctionsを起動できるか検証を行います。
事前準備
- オブジェクト・ストレージの作成許可
Allow group fn-group to manage buckets in tenancy
Allow group fn-group to manage objects in tenancy
- ファンクションの使用許可
Allow group fn-group to manage functions-family in tenancy
- VCN等のネットワーク系リソースの管理許可
Allow group fn-group to manage virtual-network-family in tenancy
- サービス・ログの作成許可
Allow group fn-group to manage logging-family in tenancy
- イベント・サービスの作成許可
Allow group fn-group to manage cloudevents-rules in tenancy
1.オブジェクト・ストレージの作成
最初にオブジェクト・ストレージの作成を行います。
OCIコンソール画面左上のナビゲーションメニューから「ストレージ」→「バケット」をそれぞれ選択します。
「バケットの作成」から任意のバケット名(ここでは「fn-bucket」)を入力、「オブジェクト・イベントの出力」を有効にして「作成」を選択します。
2.Functionsのサービス・ログの有効化
続いて、Functionsのサービス・ログの有効化を行います。
任意のFunctionsのアプリケーション(ここでは「helloworld-app」)の「Logs」から「Function Invocation Logs」の有効化を行います。
ステータスが「作成中」→「アクティブ」に遷移、有効化は完了となります。
3.イベント・サービスの作成
最後にイベント・サービスの作成を行います。
OCIコンソール画面左上のナビゲーションメニューから「監視および管理」→「ルール」をそれぞれ選択します。
以下の項目を入力、「ルールの作成」を選択します。
- 表示名、説明:任意
- ルール条件
- 条件:イベント・タイプ
- サービス名:Object Storage
- イベント・タイプ:Object - Create
- 条件:属性
- 属性名:bucketName
- 属性値:fn-bucket(バケット名)
- アクション
作成は以上となります。
4.動作確認
ここではサンプルファイルをオブジェクト・ストレージにアップロードして、サービス・ログからFunctionが起動できるか確認を行います。
サンプルファイル(test.txt
)をアップロードしました。
サービス・ログを確認すると、ほぼリアルタイムで連携、Functionsが起動されていることがわかります。
またイベント・サービスもログの取得が可能のため、こちらも有効化します。
再度別のサンプルファイル(test2.txt
)をアップロードしてみます。
イベント・サービスのにもsuccessfully
が含まれているログを確認できます。
本検証の手順は以上となります。
引用ドキュメント等