Delen via


Verbinding maken met Media Services v3-API - Node.js

Media Services-logo v3


Waarschuwing

Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de Handleiding voor buitengebruikstelling van AMS voor meer informatie.

In dit artikel wordt beschreven hoe u verbinding maakt met de Azure Media Services v3 node.js SDK met behulp van de aanmeldingsmethode van de service-principal. U gaat werken met bestanden in de opslagplaats met voorbeelden van media-services-v3-node-tutorials . Het voorbeeld HelloWorld-ListAssets bevat de code voor het verbinden en vervolgens een lijst met assets in het account.

Vereisten

Belangrijk

Bekijk de naamconventies van Azure Media Services om inzicht te hebben in de belangrijke naamgevingsbeperkingen voor entiteiten.

De opslagplaats met Node.JS voorbeelden klonen

U werkt met een aantal bestanden in Azure-voorbeelden. Kloon de opslagplaats met Node.JS voorbeelden.

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

De Node.js-pakketten installeren

Installeren @azure/arm-mediaservices

npm install @azure/arm-mediaservices

Voor dit voorbeeld gebruikt u de volgende pakketten in het package.json bestand.

Pakket Beschrijving
@azure/arm-mediaservices Azure Media Services SDK.
Als u wilt controleren of u het nieuwste Azure Media Services-pakket gebruikt, controleert u npm install @azure/arm-mediaservices.
@azure/identity Vereist voor Azure AD verificatie met behulp van service-principal of beheerde identiteit
@azure/storage-blob Opslag-SDK. Wordt gebruikt bij het uploaden van bestanden naar assets.
@azure/abort-controller Wordt samen met de opslagclient gebruikt om een time-out uit te voeren voor langlopende downloadbewerkingen

Het package.json bestand maken

  1. Maak een package.json bestand met uw favoriete editor.
  2. Open het bestand en plak de volgende code:
{
  "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"
  }
}

Verbinding maken met Node.js-client met behulp van TypeScript

Voorbeeld van .env-bestand

U bewaart uw verificatiewaarden in een bestand met de naam .env. (Dat klopt, geen bestandsnaam, alleen de extensie.) Lees Toegang tot de API voor meer informatie over het ophalen en kopiƫren van deze waarden. U kunt de waarden ophalen op de pagina API-toegang voor uw Media Services-account in de portal of de CLI gebruiken om de benodigde waarden op te halen.

Kopieer en plak de waarden in een bestand met de naam .env. Het bestand moet worden opgeslagen in de hoofdmap van uw werkopslagplaats.

Zodra u het .env-bestand hebt gemaakt, kunt u aan de slag met de voorbeelden.

De voorbeeldtoepassing HelloWorld-ListAssets uitvoeren

  1. Start Visual Studio Code vanuit de hoofdmap.
cd media-services-v3-node-tutorials
code .
  1. Installeer de pakketten die in het package.json-bestand worden gebruikt vanuit een terminal
npm install
  1. Maak een kopie van het bestand sample.env , wijzig de naam ervan in .env en werk de waarden in het bestand bij zodat deze overeenkomen met uw account- en abonnementsgegevens. Mogelijk moet u deze informatie eerst verzamelen van de Azure Portal.

  2. Wijzig de map in de map HelloWorld-ListAssets

cd HelloWorld-ListAssets
  1. Open het list-assets.ts-bestand in de map HelloWorld-ListAssets en druk op F5 in Visual Studio Code om het script uit te voeren. Er wordt een lijst met assets weergegeven als er al assets in het account staan. Als het account leeg is, ziet u een lege lijst.

Als u snel assets in de lijst wilt zien, gebruikt u de portal om een paar videobestanden te uploaden. Assets worden automatisch gemaakt en als u dit script opnieuw uitvoert, worden de namen ervan geretourneerd.

Het voorbeeld HelloWorld-ListAssets nader bekijken

In het voorbeeld HelloWorld-ListAssets ziet u hoe u verbinding maakt met de Media Services-client met een service-principal en assets in het account weergeeft. Zie de opmerkingen in de code voor een gedetailleerde uitleg van wat het doet.

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

Meer voorbeelden

Er zijn nog veel meer voorbeelden beschikbaar in de opslagplaats. Raadpleeg het leesmij-bestand voor de meest recente bijgewerkte voorbeelden.

Naslaginformatie voor JavaScript-/TypeScript-ontwikkelaars van Media Services

Help en ondersteuning

U kunt contact opnemen met Media Services met vragen of onze updates op een van de volgende manieren volgen: