Media Services v3 API에 연결 - Node.js
경고
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 탭의 모든 항목을 메모장에 복사합니다. - 최신 버전의 JavaScript용 AzureMediaServices SDK를 얻어야 합니다.
중요
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 파일 만들기
- 즐겨 찾기 편집기를 사용하여
package.json
파일을 만듭니다. - 파일을 열고 다음 코드를 붙여넣습니다.
{
"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 실행
- 루트 폴더에서 Visual Studio Code를 시작합니다.
cd media-services-v3-node-tutorials
code .
- 터미널에서 package.json 파일에 사용된 패키지 설치
npm install
sample.env 파일의 복사본을 만들고 이름을 .env로 변경하고 파일의 값을 계정 및 구독 정보와 일치하도록 업데이트합니다. 먼저 Azure Portal에서 이 정보를 수집해야 할 수 있습니다.
디렉터리를 HelloWorld-ListAssets 폴더로 변경합니다.
cd HelloWorld-ListAssets
- 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 개발자를 위한 참조
- npm install @azure/arm-mediaservices
- Node.js용 Azure Media Services 모듈의 참조 문서
- JavaScript 및 Node.js 개발자용 Azure
- Media Services source code in the @azure/azure-sdk-for-js Git Hub repo
- Node.js 개발자를 위한 Azure 패키지 설명서
- Media Services 개념
- JavaScript 및 Node.js 개발자용 Azure
- Media Services source code in the @azure/azure-sdk-for-js repo
도움말 및 지원 보기
다음 방법 중 하나로 Media Services에 질문하거나 업데이트를 따를 수 있습니다.
- 질문과 대답
-
Stack Overflow. 를 사용하여 질문에 태그를 지정
azure-media-services
합니다. - @MSFTAzureMedia 또는 @AzureSupport 사용하여 지원을 요청합니다.
- Azure Portal 통해 지원 티켓을 엽니다.