Ligar à API v3 dos Serviços de Multimédia - .NET
Aviso
Os Serviços de Multimédia do Azure serão descontinuados a 30 de junho de 2024. Para obter mais informações, consulte o Guia de Descontinuação do AMS.
Este artigo mostra-lhe como ligar ao SDK .NET dos Serviços de Multimédia do Azure v3 com o método de início de sessão do principal de serviço.
Pré-requisitos
- Criar uma conta dos Serviços de Multimédia. Certifique-se de que memoriza o nome do grupo de recursos e o nome da conta dos Serviços de Multimédia
- Instale uma ferramenta que gostaria de utilizar para o desenvolvimento .NET. Os passos neste artigo mostram como utilizar o Visual Studio 2019 Community Edition. Pode utilizar o Visual Studio Code, consulte Trabalhar com C#. Em alternativa, pode utilizar um editor de código diferente.
Importante
Criar uma aplicação de consola
- Inicie o Visual Studio.
- No menu Ficheiro , clique em Novo>Projeto.
- Crie uma aplicação de consola .NET Core .
A aplicação de exemplo neste tópico destina-se netcoreapp2.0
a . O código utiliza "assíncrono principal", que está disponível a partir de C# 7.1. Consulte este blogue para obter mais detalhes.
Adicionar pacotes/assemblagens NuGet necessários
- No Visual Studio, selecione Ferramentas>NuGet Gestor de> PacotesNuGet Consola do Gestor de NuGet.
- Na janela Consola do Gestor de Pacotes , utilize
Install-Package
o comando para adicionar os seguintes pacotes NuGet. Por exemplo,Install-Package Microsoft.Azure.Management.Media
.
Pacote | Descrição |
---|---|
Microsoft.Azure.Management.Media |
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, consulte Microsoft.Azure.Management.Media. |
Outras assemblagens necessárias
- Azure.Storage.Blobs
- Microsoft.Extensions.Configuration
- Microsoft.Extensions.Configuration.EnvironmentVariables
- Microsoft.Extensions.Configuration.Json
- Microsoft.Rest.ClientRuntime.Azure.Authentication
Criar e configurar o ficheiro de definições da aplicação
Criar appsettings.json
- Aceda aFicheiro de TextoGeral>.
- Dê-lhe o nome "appsettings.json".
- Defina a propriedade "Copiar para o Diretório de Saída" do ficheiro .json como "Copiar se for mais recente" (para que a aplicação possa aceder à mesma quando publicada).
Definir valores no appsettings.json
Execute o az ams account sp create
comando conforme descrito nas APIs de acesso. O comando devolve json que deve copiar para o seu "appsettings.json".
Adicionar o ficheiro de configuração
Por conveniência, adicione um ficheiro de configuração responsável pela leitura de valores de "appsettings.json".
- Adicione uma nova classe .cs ao seu projeto. Dê-lhe o nome
ConfigWrapper
. - Cole o seguinte código neste ficheiro (este exemplo pressupõe que tem o espaço de nomes ).
ConsoleApp1
using System;
using Microsoft.Extensions.Configuration;
namespace ConsoleApp1
{
public class ConfigWrapper
{
private readonly IConfiguration _config;
public ConfigWrapper(IConfiguration config)
{
_config = config;
}
public string SubscriptionId
{
get { return _config["SubscriptionId"]; }
}
public string ResourceGroup
{
get { return _config["ResourceGroup"]; }
}
public string AccountName
{
get { return _config["AccountName"]; }
}
public string AadTenantId
{
get { return _config["AadTenantId"]; }
}
public string AadClientId
{
get { return _config["AadClientId"]; }
}
public string AadSecret
{
get { return _config["AadSecret"]; }
}
public Uri ArmAadAudience
{
get { return new Uri(_config["ArmAadAudience"]); }
}
public Uri AadEndpoint
{
get { return new Uri(_config["AadEndpoint"]); }
}
public Uri ArmEndpoint
{
get { return new Uri(_config["ArmEndpoint"]); }
}
public string Location
{
get { return _config["Location"]; }
}
}
}
Ligar ao cliente .NET
Para começar a utilizar as APIs dos Serviços de Multimédia com o .NET, tem de criar um objeto AzureMediaServicesClient. Para criar o objeto, tem de fornecer as credenciais necessárias para o cliente se ligar ao Azure com o Azure AD. No código abaixo, a função GetCredentialsAsync cria o objeto ServiceClientCredentials com base nas credenciais fornecidas no ficheiro de configuração local.
- Abra
Program.cs
. - Cole o seguinte código:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Azure.Management.Media;
using Microsoft.Azure.Management.Media.Models;
using Microsoft.Extensions.Configuration;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Rest;
using Microsoft.Rest.Azure.Authentication;
namespace ConsoleApp1
{
class Program
{
public static async Task Main(string[] args)
{
ConfigWrapper config = new ConfigWrapper(new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build());
try
{
IAzureMediaServicesClient client = await CreateMediaServicesClientAsync(config);
Console.WriteLine("connected");
}
catch (Exception exception)
{
if (exception.Source.Contains("ActiveDirectory"))
{
Console.Error.WriteLine("TIP: Make sure that you have filled out the appsettings.json file before running this sample.");
}
Console.Error.WriteLine($"{exception.Message}");
if (exception.GetBaseException() is ErrorResponseException apiException)
{
Console.Error.WriteLine(
$"ERROR: API call failed with error code '{apiException.Body.Error.Code}' and message '{apiException.Body.Error.Message}'.");
}
}
Console.WriteLine("Press Enter to continue.");
Console.ReadLine();
}
private static async Task<ServiceClientCredentials> GetCredentialsAsync(ConfigWrapper config)
{
// Use ApplicationTokenProvider.LoginSilentWithCertificateAsync or UserTokenProvider.LoginSilentAsync to get a token using service principal with certificate
//// ClientAssertionCertificate
//// ApplicationTokenProvider.LoginSilentWithCertificateAsync
// Use ApplicationTokenProvider.LoginSilentAsync to get a token using a service principal with symmetric key
ClientCredential clientCredential = new ClientCredential(config.AadClientId, config.AadSecret);
return await ApplicationTokenProvider.LoginSilentAsync(config.AadTenantId, clientCredential, ActiveDirectoryServiceSettings.Azure);
}
private static async Task<IAzureMediaServicesClient> CreateMediaServicesClientAsync(ConfigWrapper config)
{
var credentials = await GetCredentialsAsync(config);
return new AzureMediaServicesClient(config.ArmEndpoint, credentials)
{
SubscriptionId = config.SubscriptionId,
};
}
}
}
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.