Ligar à API v3 dos Serviços de Multimédia - Node.js
Aviso
Os Serviços de Multimédia do Azure serão descontinuados a 30 de junho de 2024. Para obter mais informações, veja o Guia de Extinção do AMS.
Este artigo mostra-lhe como ligar aos Serviços de Multimédia do Azure v3 node.js SDK com o método de início de sessão do principal de serviço. Irá trabalhar com ficheiros no repositório de exemplos media-services-v3-node-tutorials . O exemplo HelloWorld-ListAssets contém o código para ligar e, em seguida, lista Recursos na conta.
Pré-requisitos
- Uma instalação do Visual Studio Code.
- Instale Node.js.
- Instale o TypeScript.
- Criar uma conta dos Serviços de Multimédia. Não se esqueça do nome do grupo de recursos e do nome da conta dos Serviços de Multimédia.
- Crie um principal de serviço para a sua aplicação. Veja aceder às APIs.
Sugestão pro! Mantenha esta janela aberta ou copie tudo no separador JSON para o Bloco de Notas. - Certifique-se de que obtém a versão mais recente do SDK AzureMediaServices para JavaScript.
Importante
Reveja as convenções de nomenclatura dos Serviços de Multimédia do Azure para compreender as importantes restrições de nomenclatura às entidades.
Clonar o repositório de exemplos de Node.JS
Irá trabalhar com alguns ficheiros nos Exemplos do Azure. Clone o repositório de exemplos de Node.JS.
git clone https://github.com/Azure-Samples/media-services-v3-node-tutorials.git
Instalar os pacotes de Node.js
Instalar @azure/arm-mediaservices
npm install @azure/arm-mediaservices
Neste exemplo, irá utilizar os seguintes pacotes no package.json
ficheiro.
Pacote | Descrição |
---|---|
@azure/arm-mediaservices |
SDK dos Serviços de Multimédia do Azure. Para se certificar de que está a utilizar o pacote mais recente dos Serviços de Multimédia do Azure, verifique npm install @azure/arm-mediaservices. |
@azure/identity |
Necessário para Azure AD autenticação com o Principal de Serviço ou a Identidade Gerida |
@azure/storage-blob |
SDK de Armazenamento. Utilizado ao carregar ficheiros para recursos. |
@azure/abort-controller |
Utilizado juntamente com o cliente de armazenamento para exceder o limite de tempo das operações de transferência de execução prolongada |
Criar o ficheiro de package.json
- Crie um
package.json
ficheiro com o seu editor favorito. - Abra o ficheiro 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"
}
}
Ligar ao cliente Node.js com o TypeScript
Ficheiro .env de exemplo
Irá manter os valores de autenticação num ficheiro com o nome .env. (Isso mesmo, sem nome de ficheiro, apenas a extensão.) Leia Aceder à API para saber como obter e copiar estes valores. Pode obter os valores na página Acesso à API da sua conta dos Serviços de Multimédia no portal ou utilizar a CLI para obter os valores necessários.
Copie e cole os valores num ficheiro com o nome .env. O ficheiro deve ser armazenado na raiz do seu repositório de trabalho.
Depois de criar o ficheiro .env , pode começar a trabalhar com os exemplos.
Executar a aplicação de exemplo HelloWorld-ListAssets
- Inicie o Visual Studio Code a partir da Pasta raiz.
cd media-services-v3-node-tutorials
code .
- Instalar os pacotes utilizados no ficheiro de package.json a partir de um Terminal
npm install
Faça uma cópia do ficheiro sample.env , mude o nome para .env e atualize os valores no ficheiro para corresponder às informações da conta e da subscrição. Poderá ter de recolher estas informações do portal do Azure primeiro.
Alterar o diretório para a pasta HelloWorld-ListAssets
cd HelloWorld-ListAssets
- Abra o ficheiro list-assets.ts na pasta HelloWorld-ListAssets e prima a tecla F5 no Visual Studio Code para começar a executar o script. Deverá ver uma lista de recursos apresentada se já tiver recursos na conta. Se a conta estiver vazia, verá uma lista vazia.
Para ver rapidamente os recursos listados, utilize o portal para carregar alguns ficheiros de vídeo. Os recursos serão criados automaticamente em cada um deles e a execução deste script novamente devolverá os respetivos nomes.
Uma análise mais detalhada do exemplo HelloWorld-ListAssets
O exemplo HelloWorld-ListAssets mostra-lhe como ligar ao cliente dos Serviços de Multimédia com um Principal de Serviço e listar Recursos na conta. Veja os comentários no código para obter uma explicação detalhada do que 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
Estão disponíveis muitos mais exemplos no repositório. Reveja o ficheiro readme para obter os exemplos atualizados mais recentes.
Referências para programadores JavaScript/TypeScript dos Serviços de Multimédia
- npm install @azure/arm-mediaservices
- Documentação de referência para módulos dos Serviços de Multimédia do Azure para Node.js
- Azure para programadores de & Node.js JavaScript
- Media Services source code in the @azure/azure-sdk-for-js Git Hub repo
- Documentação do Pacote do Azure para programadores de Node.js
- Conceitos dos Serviços de Multimédia
- Azure para programadores de & Node.js JavaScript
- Media Services source code in the @azure/azure-sdk-for-js repo
Obter ajuda e suporte
Pode contactar os Serviços de Multimédia com perguntas ou seguir as nossas atualizações através de um dos seguintes métodos:
- Q & A
-
Stack Overflow. Perguntas sobre etiquetas com
azure-media-services
. - @MSFTAzureMedia ou utilize @AzureSupport para pedir suporte.
- Abra um pedido de suporte através do portal do Azure.