Aracılığıyla paylaş


Media Services v3 API'sine bağlanma - .NET

Media Services logosu v3


Uyarı

Azure Media Services 30 Haziran 2024'de kullanımdan kaldırılacak. Daha fazla bilgi için bkz. AMS Kullanımdan Kaldırma Kılavuzu.

Bu makalede hizmet sorumlusu oturum açma yöntemini kullanarak Azure Media Services v3 .NET SDK'sına nasıl bağlanabileceğiniz gösterilmektedir.

Önkoşullar

Önemli

Adlandırma kurallarını gözden geçirin.

Konsol uygulaması oluşturma

  1. Visual Studio’yu çalıştırın.
  2. Dosyamenüsünden Yeni Proje'ye> tıklayın.
  3. Bir .NET Core konsol uygulaması oluşturun.

Bu konudaki örnek uygulama hedeflemektedir netcoreapp2.0. Kod, C# 7.1'den başlayarak kullanılabilen 'async main' kullanır. Diğer ayrıntılar için bu bloga bakın.

Gerekli NuGet paketlerini/derlemelerini ekleme

  1. Visual Studio'da Araçlar>NuGet Paket Yöneticisi NuGet Yöneticisi>Konsolu'nu seçin.
  2. Paket Yöneticisi Konsolu penceresinde komutunu kullanarak Install-Package aşağıdaki NuGet paketlerini ekleyin. Örneğin, Install-Package Microsoft.Azure.Management.Media.
Paket Description
Microsoft.Azure.Management.Media Azure Media Services SDK'sı.
En son Azure Media Services paketini kullandığınızdan emin olmak için Microsoft.Azure.Management.Media'ya bakın.

Diğer gerekli derlemeler

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

Uygulama ayarları dosyasını oluşturma ve yapılandırma

appsettings.json oluşturma

  1. Git Genel>Metin dosyası'na gidin.
  2. "appsettings.json" olarak adlandır.
  3. .json dosyasının "Çıkış Dizinine Kopyala" özelliğini "Daha yeniyse kopyala" olarak ayarlayın (böylece uygulama yayımlandığında bu dizine erişebilir).

appsettings.json değerleri ayarlama

az ams account sp createAccess API'lerinde açıklandığı gibi komutunu çalıştırın. komut, "appsettings.json" içine kopyalamanız gereken json kodunu döndürür.

Yapılandırma dosyasını ekleme

Kolaylık sağlamak için , "appsettings.json" değerlerini okumaktan sorumlu bir yapılandırma dosyası ekleyin.

  1. Projenize yeni bir .cs sınıfı ekleyin. Bunu, ConfigWrapper olarak adlandırın.
  2. Bu dosyaya aşağıdaki kodu yapıştırın (bu örnekte ad alanının olduğu varsayılır 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"]; }
        }
    }
}

.NET istemcisine bağlanma

.NET ile Media Services API’lerini kullanmaya başlamak için bir AzureMediaServicesClient nesnesi oluşturmanız gerekir. Nesneyi oluşturmak için, Azure AD kullanarak Azure’a bağlanmak üzere istemcinin ihtiyaç duyduğu kimlik bilgilerini sağlamanız gerekir. Aşağıdaki kodda GetCredentialsAsync işlevi, yerel yapılandırma dosyasında sağlanan kimlik bilgilerine göre ServiceClientCredentials nesnesini oluşturur.

  1. Program.cs dosyasını açın.
  2. Aşağıdaki kodu yapıştırın:
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,
            };
        }

    }
}

Yardım ve destek alma

Sorularınız için Media Services ile iletişime geçebilir veya aşağıdaki yöntemlerden birini kullanarak güncelleştirmelerimizi izleyebilirsiniz: