Share via


Media Services v3 API に接続する - Node.js

Media Services ロゴ v3


警告

Azure Media Services は、2024 年 6 月 30 日に廃止されます。 詳細については、「 AMS 廃止ガイド」を参照してください。

この記事では、サービス プリンシパルによるサインイン方式を使用して Azure Media Services v3 Node.js SDK に接続する方法を説明します。 media-services-v3-node-tutorials サンプルのリポジトリにあるファイルを使用します。 HelloWorld-ListAssets サンプルには、接続してからアカウントの資産を一覧表示するためのコードが含まれています。

前提条件

  • Visual Studio Code のインストール。
  • Node.js をインストールします。
  • TypeScript をインストールします。
  • Media Services アカウントを作成する リソース グループ名と Media Services アカウント名を覚えておいてください。
  • アプリケーションのサービス プリンシパルを作成します。 API へのアクセスするに関するページを参照してください。
    Pro ヒント! このウィンドウを開いたままにするか、JSON タブ内のすべてをメモ帳にコピーします。
  • AzureMediaServices SDK for JavaScript の最新バージョンを入手していることを確認してください。

重要

エンティティの名前付けに関する重要な制限事項を理解するには、Azure Media Services の「名前付け規則」を確認してください。

Node.JS のサンプル リポジトリを複製する

Azure のサンプルのいくつかのファイルを使用します。 Node.JS のサンプル リポジトリを複製します。

git clone https://github.com/Azure-Samples/media-services-v3-node-tutorials.git

Node.js パッケージをインストールする

@azure/arm-mediaservices のインストール

npm install @azure/arm-mediaservices

この例では、package.json ファイル内の次のパッケージを使用します。

Package 説明
@azure/arm-mediaservices Azure Media Services SDK。
最新の Azure Media Services パッケージを使用していることを確認するには、npm install @azure/arm-mediaservices を調べてください。
@azure/identity サービス プリンシパルまたはマネージド ID を使用した Azure AD 認証に必要です
@azure/storage-blob Storage SDK。 ファイルを資産にアップロードするときに使用します。
@azure/abort-controller 長時間実行されるダウンロード操作をタイムアウトにするために、ストレージ クライアントと共に使用されます

package.json ファイルを作成する

  1. 好みのエディターを使用して package.json ファイルを作成します。
  2. ファイルを開き、次のコードを貼り付けます。
{
  "name": "media-services-node-sample",
  "version": "0.1.0",
  "description": "",
  "main": "./index.ts",
  "dependencies": {
    "@azure/arm-mediaservices": "^10.0.0",
    "@azure/abort-controller": "^1.0.2",
    "@azure/identity": "^2.0.0",
    "@azure/storage-blob": "^12.4.0"
  }
}

TypeScript を使用して Node.js クライアントに接続する

サンプルの .env ファイル

認証値は .env という名前のファイルに保持されます。 (その通り、ファイル名はなく、拡張子だけです。) これらの値を取得してコピーする方法は、API へのアクセスをご覧ください。 ポータルで Media Services アカウントの API アクセス ページから値を取得するか、CLI を使用して必要な値を取得できます。

値をコピーして .env という名前のファイルに貼り付けます。 これは、作業リポジトリのルートに格納される必要があります。

" .env" ファイルを作成したら、サンプルの使用を開始できます。

サンプル アプリケーション HelloWorld-ListAssets を実行する

  1. ルート フォルダーから Visual Studio Code を起動します。
cd media-services-v3-node-tutorials
code .
  1. ターミナルから package.json ファイルで使用されるパッケージをインストールします
npm install
  1. sample.envファイルのコピーを作成し、名前を .env に変更し、アカウントとサブスクリプションの情報に合わせてファイルの値を更新します。 この情報は、まず Azure Portal から収集する必要があります。

  2. HelloWorld-ListAssets フォルダーに移動します

cd HelloWorld-ListAssets
  1. HelloWorld-ListAssets フォルダーの list-assets.ts ファイルを開き、Visual Studio Code の F5 キーを押してスクリプトの実行を開始します。 アカウントに資産が既に存在する場合は、表示される資産の一覧が表示されます。 アカウントが空の場合は、空の一覧が表示されます。

一覧表示される資産をすばやく確認するには、ポータルを使用して、いくつかのビデオ ファイルをアップロードします。 資産はそれぞれ自動的に作成され、このスクリプトを再度実行すると、それらの名前が返されます。

HelloWorld-ListAssets サンプルの詳細

HelloWorld-ListAssets サンプルでは、サービス プリンシパルを使用して Media Services クライアントに接続し、アカウントの資産を一覧表示する方法が示されています。 実行される内容の詳細については、コード内のコメントを参照してください。

import { DefaultAzureCredential } from "@azure/identity";
import {
  AzureMediaServices
} from '@azure/arm-mediaservices';

// Load the .env file if it exists
import * as dotenv from "dotenv";
dotenv.config();

export async function main() {
  // Copy the samples.env file and rename it to .env first, then populate it's values with the values obtained
  // from your Media Services account's API Access page in the Azure portal.
  const clientId: string = process.env.AADCLIENTID as string;
  const secret: string = process.env.AADSECRET as string;
  const tenantDomain: string = process.env.AADTENANTDOMAIN as string;
  const subscriptionId: string = process.env.SUBSCRIPTIONID as string;
  const resourceGroup: string = process.env.RESOURCEGROUP as string;
  const accountName: string = process.env.ACCOUNTNAME as string;

  // This sample uses the default Azure Credential object, which relies on the environment variable settings.
  // If you wish to use User assigned managed identity, see the samples for v2 of @azure/identity
  // Managed identity authentication is supported via either the DefaultAzureCredential or the ManagedIdentityCredential classes
  // https://learn.microsoft.com/javascript/api/overview/azure/identity-readme?view=azure-node-latest
  // See the following examples for how to authenticate in Azure with managed identity
  // https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity_2.0.1/sdk/identity/identity/samples/AzureIdentityExamples.md#authenticating-in-azure-with-managed-identity


  // const credential = new ManagedIdentityCredential("<USER_ASSIGNED_MANAGED_IDENTITY_CLIENT_ID>");
  const credential = new DefaultAzureCredential();

  let mediaServicesClient =  new AzureMediaServices(credential, subscriptionId)

  // List Assets in Account
  console.log("Listing assets in account:")
  for await (const asset of mediaServicesClient.assets.list(resourceGroup, accountName, { top:1000 })){
    console.log(asset.name);
  }

}

main().catch((err) => {
  console.error("Error running sample:", err.message);
});

その他のサンプル

リポジトリには、さらに多くのサンプルが用意されています。 最新の更新されたサンプルについては、readme ファイルを確認してください。

Media Services JavaScript/TypeScript 開発者向けリファレンス

ヘルプとサポート

Media Services に質問がある場合は、次のいずれかの方法で更新プログラムに従ってください。

  • Q & A
  • Stack Overflow。 質問に タグを付け、 を使用します azure-media-services
  • @MSFTAzureMedia するか 、@AzureSupport を使用してサポートを要求します。
  • Azure portalからサポート チケットを開きます。