Conecte-se à API de Serviços de Mídia v3 - Node.js

Logotipo dos Serviços de Mídia v3


Aviso

Os Serviços de Mídia do Azure serão desativados em 30 de junho de 2024. Para obter mais informações, consulte o Guia de Desativação do AMS.

Este artigo mostra como se conectar ao SDK do node.js dos Serviços de Mídia do Azure v3 usando o método de entrada da entidade de serviço. Você trabalhará com arquivos no repositório de exemplos media-services-v3-node-tutorials. O exemplo HelloWorld-ListAssets contém o código para a conexão e lista os Ativos na conta.

Pré-requisitos

Importante

Examine as convenções de nomenclatura dos Serviços de Mídia do Azure para entender as principais restrições de nomenclatura em entidades.

Clonar o repositório de exemplos do Node.JS

Você trabalhará com alguns arquivos nos Exemplos do Azure. Clone o repositório de exemplos do Node.JS.

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

Instalar os pacotes do Node.js

Instalar @azure/arm-mediaservices

npm install @azure/arm-mediaservices

Para este exemplo, você usará os seguintes pacotes no arquivo package.json.

Pacote Descrição
@azure/arm-mediaservices SDK dos Serviços de Mídia do Azure.
Para verificar se você está usando o pacote mais recente dos Serviços de Mídia do Azure, verifique a npm install @azure/arm-mediaservices.
@azure/identity Necessário para autenticação do Azure AD usando a Entidade de Serviço ou Identidade Gerenciada
@azure/storage-blob SDK de armazenamento. Usado ao carregar arquivos nos ativos.
@azure/abort-controller Usado junto com o cliente de armazenamento para atingir o tempo limite de operações de download de execução prolongada

Criar o arquivo package.json

  1. Crie um arquivo package.json usando seu editor favorito.
  2. Abra o arquivo e cole o seguinte 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"
  }
}

Conectar ao cliente Node.js usando o TypeScript

Exemplo de arquivo .env

Você manterá os valores de autenticação em um arquivo chamado .env. (Isso mesmo, sem nome de arquivo, apenas a extensão.) Leia Acessar a API para saber como obter e copiar esses valores. Você pode obter os valores na página de acesso à API para sua conta dos Serviços de Mídia no portal ou usar a CLI para obter os valores necessários.

Copie e cole os valores em um arquivo chamado .env. O arquivo deve ser armazenado na raiz do repositório de trabalho.

Depois de criar o arquivo .env, você pode começar a trabalhar com os exemplos.

Executar o aplicativo de exemplo HelloWorld-ListAssets

  1. Iniciar o Visual Studio Code da pasta raiz.
cd media-services-v3-node-tutorials
code .
  1. Instalar os pacotes usados no arquivo packages.json por meio de um Terminal
npm install
  1. Faça uma cópia do arquivo sample.env, renomeie-o para .env e atualize os valores no arquivo para que correspondam às informações de conta e de assinatura. Talvez seja necessário reunir essas informações no portal do Azure primeiro.

  2. Alterar o diretório na pasta HelloWorld-ListAssets

cd HelloWorld-ListAssets
  1. Abra o arquivo list-assets.ts na pasta HelloWorld-ListAssets e pressione a tecla F5 no código Visual Studio para começar a executar o script. Você deverá ver uma lista de ativos exibida se já tiver ativos na conta. Se a conta estiver vazia, você verá uma lista vazia.

Para ver rapidamente os ativos listados, use o portal para carregar alguns arquivos de vídeo. Cada um dos ativos serão criados automaticamente e executar novamente esse script retornará os nomes.

Uma análise mais detalhada do exemplo HelloWorld-ListAssets

O exemplo HelloWorld-ListAssets mostra como se conectar ao cliente dos Serviços de Mídia com uma Entidade de Serviço e listar os Ativos na conta. Confira os comentários no código para obter uma explicação detalhada do que ele faz.

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

Mais exemplos

Muitos outros exemplos estão disponíveis no repositório. Examine o arquivo leiame para obter os exemplos atualizados mais recentes.

Referências para desenvolvedores de Serviços de Mídia em JavaScript/TypeScript

Obter ajuda e suporte

Você pode entrar em contato com os Serviços de Mídia com perguntas ou seguir nossas atualizações por um dos seguintes métodos: