Condividi tramite


Connettersi all'API Servizi multimediali v3 - Node.js

Logo servizi multimediali v3


Avviso

Servizi multimediali di Azure verrà ritirato il 30 giugno 2024. Per altre informazioni, vedere la Guida al ritiro di AMS.

Questo articolo illustra come connettersi a Servizi multimediali di Azure v3 node.js SDK usando il metodo di accesso dell'entità servizio. I file verranno usati nel repository di esempi media-services-v3-node-tutorials . L'esempio HelloWorld-ListAssets contiene il codice per la connessione e quindi elencare Asset nell'account.

Prerequisiti

Importante

Esaminare le convenzioni di denominazione di Servizi multimediali di Azure per comprendere le importanti restrizioni di denominazione sulle entità.

Clonare il repository di esempi di Node.JS

Verranno usati alcuni file in Esempi di Azure. Clonare il repository di esempi di Node.JS.

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

Installare i pacchetti Node.js

Installare @azure/arm-mediaservices

npm install @azure/arm-mediaservices

Per questo esempio si useranno i pacchetti seguenti nel package.json file.

Pacchetto Descrizione
@azure/arm-mediaservices SDK di Servizi multimediali di Azure.
Per assicurarsi di usare il pacchetto di Servizi multimediali di Azure più recente, controllare npm install @azure/arm-mediaservices.
@azure/identity Obbligatorio per l'autenticazione di Azure AD usando l'entità servizio o l'identità gestita
@azure/storage-blob Storage SDK. Usato durante il caricamento di file in asset.
@azure/abort-controller Usato insieme al client di archiviazione per timeout operazioni di download a esecuzione prolungata

Creare il file di package.json

  1. Creare un package.json file usando l'editor preferito.
  2. Aprire il file e incollare il codice seguente:
{
  "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"
  }
}

Connettersi al client Node.js tramite TypeScript

File con estensione env di esempio

I valori di autenticazione verranno mantenuto in un file denominato .env. È giusto, nessun nome di file, solo l'estensione. Leggere Accedere all'API per informazioni su come ottenere e copiare questi valori. È possibile ottenere i valori dalla pagina Di accesso API per l'account di Servizi multimediali nel portale o usare l'interfaccia della riga di comando per ottenere i valori necessari.

Copiare e incollare i valori in un file denominato .env. Il file deve essere archiviato nella radice del repository di lavoro.

Dopo aver creato il file con estensione env , è possibile iniziare a usare gli esempi.

Eseguire l'applicazione di esempio HelloWorld-ListAssets

  1. Avviare Visual Studio Code dalla cartella radice.
cd media-services-v3-node-tutorials
code .
  1. Installare i pacchetti usati nel file package.json da un terminale
npm install
  1. Creare una copia del file sample.env , rinominarla in .env e aggiornare i valori nel file in modo che corrispondano alle informazioni sull'account e sulla sottoscrizione. Potrebbe essere necessario raccogliere queste informazioni dall'portale di Azure prima.

  2. Modificare la directory nella cartella HelloWorld-ListAssets

cd HelloWorld-ListAssets
  1. Aprire il file list-assets.ts nella cartella HelloWorld-ListAssets e premere il tasto F5 nel codice di Visual Studio per iniziare a eseguire lo script. Verrà visualizzato un elenco di asset visualizzati se sono già presenti asset nell'account. Se l'account è vuoto, verrà visualizzato un elenco vuoto.

Per visualizzare rapidamente gli asset elencati, usare il portale per caricare alcuni file video. Gli asset verranno creati automaticamente ognuno e l'esecuzione di questo script restituirà di nuovo i loro nomi.

Un'occhiata più vicina all'esempio HelloWorld-ListAssets

L'esempio HelloWorld-ListAssets illustra come connettersi al client di Servizi multimediali con un'entità servizio e elencare asset nell'account. Vedere i commenti nel codice per una spiegazione dettagliata delle operazioni che esegue.

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);
});

Altri esempi

Molti altri esempi sono disponibili nel repository. Esaminare il file readme per gli esempi aggiornati più recenti.

Riferimenti per sviluppatori JavaScript/TypeScript di Servizi multimediali

Guida e supporto tecnico

È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti in base a uno dei metodi seguenti: