Share via


Se connecter à l’API Media Services v3 – Node.js

Logo de Media Services v3


Avertissement

Azure Media Services sera mis hors service le 30 juin 2024. Pour plus d’informations, consultez le Guide de mise hors service AMS.

Cet article explique comment se connecter au kit SDK node.js Azure Media Services v3 suivant la méthode de connexion au principal de service. Vous travaillerez avec les fichiers contenus dans le dépôt d’exemples media-services-v3-node-tutorials. L’exemple HelloWorld-ListAssets contient le code pour la connexion, puis liste les actifs multimédias dans le compte.

Prérequis

Important

Passez en revue les conventions de nommage Azure Media Services pour comprendre les restrictions de nommage importantes concernant les entités.

Cloner le dépôt d’exemples Node.JS

Vous travaillerez avec certains fichiers contenus dans des exemples Azure. Clonez le dépôt d’exemples Node.JS.

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

Installer les packages Node.js

Installer @azure/arm-mediaservices

npm install @azure/arm-mediaservices

Pour cet exemple, vous utiliserez les packages suivants dans le fichier package.json.

Package Description
@azure/arm-mediaservices Kit SDK Azure Media Services.
Pour veiller à utiliser le dernier package Azure Media Services, vérifiez npm install @azure/arm-mediaservices.
@azure/identity Nécessaire pour l’authentification Azure AD à l’aide d’un principal de service ou d’une identité managée
@azure/storage-blob Kit SDK Stockage servant à charger des fichiers dans les ressources.
@azure/abort-controller Utilisé avec le client de stockage pour faire expirer les opérations de téléchargement de longue durée

Créer le fichier package.json

  1. Créez un fichier package.json dans votre éditeur favori.
  2. Ouvrez le fichier et collez-y le code suivant :
{
  "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"
  }
}

Se connecter à un client Node.js à l’aide de TypeScript

Exemple de fichier .env

Vous allez conserver vos valeurs d’authentification dans un fichier nommé .env. (Ceci est correct, pas de nom de fichier, juste l’extension.) Lisez Accéder à l’API pour savoir comment obtenir et copier ces valeurs. Vous pouvez obtenir les valeurs à partir de la page Accéder à l’API de votre compte Media Services dans le portail ou utiliser l’interface CLI pour obtenir les valeurs nécessaires.

Copiez et collez les valeurs dans un fichier nommé .env. Le fichier doit être stocké à la racine de votre référentiel de travail.

Une fois le fichier .env créé, vous pouvez commencer à utiliser les exemples.

Exécuter l’exemple d’application HelloWorld-ListAssets

  1. Lancez Visual Studio Code à partir du dossier racine.
cd media-services-v3-node-tutorials
code .
  1. Installer les packages utilisés dans le fichier package.json à partir d’un terminal
npm install
  1. Effectuez une copie du fichier sample.env, renommez-le en .env et mettez à jour les valeurs du fichier pour qu’elles correspondent à vos informations de compte et d’abonnement. Vous devrez peut-être rassembler ces informations à partir du Portail Azure d’abord.

  2. Accédez au dossier HelloWorld-ListAssets

cd HelloWorld-ListAssets
  1. Ouvrez le fichier list-assets.ts dans le dossier HelloWorld-ListAssets, puis appuyez sur la touche F5 dans Visual Studio Code pour commencer à exécuter le script. Une liste d’actifs multimédias doit s’afficher si le compte en contient déjà. Si le compte est vide, une liste vide s’affiche.

Pour voir rapidement les actifs multimédias, utilisez le portail afin de charger quelques fichiers vidéo. Les actifs multimédias sont créés automatiquement, et une nouvelle exécution de ce script retourne leurs noms.

Analyse détaillée de l’exemple HelloWorld-ListAssets

L’exemple HelloWorld-ListAssets illustre comment se connecter au client Media Services avec un principal de service et lister les actifs multimédias dans le compte. Pour obtenir une explication détaillée de ce qu’il fait, consultez les commentaires dans le 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);
});

Autres exemples

De nombreux autres exemples sont disponibles dans le référentiel. Pour accéder aux derniers exemples mis à jour, consultez le fichier Lisez-moi.

Références pour les développeurs JavaScript/TypeScript pour Media Services

Obtenir de l’aide et du support

Vous pouvez contacter Media Services pour vous poser des questions ou suivre nos mises à jour en suivant l’une des méthodes suivantes :