はじめに
この記事では、先日リリースされたPre-Built Functions(事前構築済ファンクション)を利用して、OCI Media Flowで開発したメディアワークフローを自動実行できることを確認します
Pre-Built Functionsのリリース情報はこちら(↓)
今回実現すること
実現イメージは以下スライドの通りです。動画ファイルの登録〜動画のトランスコード処理の実行〜トランスコード済動画の出力のメディア処理プロセスを自動化です
今回は、4つのPre-Built FunctionsからMedia Workflow Job Spawnerを利用します
1. 事前準備
1.1 VCNの作成
Oracle Functionsが利用するVCN(仮想クラウドネットワーク)を作成します。以下のチュートリアルを参考に作成します
1.2 メディアワークフローの作成
OCI Media Flowを利用して、動画のトランスコード処理をジョブとして実行するメディアワークフローを作成します。以下のQiita記事を参考に作成します
作成したメディアワークフローのOCID(Workflow ID)とCompartment IDを記録します。メディアワークフローを開き、Media Workflow information内のOCID(Workflow ID)とCompartment IDコピーし、メモ帳などのテキストエディタに記録します
また、メディアワークフロー作成時に入力先(Input)と出力先(Output)として指定したバケット名も記録します
2. ファンクションの作成
Pre-Built FunctionsのMedia Workflow Job Spawnerを利用して、ファンクションを作成します
-
名前を入力し、アプリケーションを選択します。アプリケーションを新規作成する場合は、新規アプリケーションの作成をクリックし、アプリケーションを作成します。
また、「IAMポリシーの作成」はデフォルトのままで作成します(「動的グループとIAMポリシーを作成しないでください」は選択しません)
-
「メモリー」「タイムアウト」はデフォルトのままとします。「プロビジョニングされた並行性の有効化」は選択しません。
「構成」のMEDIA_WORKFLOW_ID、DESTINATION_BUCKET、DESTINATION_COMPARTMENT_IDに、1.2項で記録した値をそれぞれ入力し、最後に作成をクリックします
-
MEDIA_WORKFLOW_ID、DESTINATION_BUCKET、DESTINATION_COMPARTMENT_IDに、ファンクション作成時に指定した値が設定されていることを確認します
3. ルールの作成
入力先として指定したObject Storageのバケットに動画ファイルが登録(オブジェクトが作成)されたら、前の手順で作成したファンクションを起動する、というルールを作成します
-
表示名を入力し、以下の条件でルール条件とアクションを入力し、ルールの作成をクリックします
-
ルールが作成されます。左下のリソース→イベントの一致やアクションを開き、先ほど作成したルールとアクションが指定されていることを確認します
4. 確認
-
左上のメニュー→ストレージ→オブジェクト・ストレージとアーカイブ・ストレージから入力バケットを開き、オブジェクトのアップロードをクリックし、動画ファイルをアップロードします
-
【TIPS】
実行されるジョブの表示名はPBF_<メディアワークフローの名前>_Job
となります -
【TIPS】
ジョブ実行により生成されたトランスコード済動画ファイルは<出力先バケット名>/pbf/<Job output Prefix>/<動画ファイル名>/Transcode/
配下に出力されます -
出力先バケットに生成されたトランスコード済動画のプレイリストをOCI Media StreamsのDistribution Channelにプレイリストアセットとして取り込みます
動画の再生を確認するには、下記のサイトのようなhls.jsなどのJavaScriptライブラリを利用したHLSクライアントが必要です
https://hlsjs.video-dev.org/demo/
おわりに
以上でPre-Built Functionsを利用して、OCI Media Flowのメディアワークフロージョブの自動実行を「非常に素早く簡単に」確認できました。実際の開発現場でも使うことが多いシナリオと想定されるため、あらかじめ準備されている(Pre-Built)のは非常にありがたいですね。
最後に関連するドキュメントやリンクを記載します。参考にしていただければ幸いです
- Support for pre-built functions ※製品リリース情報
- Media Workflow Job Spawner Function ※製品ドキュメント
- Automate media processing jobs ※ブログ記事
- Automate media processing using OCI Media Flow with Pre‐Built Functions ※チュートリアル
- Oracle Functions ご紹介 / oracle-functions-overview ※speakerdeck資料(日本語)
- Oracle Functions ハンズオン ※OCIチュートリアル(日本語)
- OCI Digital Media Services をクイックスタートしてみた ※Qiita記事
- OCI Media Flowで作成したメディアワークフローの実行ログをOCIロギングで収集してみた ※Qiita記事