Dela via


Ansluta till Media Services v3 API – .NET

Media Services-logotyp v3


Varning

Azure Media Services dras tillbaka den 30 juni 2024. Mer information finns i AMS-pensionsguiden.

Den här artikeln visar hur du ansluter till Azure Media Services v3 .NET SDK med inloggningsmetoden för tjänstens huvudnamn.

Förutsättningar

Viktigt

Granska namngivningskonventioner.

Skapa ett konsolprogram

  1. Starta Visual Studio.
  2. Klicka på Nytt>projektArkiv-menyn.
  3. Skapa ett .NET Core-konsolprogram .

Exempelappen i det här avsnittet riktar sig till netcoreapp2.0. Koden använder "async main", som är tillgängligt från och med C# 7.1. Mer information finns i den här bloggen .

Lägga till nödvändiga NuGet-paket/sammansättningar

  1. I Visual Studio väljer du Verktyg>NuGet Package Manager>NuGet Manager-konsolen.
  2. I fönstret Package Manager Console (Pakethanterarens konsol ) använder du Install-Package kommandot för att lägga till följande NuGet-paket. Till exempel Install-Package Microsoft.Azure.Management.Media.
Paket Beskrivning
Microsoft.Azure.Management.Media Azure Media Services SDK.
Kontrollera att du använder det senaste Azure Media Services-paketet i Microsoft.Azure.Management.Media.

Andra obligatoriska sammansättningar

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

Skapa och konfigurera appinställningsfilen

Skapa appsettings.json

  1. Gå till Filen Allmänt>text.
  2. Ge den namnet "appsettings.json".
  3. Ange egenskapen "Kopiera till utdatakatalog" för den .json filen till "Kopiera om nyare" (så att programmet kan komma åt den när den publiceras).

Ange värden i appsettings.json

Kör kommandot enligt beskrivningen az ams account sp create i åtkomst-API:er. Kommandot returnerar json som du bör kopiera till din "appsettings.json".

Lägga till en konfigurationsfil

För enkelhetens skull lägger du till en konfigurationsfil som ansvarar för att läsa värden från "appsettings.json".

  1. Lägg till en ny .cs-klass i projektet. Ge den namnet ConfigWrapper.
  2. Klistra in följande kod i den här filen (det här exemplet förutsätter att du har namnområdet ).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"]; }
        }
    }
}

Ansluta till .NET-klienten

Om du vill börja använda API:er för Media Services med .NET, måste du skapa ett AzureMediaServicesClient-objekt. När du skapar objektet måste du ange de autentiseringsuppgifter som krävs för att klienten ska kunna ansluta till Azure med hjälp av Azure AD. I koden nedan skapar funktionen GetCredentialsAsync objektet ServiceClientCredentials baserat på de autentiseringsuppgifter som anges i den lokala konfigurationsfilen.

  1. Öppna Program.cs.
  2. Klistra in följande 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,
            };
        }

    }
}

Få hjälp och support

Du kan kontakta Media Services med frågor eller följa våra uppdateringar med någon av följande metoder: