Sdílet prostřednictvím


Připojení k rozhraní API služby Media Services v3 – .NET

Logo Media Services v3


Upozornění

Služba Azure Media Services bude vyřazena 30. června 2024. Další informace najdete v průvodci vyřazením AMS.

V tomto článku se dozvíte, jak se připojit k sadě .NET SDK služby Azure Media Services v3 pomocí metody přihlášení instančního objektu.

Požadavky

Důležité

Projděte si zásady vytváření názvů.

Vytvoření konzolové aplikace

  1. Spusťte Visual Studio.
  2. V nabídce File (Soubor) klikněte na NewProject (Nový> projekt).
  3. Vytvořte konzolovou aplikaci .NET Core .

Ukázková aplikace v tomto tématu cílí na netcoreapp2.0. Kód používá "async main", který je k dispozici od C# 7.1. Další podrobnosti najdete na tomto blogu .

Přidání požadovaných balíčků/sestavení NuGet

  1. V sadě Visual Studio vyberte Nástroje Správce>balíčků>NuGet Konzola správce NuGet.
  2. V okně Konzola Správce balíčků pomocí Install-Package příkazu přidejte následující balíčky NuGet. Například, Install-Package Microsoft.Azure.Management.Media.
Balíček Popis
Microsoft.Azure.Management.Media Azure Media Services SDK.
Pokud se chcete ujistit, že používáte nejnovější balíček Azure Media Services, zkontrolujte Microsoft.Azure.Management.Media.

Další požadovaná sestavení

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

Vytvoření a konfigurace souboru nastavení aplikace

Vytvoření appsettings.json

  1. Přejděte na Obecný>textový soubor.
  2. Pojmenujte ji "appsettings.json".
  3. Nastavte vlastnost "Kopírovat do výstupního adresáře" souboru .json na "Kopírovat, pokud je novější" (aby k němu aplikace mohla při publikování přistupovat).

Nastavení hodnot v appsettings.json

az ams account sp create Spusťte příkaz podle popisu v tématu Přístupová rozhraní API. Příkaz vrátí json, který byste měli zkopírovat do appsettings.json.

Přidání konfiguračního souboru

Pro usnadnění si přidejte konfigurační soubor, který je zodpovědný za čtení hodnot z appsettings.json.

  1. Přidejte do projektu novou třídu .cs. Pojmenujte ji ConfigWrapper.
  2. Do tohoto souboru vložte následující kód (v tomto příkladu se předpokládá, že máte obor názvů 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"]; }
        }
    }
}

Připojení ke klientovi .NET

Pokud chcete začít používat rozhraní Media Services API se sadou .NET SDK, musíte vytvořit objekt AzureMediaServicesClient. K vytvoření tohoto objektu, musíte zadat přihlašovací údaje, aby se klient mohl připojit k Azure pomocí Azure AD. V následujícím kódu vytvoří funkce GetCredentialsAsync objekt ServiceClientCredentials na základě přihlašovacích údajů zadaných v místním konfiguračním souboru.

  1. Otevřete Program.cs.
  2. Vložte následující kód:
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,
            };
        }

    }
}

Získání nápovědy a podpory

Službu Media Services můžete kontaktovat s dotazy nebo můžete sledovat naše aktualizace jedním z následujících způsobů: