Conexión a la API de Media Services v3: Node.js
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
- Instalación de Visual Studio Code.
- Instale Node.js.
- Instale TypeScript.
- Cree una cuenta de Media Services. Asegúrese de recordar el nombre del grupo de recursos y el nombre de la cuenta de Media Services.
- Cree a una entidad de servicio para la aplicación. Consulte Acceso a la API.
Sugerencia PRO: mantenga esta ventana abierta o copie todo el contenido de la pestaña JSON en el Bloc de notas. - Asegúrese de obtener la versión más reciente del SDK de Azure Media Services para JavaScript.
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
- Cree un archivo
package.json
con el editor que prefiera. - 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
- Inicie Visual Studio Code desde la carpeta raíz.
cd media-services-v3-node-tutorials
code .
- Instale los paquetes que se usan en el archivo package.json desde un terminal.
npm install
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.
Cambie el directorio a la carpeta HelloWorld-ListAssets.
cd HelloWorld-ListAssets
- 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
- npm install @azure/arm-mediaservices
- Documentación de referencia para módulos de Azure Media Services para Node.js
- Azure para desarrolladores de JavaScript y Node.js
- Media Services source code in the @azure/azure-sdk-for-js Git Hub repo
- Documentación del paquete de Azure para desarrolladores de Node.js
- Conceptos de Azure Media Services
- Azure para desarrolladores de JavaScript y Node.js
- Media Services source code in the @azure/azure-sdk-for-js repo
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:
- PREGUNTAS Y RESPUESTAS
-
Stack Overflow. Etiquete preguntas con
azure-media-services
. - @MSFTAzureMedia o use @AzureSupport para solicitar soporte técnico.
- Abra una incidencia de soporte técnico a través del Azure Portal.