다음을 통해 공유


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 샘플에는 연결한 다음 계정의 자산을 나열하는 코드가 포함되어 있습니다.

필수 구성 요소

중요

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 파일의 다음 패키지를 사용합니다.

패키지 Description
@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 코드에서 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);
});

다른 샘플

리포지토리에서 더 많은 샘플을 사용할 수 있습니다. 최신 업데이트 샘플은 추가 정보 파일을 검토합니다.

Media Services JavaScript/TypeScript 개발자를 위한 참조

도움말 및 지원 보기

다음 방법 중 하나로 Media Services에 질문하거나 업데이트를 따를 수 있습니다.