Connettersi alle API di Servizi multimediali v3 - .NET

Logo di Servizi multimediali v3


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

Importante

Vedere Convenzioni di denominazione.

Creare un'applicazione console

  1. Avviare Visual Studio.
  2. Scegliere Nuovo>progetto dal menu File.
  3. 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

  1. In Visual Studio selezionare Strumenti>Gestione pacchetti NuGet>Console di Gestione pacchetti.
  2. 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

  1. Selezionare Generale>File di testo.
  2. Assegnare il nome "appsettings.json".
  3. 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".

  1. Aggiungere una nuova classe .cs al progetto. Denominarlo ConfigWrapper.
  2. 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.

  1. Aprire Program.cs.
  2. 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: