Udostępnij za pośrednictwem


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

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 .NET SDK usługi Azure Media Services w wersji 3 przy użyciu metody logowania jednostki usługi.

Wymagania wstępne

Ważne

Przejrzyj konwencje nazewnictwa.

Tworzenie aplikacji konsolowej

  1. Uruchom program Visual Studio.
  2. W menu Plik kliknij pozycję Nowy>projekt.
  3. Utwórz aplikację konsolową platformy .NET Core .

Przykładowa aplikacja w tym temacie jest przeznaczona dla elementu netcoreapp2.0. Kod używa "async main", który jest dostępny od języka C# 7.1. Aby uzyskać więcej informacji, zobacz ten blog .

Dodawanie wymaganych pakietów NuGet/zestawów

  1. W programie Visual Studio wybierz pozycję Narzędzia>Menedżer pakietów NuGetKonsola menedżera> pakietów NuGet.
  2. W oknie Konsola menedżera pakietów użyj Install-Package polecenia , aby dodać następujące pakiety NuGet. Na przykład Install-Package Microsoft.Azure.Management.Media.
Pakiet Opis
Microsoft.Azure.Management.Media Zestaw SDK usługi Azure Media Services.
Aby upewnić się, że używasz najnowszego pakietu usługi Azure Media Services, zobacz Microsoft.Azure.Management.Media.

Inne wymagane zestawy

  • Azure.Storage.Blobs
  • Microsoft.Extensions.Configuration
  • Microsoft.Extensions.Configuration.EnvironmentVariables
  • Microsoft.Extensions.Configuration.Json
  • Microsoft.Rest.ClientRuntime.Azure.Authentication

Tworzenie i konfigurowanie pliku ustawień aplikacji

Tworzenie appsettings.json

  1. Przejdź do pozycji Ogólny>plik tekstowy.
  2. Nadaj mu nazwę "appsettings.json".
  3. Ustaw właściwość "Kopiuj do katalogu wyjściowego" pliku .json na wartość "Kopiuj, jeśli jest nowsza" (aby aplikacja mogła uzyskać do niej dostęp po opublikowaniu).

Ustawianie wartości w appsettings.json

Uruchom polecenie zgodnie z opisem az ams account sp create w temacie Access APIs (Interfejsy API dostępu). Polecenie zwraca kod JSON, który należy skopiować do "appsettings.json".

Dodawanie pliku konfiguracji

Dla wygody dodaj plik konfiguracji odpowiedzialny za odczytywanie wartości z "appsettings.json".

  1. Dodaj nową klasę .cs do projektu. Nadaj jej nazwę ConfigWrapper.
  2. Wklej następujący kod w tym pliku (w tym przykładzie przyjęto założenie, że masz przestrzeń nazw o ConsoleApp1nazwie ).
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"]; }
        }
    }
}

Nawiązywanie połączenia z klientem platformy .NET

Aby rozpocząć korzystanie z interfejsów API usługi Media Services na platformie .NET, należy utworzyć obiekt AzureMediaServicesClient. Aby utworzyć obiekt, należy podać poświadczenia wymagane do nawiązania połączenia z platformą Azure przez klienta przy użyciu usługi Azure AD. W poniższym kodzie funkcja GetCredentialsAsync tworzy obiekt ServiceClientCredentials na podstawie poświadczeń podanych w lokalnym pliku konfiguracji.

  1. Otwórz plik Program.cs.
  2. Wklej następujący kod:
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,
            };
        }

    }
}

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: