Megosztás a következőn keresztül:


Csatlakozás a Media Services v3 API-hoz – .NET

Media Services embléma v3


Figyelmeztetés

Az Azure Media Services 2024. június 30-án megszűnik. További információkért lásd az AMS kivezetési útmutatóját.

Ez a cikk bemutatja, hogyan csatlakozhat az Azure Media Services v3 .NET SDK-hoz a szolgáltatásnév bejelentkezési módszerével.

Előfeltételek

Fontos

Az elnevezési konvenciók áttekintése.

Konzolalkalmazás létrehozása

  1. Indítsa el a Visual Studiót.
  2. A Fájl menüben kattintson az Új>projekt elemre.
  3. Hozzon létre egy .NET Core-konzolalkalmazást.

A jelen témakör mintaalkalmazása a következőt célozza meg netcoreapp2.0: . A kód az aszinkron főt használja, amely a C# 7.1-től érhető el. További részletekért tekintse meg ezt a blogot .

Szükséges NuGet-csomagok/szerelvények hozzáadása

  1. A Visual Studióban válassza az Eszközök>NuGet-csomagkezelő>NuGet Manager-konzol lehetőséget.
  2. A Package Manager Console (Csomagkezelő konzol ) ablakban a Install-Package paranccsal adja hozzá a következő NuGet-csomagokat. Például: Install-Package Microsoft.Azure.Management.Media.
Csomag Description
Microsoft.Azure.Management.Media Azure Media Services SDK.
Ha ellenőrizni szeretné, hogy a legújabb Azure Media Services-csomagot használja-e, ellenőrizze a Microsoft.Azure.Management.Media című cikket.

Egyéb szükséges szerelvények

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

Az alkalmazásbeállítások fájljának létrehozása és konfigurálása

Appsettings.json létrehozása

  1. Ugrás az Általános>szövegfájlra.
  2. Adja neki a "appsettings.json" nevet.
  3. Állítsa a .json fájl "Másolás kimeneti könyvtárba" tulajdonságát "Másolás, ha újabb" értékre (hogy az alkalmazás hozzáférhessen a közzétételkor).

Értékek beállítása appsettings.json

Futtassa a parancsot az az ams account sp createAccess API-kban leírtak szerint. A parancs visszaadja a json értéket, amelyet a "appsettings.json" fájlba kell másolnia.

Konfigurációs fájl hozzáadása

A kényelem érdekében adjon hozzá egy konfigurációs fájlt, amely a "appsettings.json" értékeinek beolvasásáért felelős.

  1. Adjon hozzá egy új .cs osztályt a projekthez. Nevezze el a következőképpen: ConfigWrapper.
  2. Illessze be a következő kódot a fájlba (ez a példa feltételezi, hogy a névtér a ConsoleApp1következő: ).
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"]; }
        }
    }
}

Csatlakozás a .NET-ügyfélhez

Ha szeretné megkezdeni a Media Services API-k használatát a .NET-tel, létre kell hoznia egy AzureMediaServicesClient objektumot. Az objektum létrehozásához meg kell adnia a hitelesítő adatokat, amelyekkel az ügyfél csatlakozhat az Azure-hoz az Azure AD használatával. Az alábbi kódban a GetCredentialsAsync függvény létrehozza a ServiceClientCredentials objektumot a helyi konfigurációs fájlban megadott hitelesítő adatok alapján.

  1. Nyissa meg a következő fájlt: Program.cs.
  2. Illessze be a következő kódot:
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,
            };
        }

    }
}

Súgó és támogatás

Kérdéseivel kapcsolatba léphet a Media Services szolgáltatással, vagy követheti a frissítéseket az alábbi módszerek egyikével: