Nawiązywanie połączenia z interfejsem API usługi Media Services w wersji 3 — Node.js

Logo usługi Media Services w wersji 3


Ostrzeżenie

Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz Przewodnik po wycofaniu usługi AMS.

W tym artykule pokazano, jak nawiązać połączenie z zestawem SDK usługi Azure Media Services w wersji 3 w wersji node.js 3 przy użyciu metody logowania jednostki usługi. Będziesz pracować z plikami w repozytorium przykładów media-services-v3-node-tutorials . Przykład HelloWorld-ListAssets zawiera kod umożliwiający nawiązanie połączenia, a następnie wyświetlenie listy zasobów na koncie.

Wymagania wstępne

Ważne

Zapoznaj się z konwencjami nazewnictwa usługi Azure Media Services, aby poznać ważne ograniczenia nazewnictwa jednostek.

Klonowanie repozytorium przykładów Node.JS

Będziesz pracować z niektórymi plikami w przykładach platformy Azure. Sklonuj repozytorium przykładów Node.JS.

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

Instalowanie pakietów Node.js

Zainstalować @azure/arm-mediaservices

npm install @azure/arm-mediaservices

W tym przykładzie package.json użyjesz następujących pakietów w pliku .

Pakiet Opis
@azure/arm-mediaservices Zestaw SDK usługi Azure Media Services.
Aby upewnić się, że używasz najnowszego pakietu usługi Azure Media Services, sprawdź npm install @azure/arm-mediaservicespolecenie .
@azure/identity Wymagane do uwierzytelniania Azure AD przy użyciu jednostki usługi lub tożsamości zarządzanej
@azure/storage-blob Zestaw SDK usługi Storage. Używany podczas przekazywania plików do zasobów.
@azure/abort-controller Używany wraz z klientem magazynu do przekroczenia limitu długotrwałych operacji pobierania

Tworzenie pliku package.json

  1. Utwórz package.json plik przy użyciu ulubionego edytora.
  2. Otwórz plik i wklej następujący kod:
{
  "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"
  }
}

Nawiązywanie połączenia z klientem Node.js przy użyciu języka TypeScript

Przykładowy plik env

Wartości uwierzytelniania będą przechowywane w pliku o nazwie env. (To prawda, brak nazwy pliku, tylko rozszerzenie). Przeczytaj artykuł Dostęp do interfejsu API, aby dowiedzieć się, jak uzyskać i skopiować te wartości. Wartości możesz uzyskać na stronie dostęp do interfejsu API dla konta usługi Media Services w portalu lub użyć interfejsu wiersza polecenia, aby uzyskać wymagane wartości.

Skopiuj i wklej wartości do pliku o nazwie .env. Plik powinien być przechowywany w katalogu głównym roboczego repozytorium.

Po utworzeniu pliku env możesz rozpocząć pracę z przykładami.

Uruchamianie przykładowej aplikacji HelloWorld-ListAssets

  1. Uruchom Visual Studio Code z folderu głównego.
cd media-services-v3-node-tutorials
code .
  1. Instalowanie pakietów używanych w pliku package.json z poziomu terminalu
npm install
  1. Utwórz kopię pliku sample.env , zmień jego nazwę na env i zaktualizuj wartości w pliku w celu dopasowania ich do informacji o koncie i subskrypcji. Może być konieczne zebranie tych informacji z Azure Portal.

  2. Zmień katalog na folder HelloWorld-ListAssets

cd HelloWorld-ListAssets
  1. Otwórz plik list-assets.ts w folderze HelloWorld-ListAssets i naciśnij klawisz F5 w programie Visual Studio Code, aby rozpocząć uruchamianie skryptu. Powinna zostać wyświetlona lista zasobów, jeśli masz już zasoby na koncie. Jeśli konto jest puste, zostanie wyświetlona pusta lista.

Aby szybko wyświetlić zasoby na liście, użyj portalu, aby przekazać kilka plików wideo. Zasoby zostaną automatycznie utworzone, a uruchomienie tego skryptu spowoduje zwrócenie ich nazw.

Przyjrzyj się bliżej przykładowi HelloWorld-ListAssets

W przykładzie HelloWorld-ListAssets pokazano, jak nawiązać połączenie z klientem usługi Media Services za pomocą jednostki usługi i wyświetlić listę zasobów na koncie. Zobacz komentarze w kodzie, aby uzyskać szczegółowe wyjaśnienie tego, co robi.

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

Więcej przykładów

W repozytorium jest dostępnych wiele innych przykładów. Zapoznaj się z plikiem readme, aby zapoznać się z najnowszymi zaktualizowanymi przykładami.

Dokumentacja dla deweloperów języka JavaScript/TypeScript usługi Media Services

Uzyskiwanie pomocy i obsługi technicznej

Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod: