Подключение к API Служб мультимедиа версии 3 с помощью Node.js
Предупреждение
Поддержка Служб мультимедиа Azure будет прекращена 30 июня 2024 г. Дополнительные сведения см. в руководстве по прекращению поддержки AMS.
В этой статье описано подключение к пакету SDK для Node.js Служб мультимедиа Azure версии 3 с помощью метода входа субъекта-службы. Вы будете использовать файлы из репозитория примеров media-services-v3-node-tutorials. Пример HelloWorld-ListAssets содержит код для подключения и вывода списка ресурсов учетной записи.
Предварительные требования
- Установленное решение Visual Studio Code
- Установите Node.js.
- Установите TypeScript.
- Создание учетной записи Служб мультимедиа. Обязательно запомните имя группы ресурсов и имя учетной записи Служб мультимедиа.
- Создайте субъект-службу для своего приложения. См. статью об API доступа.
Совет от профессионала! Не закрывайте это окно или скопируйте все содержимое вкладки JSON в Блокнот. - Установите последнюю версию пакета SDK для ScriptAzureMediaServices для JavaScript.
Важно!
Ознакомьтесь с соглашениями об именовании Служб мультимедиа Azure, чтобы узнать о важных ограничениях именования для сущностей.
Клонирование репозитория примеров Node.JS
Вы будете использовать некоторые файлы из примеров Azure. Клонируйте репозиторий примеров Node.JS.
git clone https://github.com/Azure-Samples/media-services-v3-node-tutorials.git
Установка пакетов Node.js
установить @azure/arm-mediaservices;
npm install @azure/arm-mediaservices
В этом примере вы будете использовать указанные ниже пакеты в файле package.json
.
Пакет | Описание |
---|---|
@azure/arm-mediaservices |
Пакет SDK для Служб мультимедиа Azure. Чтобы убедиться, что вы используете последнюю версию пакета Служб мультимедиа Azure, проверьте информацию о npm install @azure/arm-mediaservices. |
@azure/identity |
Требуется для проверки подлинности Azure AD с использованием субъекта-службы или управляемого удостоверения. |
@azure/storage-blob |
Пакет SDK для хранилища. Используется при загрузке файлов в ресурсы. |
@azure/abort-controller |
Используется вместе с клиентом хранилища для указания истечения времени ожидания длительных операций скачивания |
Создание файла package.json
- Создайте файл
package.json
с помощью предпочитаемого редактора. - Откройте файл и вставьте следующий код:
{
"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"
}
}
Подключение к клиенту Node.js с помощью TypeScript
Пример файла .env
Значения проверки подлинности будут храниться в файле с именем .env. (Да, у этого файла нет имени, только расширение.) Изучите раздел Доступ к API, чтобы узнать, как получить и скопировать эти значения. Необходимые значения можно получить на странице доступа к API для учетной записи Служб мультимедиа на портале или с помощью интерфейса командной строки.
Скопируйте и вставьте значения в файл с именем .env. Этот файл должен храниться в корне вашего рабочего репозитория.
После создания файла .env можно приступить к работе с примерами.
Запуск примера приложения HelloWorld-ListAssets
- Запустите Visual Studio Code из корневой папки.
cd media-services-v3-node-tutorials
code .
- Из окна терминала установите пакеты, используемые в файле package.json.
npm install
Создайте копию файла sample.env, переименуйте его в .env и обновите значения в файле в соответствии со сведениями об учетной записи и подписке. Может потребоваться сначала получить эти сведения на портале Azure.
В каталоге перейдите в папку HelloWorld-ListAssets.
cd HelloWorld-ListAssets
- Откройте файл list-assets.ts в папке HelloWorld-ListAssets и нажмите клавишу F5 в Visual Studio Code, чтобы начать выполнение скрипта. При наличии ресурсов в учетной записи откроется список ресурсов. Если учетная запись пуста, список тоже будет пуст.
Чтобы быстро просмотреть список ресурсов, используйте портал для загрузки нескольких видеофайлов. Каждый ресурс будет создан автоматически. Повторный запуск этого скрипта вернет их имена.
Подробное изучение примера HelloWorld-ListAssets
В примере HelloWorld-ListAssets показано, как подключиться к клиенту Служб мультимедиа с помощью субъекта-службы и вывести список ресурсов в учетной записи. Подробное объяснение см. в комментариях к коду.
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);
});
Другие примеры
Дополнительные примеры доступны в репозитории. Последние обновленные примеры можно найти в файле сведений.
Справочные материалы для разработчиков Служб мультимедиа на JavaScript и TypeScript
- npm install @azure/arm-mediaservices
- Справочная документация по модулям Служб мультимедиа Azure для Node.js
- Azure для разработчиков JavaScript и Node.js
- Media Services source code in the @azure/azure-sdk-for-js Git Hub repo
- Документация по пакетам Azure для разработчиков Node.js
- Основные понятия служб мультимедиа Azure
- Azure для разработчиков JavaScript и Node.js
- Media Services source code in the @azure/azure-sdk-for-js repo
Справка и поддержка
Вы можете обратиться к Службам мультимедиа с вопросами или следить за нашими обновлениями одним из следующих способов:
- ВОПРОСЫ И ОТВЕТЫ
-
Stack Overflow. Пометьте вопросы тегом
azure-media-services
. - @MSFTAzureMedia или используйте @AzureSupport , чтобы запросить поддержку.
- Отправьте запрос в службу поддержки через портал Azure.