Connettersi alle API di Servizi multimediali v3 - .NET
Avviso
Servizi multimediali di Azure verrà ritirato il 30 giugno 2024. Per altre informazioni, vedere la Guida al ritiro di AMS.
Questo articolo spiega come connettersi all'SDK .NET di Servizi multimediali di Azure v3 usando il metodo di accesso dell'entità servizio.
Prerequisiti
- Creare un account di Servizi multimediali di Azure. Assicurarsi di ricordare il nome del gruppo di risorse e quello dell'account di Servizi multimediali
- Installare uno strumento da usare per lo sviluppo in .NET. I passaggi descritti in questo articolo mostrano come usare Visual Studio 2019 Community Edition. Per usare Visual Studio Code, vedere Working with C# (Uso di C#). In alternativa, è possibile usare un altro editor di codice.
Importante
Vedere Convenzioni di denominazione.
Creare un'applicazione console
- Avviare Visual Studio.
- Scegliere Nuovo>progetto dal menu File.
- Creare un'applicazione console di .NET Core.
L'app di esempio in questo argomento usa la destinazione netcoreapp2.0
. Il codice usa "principale asincrono", disponibile a partire da C# 7.1. Per altri dettagli, vedere questo blog.
Aggiungere pacchetti/assembly NuGet necessari
- In Visual Studio selezionare Strumenti>Gestione pacchetti NuGet>Console di Gestione pacchetti.
- Nella finestra Console di Gestione pacchetti usare il comando
Install-Package
per aggiungere i pacchetti NuGet seguenti. Ad esempio:Install-Package Microsoft.Azure.Management.Media
.
Pacchetto | Descrizione |
---|---|
Microsoft.Azure.Management.Media |
SDK di Servizi multimediali di Azure. Per assicurarsi di usare il pacchetto di Servizi multimediali di Azure più recente, vedere Microsoft.Azure.Management.Media. |
Altri assembly necessari
- Azure.Storage.Blobs
- Microsoft.Extensions.Configuration
- Microsoft.Extensions.Configuration.EnvironmentVariables
- Microsoft.Extensions.Configuration.Json
- Microsoft.Rest.ClientRuntime.Azure.Authentication
Creare e configurare il file di impostazione dell'app
Creare appsettings.json
- Selezionare Generale>File di testo.
- Assegnare il nome "appsettings.json".
- Impostare la proprietà "Copia nella directory di output" del file .json su "Copia se più recente" (in modo che l'applicazione sia in grado di accedervi al momento della pubblicazione).
Impostare i valori in appsettings.json
Eseguire il comando az ams account sp create
come descritto in Accedere alle API. Il comando restituisce un json che è necessario copiare in "appsettings.json".
Aggiungere un file di configurazione
Per praticità, aggiungere un file di configurazione responsabile della lettura dei valori da "appsettings.json".
- Aggiungere una nuova classe .cs al progetto. Denominarlo
ConfigWrapper
. - Incollare il codice seguente in questo file (nell'esempio, lo spazio dei nomi è
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"]; }
}
}
}
Connettersi al client .NET
Per iniziare a usare le API di Servizi multimediali con .NET, è necessario creare un oggetto AzureMediaServicesClient. Per eseguire questa operazione, specificare le credenziali necessarie per consentire al client di connettersi ad Azure tramite Azure AD. Nel codice seguente, la funzione GetCredentialsAsync crea l'oggetto ServiceClientCredentials in base alle credenziali fornite nel file di configurazione locale.
- Aprire
Program.cs
. - Incollare il codice seguente:
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,
};
}
}
}
Guida e supporto tecnico
È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti tramite uno dei metodi seguenti:
- DOMANDE E RISPOSTE
-
Stack Overflow. Contrassegna le domande con
azure-media-services
. - @MSFTAzureMedia o usare @AzureSupport per richiedere supporto.
- Aprire un ticket di supporto tramite il portale di Azure.