Compartir a través de


Conexión a la API de Media Services v3: Node.js

Logotipo de Media Services v3


Advertencia

Azure Media Services se retirará el 30 de junio de 2024. Para obtener más información, consulte la Guía de retirada de AMS.

En este artículo se muestra cómo conectarse al SDK de Azure Media Services v3 con node.js mediante el método de inicio de sesión de la entidad de servicio. Trabajará con archivos del repositorio de ejemplos media-services-v3-node-tutorials. El ejemplo HelloWorld-ListAssets contiene el código para conectar con los recursos de la cuenta y después enumerarlos.

Requisitos previos

Importante

Revise las convenciones de nomenclatura de Azure Media Services para comprender las importantes restricciones de nomenclatura asociadas a las entidades.

Clonación del repositorio de ejemplos de Node.JS

Trabajará con algunos archivos de ejemplos de Azure. Clone el repositorio de ejemplos de Node.JS.

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

Instalación de paquetes de Node.js

Instalar @azure/arm-mediaservices

npm install @azure/arm-mediaservices

En este ejemplo, utilizará los siguientes paquetes del archivo package.json.

Paquete Descripción
@azure/arm-mediaservices SDK de Azure Media Services.
Para asegurarse de que usa el paquete más reciente de Azure Media Services, vea npm install @azure/arm-mediaservices.
@azure/identity Se requiere para la autenticación de Azure AD mediante una entidad de servicio o una identidad administrada.
@azure/storage-blob SDK de Storage. Se utiliza cuando se cargan los archivos en los recursos.
@azure/abort-controller Se usa junto con el cliente de almacenamiento para agotar el tiempo de espera de las operaciones de descarga de larga duración.

Creación del archivo package.json

  1. Cree un archivo package.json con el editor que prefiera.
  2. Abra el archivo y pegue el siguiente código:
{
  "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"
  }
}

Conexión con el cliente de Node.js mediante TypeScript

Archivo .env de ejemplo

Mantendrás los valores de autenticación en un archivo denominado .env. (Correcto, sin nombre de archivo, solo la extensión). Lee Acceso a la API para obtener y copiar estos valores. Puedes obtener los valores de la página Acceso de API de la cuenta de Media Services en el portal o usar la CLI para obtener los valores necesarios.

Copia y pega los valores en un archivo denominado .env. El archivo debería almacenarse en la raíz del repositorio de trabajo.

Después de crear el archivo .env, puede empezar a trabajar con los ejemplos.

Ejecución de la aplicación de ejemplo HelloWorld-ListAssets

  1. Inicie Visual Studio Code desde la carpeta raíz.
cd media-services-v3-node-tutorials
code .
  1. Instale los paquetes que se usan en el archivo package.json desde un terminal.
npm install
  1. Realice una copia del archivo sample.env, cámbiele el nombre a .env y actualice los valores del archivo para que coincidan con la información de la cuenta y la suscripción. Es posible que primero deba recopilar esta información de Azure Portal.

  2. Cambie el directorio a la carpeta HelloWorld-ListAssets.

cd HelloWorld-ListAssets
  1. Abra el archivo list-assets.ts en la carpeta HelloWorld-ListAssets y presione la tecla F5 en Visual Studio Code para empezar a ejecutar el script. Si ya tiene recursos en la cuenta, debería ver una lista con ellos. Si la cuenta está vacía, verá una lista vacía.

Para ver rápidamente los recursos enumerados, use el portal para cargar algunos archivos de vídeo. Se crearán automáticamente los recursos para cada uno de ellos. Si vuelve a ejecutar el script, se devolverán sus nombres.

Una mirada más detallada al ejemplo HelloWorld-ListAssets

El ejemplo HelloWorld-ListAssets muestra cómo conectarse al cliente de Media Services con una entidad de servicio y enumerar los recursos de la cuenta. Consulte en los comentarios del código una explicación detallada de lo que hace.

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

Más ejemplos

En el repositorio hay muchos más ejemplos. En el archivo Léame encontrará los ejemplos actualizados más recientes.

Referencias para desarrolladores de JavaScript/TypeScript para Media Services

Obtener ayuda y soporte técnico

Puede ponerse en contacto con Media Services con preguntas o seguir nuestras actualizaciones mediante uno de los métodos siguientes: