Logic Apps コネクタでの使用
Azure AI Video Indexer (VI) REST API では、サーバー間通信とクライアント間通信の両方がサポートされます。 この API を使用すると、ビデオとオーディオの分析情報をアプリケーション ロジックに統合できます。
Azure AI Video Indexer API と互換性のある Logic Apps および Power Automate コネクタをサポートしています。
コネクタを使用することで、コードを 1 行も記述せずに、大量のビデオ ファイルやオーディオ ファイルにインデックスを付け、そこから効果的に分析情報を抽出するカスタム ワークフローを設定できます。 統合にコネクタを使用すると、ワークフローの正常性とデバッグ方法を可視化できます。
はじめに
この記事の例では、ロジック アプリ フローを作成します。 ロジック アプリと Power Automate の機能とそのエディターはほぼ同じです。
連携する 2 つのフローアプローチでは、より大きなファイルの非同期アップロードとインデックス作成が効果的にサポートされます。
- 最初のフローは、Azure Storage アカウントで BLOB が追加または変更されたときにトリガーされます。 インデックス付けの操作が完了したら通知を送信するためのコールバック URL と共に、新しいファイルを Azure AI Video Indexer にアップロードします。
- 2 番目のフローは、コールバック URL に基づいてトリガーされ、抽出された分析情報を Azure Storage の JSON ファイルに保存します。
この記事で作成するロジック アプリには、アプリごとに 1 つのフローが含まれています。 2 番目のセクション「 消費型の新しいロジック アプリを作成する 2 つを接続する方法について説明します。 2 番目のフローは単独で立ち、最初のフローによってトリガーされます。
ファイルがアップロードされ、最初のフローからインデックスが作成されると、2 番目のフローをトリガーする正しいコールバック URL を含む HTTP 要求が送信されます。 その結果、Azure AI Video Indexer によって生成された分析情報が取得されます。 この例では、インデックス付けジョブの出力が Azure Storage に格納されます。 ただし、この出力を使用して何を実行するかはユーザーの自由です。
前提条件
- Azure サブスクリプションをお持ちでない場合は開始する前にAzure 無料アカウントを作成してください。
- ARM ベースの Azure AI Video Indexer アカウントを作成します。
- Azure Storage アカウントを作成します。 VI のストレージ アカウントは、Standard 汎用 v2 ストレージ アカウントである必要があります。 Storage アカウントのアクセス キーをメモしてください。
- 2 つのコンテナーを作成します: 1 つはメディア ファイルを格納し、もう 1 つは Azure AI Video Indexer によって生成された分析情報を格納します。 このアーティクルでは、コンテナーは
videos
およびinsights
です。
- 2 つのコンテナーを作成します: 1 つはメディア ファイルを格納し、もう 1 つは Azure AI Video Indexer によって生成された分析情報を格納します。 このアーティクルでは、コンテナーは
アクセス トークンを生成する
- generateAccessToken を使用してアクセス トークンを生成します。 [Try キー] を選択して、アカウントの正しい値を取得します。
- 後の手順でメモ帳にコピーして貼り付けます。
フロー #1: ファイルのアップロード フローを設定する
このセクションでは、最初のファイルアップロードフローを設定する方法について説明します。 最初のフローは、Azure Storage アカウントで BLOB が追加または変更されたときにトリガーされます。 インデックス付けの操作が完了したら通知を送信するためのコールバック URL と共に、新しいファイルを Azure AI Video Indexer にアップロードします。
フローの手順は次のとおりです。
- BLOB が追加または変更されたとき (プロパティのみ) (V2)
- パスを使用して SAS URI を作成する (V2)
- HTTP
- ビデオとインデックスをアップロードする
ブログが追加または変更されたとき (プロパティのみ)(V2) ステップを作成する
Azure Video Indexer アカウント リージョンと同じリージョンにLogic App を作成します (推奨されますが、必須ではありません)。
ロジック アプリの
UploadIndexVideosApp
を呼び出します。- [プランの型] で [従量課金]を選択します。
- [確認および作成] ->[作成]を選択します。
- ロジック アプリのデプロイが完了したら、Azure portal で、新しく作成したロジック アプリを検索してそこに移動します。
- 左側のパネルの [設定] セクションで、[ID] タブを選択します。
- [システム割り当て済み] で、[状態] を [オフ] から [オン] に変更します (このステップは、このチュートリアルの後半で重要です)。
- ページの上部にある [保存] をクリックします。
- 左側のウィンドウで、[ロジック アプリ デザイナー] タブを選択します。
- 空のロジック アプリ フローを 選択します。
- [操作の選択] ブレードで "BLOB" を検索します。
- [すべて] タブで、Azure Blob Storage コンポーネントを選択します。
- [トリガー] で、 BLOB が追加または変更されたとき (プロパティのみ) (V2) トリガーを選択します。
BLOB が追加または変更された場合 (プロパティのみ) (V2)、トリガー作成します。
ストレージ接続を次の値に設定します。
Key 値 接続名 <接続に名前を付けます>。 Authentication type アクセス キー Azure Storage アカウント名 <メディア ファイルが格納されるストレージ アカウント名>。 Azure Storage アカウントのアクセス キー ストレージ アカウントのアクセス キーを取得するには、Microsoft Azure portal の >my-storage -> にある -[セキュリティとネットワーク] の ->[アクセス キー] ->で、いずれかのキーをコピーします。 - [作成] を選択します
- 変更を監視する BLOB ストレージ コンテナーを指定します。
Key 値 ストレージ アカウント名 メディア ファイルが格納されるストレージ アカウント名 コンテナー /videos
- [保存 選択 ->
パスを使用して SAS URI を作成する (V2)
+ 新しいステップ を選択する
パス アクションを使用して SAS URI を作成します。
- [Actions]\(アクション\) タブを選択します。
- パスで SAS URI の作成 (V2) を検索して選択します。
キー 値 ストレージ アカウント名 <メディア ファイルが格納されるストレージ アカウント名>。 BLOB パス [動的コンテンツ] で、[ファイル パスのリスト] を選択する グループ ポリシー識別子 既定値のままにします。 アクセス許可 読み取り Shared Access プロトコル ([Add new parameter]\(新しいパラメーターの追加\) を押した後に表示されます) HttpsOnly - [保存] を選択します。
[+ 新しいステップ] を選択します。
HTTP アクションを作成する
次の表の値を使用して、 HTTP アクションを検索して作成します。
Key 値 メモ 方法 投稿 URI [アクセス トークン](#generate アクセス トークン) 本文 { "permissionType": "Contributor", "scope": "Account" }
REST ドキュメントの例を参照し、POST 行を削除してください。 新しいパラメーターの追加 認証 - 次の表に従って、認証に必要なパラメーターを入力します。
Key 値 Authentication type マネージド ID マネージド ID システム割り当てマネージド ID 対象者 https://management.core.windows.net
- [保存] を選択します。
アクセス許可の設定
ロジック アプリと Azure AI Video Indexer アカウントの間のアクセス許可を設定します。
Azure AI Video Indexer リソースに対するアクセス許可のシステム割り当てマネージド ID を設定します。 Azure portal で、Azure AI Video Indexer リソース/アカウントに移動します。
- 左側のブレードで、[アクセス制御] を選択します。
- [追加] ->[ロールの割り当ての追加] - >[共同作成者] - [>次へ] - >[ユーザー、グループ、またはサービス プリンシパル] -> [+ メンバーの選択] の順に選択します。
- [メンバー] で、作成した Azure Logic Apps 名 (この場合は
UploadIndexVideosApp
) を検索します。 - [選択] を選択します。
- [確認と割り当て] を選択します。
ビデオとインデックスのアップロード アクションを作成する
Video Indexer(V2) を選択します。
Video Indexer(V2) から [Upload Video and index] (ビデオのアップロードとインデックス付け) を選びます。
次の表のパラメーターを使用して Video Indexer アカウントへの接続を設定します。
Key 値 接続名 <接続名を入力します>、この場合は aviconnection
です。API key これは個人用 API キーです。これは、[開発者ポータル] の [プロファイル] で使用できます。このロジック アプリは ARM アカウント用であるため、実際の API キーは必要なく、12345 のようなダミー値を入力できます [作成] を選択します。
[ビデオのアップロードとインデックス付け] アクション パラメーターを入力します。
ヒント
VIアカウントIDが見つからず、ドロップダウンにない場合は、カスタム値を使用します。
Key 値 場所 関連付けられている Azure AI Video Indexer アカウントの場所。 取引先企業 ID 関連付けられている Azure AI Video Indexer アカウントのアカウント ID。 アカウント ID は、Microsoft Azure portal 内のアカウントの [概要] ページにあります。 または、Azure AI Video Indexer Web サイトの左側にある [アカウント設定] タブ。 Access Token body('HTTP')['accessToken']
式を使用して、前の HTTP 呼び出しから適切な形式でアクセス トークンを抽出します。ビデオ名 [BLOB が追加または変更されたとき] アクションの動的コンテンツから [ファイル名のリスト] を選択します。 ビデオの URL [パスによる SAS URI の作成] アクションの動的コンテンツから [Web URL] を選択します。 本文 既定のままでかまいません。 [保存] を選択します。
フロー #2: 消費型の新しいロジック アプリを作成する
2 つ目のフローである、消費型の Logic Apps を作成します。 2 番目のフローは、コールバック URL に基づいてトリガーされ、抽出された分析情報を Azure Storage の JSON ファイルに保存します。
フローの手順は次のとおりです。
- HTTP 要求の受信時
- HTTP
- ビデオ インデックスを取得する
- BLOB を作成する (V2)
トリガーをセットアップする
HTTP 要求が受信されたら、 を検索して選択。
トリガーには、HTTP POST URL フィールドがあります。 この URL はフローを保存するまで生成されませんが、最終的にこの URL が必要になります。
ヒント
このステップで作成した URL に戻ります。
アクセス トークンを生成する
最初のアクセス トークンの設定方法によっては、別のアクセス トークンを生成することが必要になる場合があります。 コピーしてメモ帳に貼り付けます。
- アクセス トークンを生成します。
- [保存] ->[+ 新しいステップ] の順に選択します。
Video Indexer の分析情報の取得を設定する
"Video Indexer" を検索します。
Video Indexer(V2) から [ビデオ インデックスの取得] アクションを選びます。
接続名を設定します。
キー 値 接続名 <接続の名前>。 たとえば、 aviconnection
のようにします。API key これは個人用 API キーで、開発者ポータルの [プロファイル] で使用できます。 詳細については、「API のサブスクライブ」を参照してください。 [作成] を選択します。
次の表に従って、必要なパラメーターを入力します。
キー 値 場所 Azure AI Video Indexer アカウントの場所。 取引先企業 ID Video Indexer アカウント ID は、Azure portal のリソース/アカウントの [概要] ページからコピーできます。 ビデオ ID* ビデオ ID の場合は、 Expression 型の動的コンテンツを追加し、 triggerOutputs()['query']['id'] という式を入力します。 Access Token 動的コンテンツの [JSON の解析] セクションで、解析 JSON アクションの出力である accessToken を選択します。 *この式は、コネクタに対して、トリガーの出力からビデオ ID を取得するように指示します。 この場合、トリガーの出力は、最初のトリガーの [ビデオのアップロードとインデックス付け] の出力になります。
[保存] ->[+ 新しいステップ] の順に選択します。
BLOB を作成し、分析情報 JSON を格納します。
アクションのグループから "Azure BLOB" を検索します。
[blob(V2) の作成] を選択します。
JSON 分析情報ファイルを格納する BLOB ストレージへの接続を設定します。
キー 値 接続名 <接続名を入力します>。 Authentication type アクセス キー Azure Storage アカウント名 <*分析情報が格納されるストレージ アカウント名*>。 Azure Storage Account Access Key (Azure ストレージ アカウント アクセス キー) Microsoft Azure portal - >my-storage-> に移動し、[セキュリティとネットワーク] - [>アクセス キー ->] で、いずれかのキーをコピーします。 - [作成] を選択します。
- 分析情報を格納するフォルダーを設定します。
キー 値 ストレージ アカウント名 <JSON 出力を含むストレージ アカウント名を入力します (このチュートリアルでは、ソース ビデオと同じです)。> フォルダー パス ドロップダウンから /insights
を選択しますBLOB 名 動的コンテンツの [ビデオ インデックスの取得] セクションで [名前] を選択して追加 _insights.json
すると、分析情報ファイル名がビデオ名 + insights.json になりますBLOB コンテンツ 動的コンテンツの [ビデオ インデックスの取得] セクションで、[本文] を選択します。 - [フローを保存] を選択します。
インデックス ジョブが完了したときに通知を受け取るコールバック URL を更新します。
フローを保存すると、トリガーに HTTP POST の URL が作成されます。
- トリガーから URL をコピーします。
- 1 つ目のフローに戻り、[Upload video and index]\(ビデオのアップロードとインデックス付け\) アクションの [コールバック URL] パラメーターに URL を貼り付けます。
両方のフローが保存されていることを確認します。