Verbinden mit der Media Services v3-API – Node.js

Media Services-Logo v3


Warnung

Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im Leitfaden zur Einstellung von AMS.

In diesem Artikel wird gezeigt, wie Sie mit der Methode der Dienstprinzipalanmeldung eine Verbindung zum Azure Media Services v3 Node.js SDK herstellen. Sie arbeiten dabei mit Dateien im Beispielrepository media-services-v3-node-tutorials. Das Beispiel HelloWorld-ListAssets enthält den Code zum Herstellen einer Verbindung und anschließenden Auflisten von Medienobjekten im Konto.

Voraussetzungen

  • Eine Installation von Visual Studio Code.
  • Installieren Sie Node.js.
  • Installieren Sie TypeScript.
  • Erstellen Sie ein Media Services-Konto. Merken Sie sich unbedingt den Namen der Ressourcengruppe und den Namen des Media Services-Kontos.
  • Erstellen Sie einen Dienstprinzipal für Ihre Anwendung. Informationen finden Sie unter dem Zugriff auf APIs.
    Profi-Tipp: Lassen Sie dieses Fenster geöffnet, oder kopieren Sie den gesamten Inhalt der JSON-Registerkarte in den Editor.
  • Verwenden Sie unbedingt die aktuelle Version des AzureMediaServices SDK für JavaScript.

Wichtig

Sehen Sie sich die Benennungskonventionen für Azure Media Services an, um die wichtigen Benennungseinschränkungen für Entitäten zu verstehen.

Klonen des Node.js-Beispielrepositorys

Sie arbeiten mit einigen Dateien in Azure-Beispielen. Klonen Sie das Node.js-Beispielrepository.

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

Installieren des Node.js-Pakets

Installieren von @azure/arm-mediaservices

npm install @azure/arm-mediaservices

In diesem Beispiel verwenden Sie die folgenden Pakete in der Datei package.json.

Paket BESCHREIBUNG
@azure/arm-mediaservices Azure Media Services SDK
Um sicherzustellen, dass Sie das neueste Azure Media Services-Paket verwenden, überprüfen Sie npm install @azure/arm-mediaservices.
@azure/identity Ist für die Azure AD-Authentifizierung mit Dienstprinzipal oder verwalteter Identität erforderlich.
@azure/storage-blob Storage SDK Wird beim Hochladen von Dateien in Medienobjekte verwendet.
@azure/abort-controller Wird zusammen mit dem Speicherclient für das Timeout lang andauernder Downloadvorgänge verwendet.

Erstellen der Datei „package.json“

  1. Erstellen Sie eine Datei package.json mit Ihrem bevorzugten Editor.
  2. Öffnen Sie die Datei, und fügen Sie den folgenden Code ein:
{
  "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"
  }
}

Herstellen einer Verbindung zum Node.js-Client mit TypeScript

.env-Beispieldatei

Ihre Authentifizierungswerte sollten Sie in einer Datei mit dem Namen .env – richtig, kein Dateiname, nur die Erweiterung – speichern. Wie Sie diese Werte abrufen und kopieren, erfahren Sie unter Zugriff auf die API. Die Werte erhalten Sie im Portal auf der API-Zugriffsseite Ihres Media Services-Kontos oder über die CLI.

Kopieren Sie die Werte und fügen Sie sie in eine Datei mit dem Namen .env ein. Die Datei sollte im Stammverzeichnis Ihres Arbeitsrepositorys gespeichert werden.

Nachdem Sie die Datei .env erstellt haben, können Sie mit den Beispielen arbeiten.

Ausführen der Beispielanwendung HelloWorld-ListAssets

  1. Starten Sie Visual Studio Code über den Stammordner.
cd media-services-v3-node-tutorials
code .
  1. Installieren Sie die Pakete, die in der Datei package.json verwendet werden, über ein Terminal.
npm install
  1. Erstellen Sie eine Kopie der Datei sample.env, benennen Sie sie in .env um, und aktualisieren Sie die Werte in der Datei entsprechend Ihrem Konto und den Abonnementinformationen. Möglicherweise müssen Sie diese Informationen zuerst im Azure-Portal abrufen.

  2. Ändern Sie das Verzeichnis in den Ordner HelloWorld-ListAssets.

cd HelloWorld-ListAssets
  1. Öffnen Sie die Datei list-assets.ts im Ordner „HelloWorld-ListAssets“, und drücken Sie im Visual Studio-Code F5, um mit der Ausführung des Skripts zu beginnen. Es sollte eine Liste von Medienobjekten angezeigt werden, sofern bereits Medienobjekte im Konto vorhanden sind. Ist das Konto leer, wird eine leere Liste angezeigt.

Zum schnellen Anzeigen einer Liste von Medienobjekten laden Sie einige Videodateien über das Portal hoch. Medienobjekte werden jeweils automatisch erstellt, und beim erneuten Ausführen dieses Skripts werden die entsprechenden Namen zurückgegeben.

Genauere Betrachtung des Beispiels HelloWorld-ListAssets

Das Beispiel HelloWorld-ListAssets zeigt, wie Sie mit einem Dienstprinzipal eine Verbindung zum Media Services-Client herstellen und Medienobjekte im Konto auflisten. Eine ausführliche Erläuterung der Funktionsweise finden Sie in den Kommentaren im Code.

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

Weitere Beispiele

Im Repository sind noch viel mehr Beispiele verfügbar. Die neuesten aktualisierten Beispiele finden Sie in der Infodatei.

Referenzen zu Media Services JavaScript-/TypeScript-Entwickler

Anfordern von Hilfe und Support

Sie können Media Services mit Fragen kontaktieren oder unsere Updates mit einer der folgenden Methoden verfolgen: