Menyambungkan ke Media Services v3 API - .NET

Logo Azure Media Services v3


Peringatan

Azure Media Services akan dihentikan pada 30 Juni 2024. Untuk informasi selengkapnya, lihat Panduan Penghentian AMS.

Artikel ini menunjukkan cara menyambungkan ke Azure Media Services v3 .NET SDK menggunakan metode masuk utama layanan.

Prasyarat

  • Buat akun Media Services. Pastikan untuk mengingat nama grup sumber daya dan nama akun Azure Media Services
  • Pasang alat yang ingin Anda gunakan untuk pengembangan .NET. Langkah-langkah dalam artikel ini memperlihatkan cara menggunakan Visual Studio 2019 Community Edition. Anda dapat menggunakan Visual Studio Code, lihat Bekerja dengan C#. Atau, Anda dapat menggunakan editor kode yang berbeda.

Penting

Tinjau konvensi penamaan.

Membuat aplikasi konsol

  1. Memulai Visual Studio.
  2. Dari menu File, klik Proyek>Baru.
  3. Membuat aplikasi konsol .NET Core.

Contoh aplikasi dalam topik ini, menargetkan netcoreapp2.0. Kode ini menggunakan 'async main', yang tersedia dimulai dengan C# 7.1. Lihat blog ini untuk beberapa detail.

Tambahkan paket/rakitan NuGet yang diperlukan

  1. Dalam Visual Studio, pilih Alat>Manajer Paket NuGet>Konsol Manajer Paket.
  2. Di jendela Konsol Manajer Paket, gunakan Install-Package perintah untuk menambahkan paket NuGet berikut. Contohnya:Install-Package Microsoft.Azure.Management.Media
Paket Deskripsi
Microsoft.Azure.Management.Media Azure Media Services SDK.
Untuk memastikan Anda menggunakan paket Azure Media Services terbaru, periksa Microsoft.Azure.Management.Media.

Rakitan lain yang diperlukan

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

Membuat dan mengonfigurasi file pengaturan aplikasi

Buat appsettings.json

  1. Buka File teks>Umum.
  2. Beri nama "appsettings.json".
  3. Atur properti "Salin Direktori Keluar" dari file .json ke "Salin jika lebih baru" (sehingga aplikasi dapat mengaksesnya saat dipublikasikan).

Mengatur nilai dalam appsettings.json

Jalankan perintah az ams account sp create seperti yang dijelaskan dalam Akses API. Perintah mengembalikan json yang harus Anda salin ke dalam "appsettings.json" Anda.

Menambahkan file konfigurasi

Untuk kenyamanan, tambahkan file konfigurasi yang bertanggung jawab untuk membaca nilai dari "appsettings.json".

  1. Tambahkan kelas .cs baru ke proyek Anda. Beri nama ConfigWrapper.
  2. Tempelkan kode berikut dalam file ini (contoh ini mengasumsikan Anda memiliki namespace layanan adalah 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"]; }
        }
    }
}

Sambungkan ke klien .NET

Untuk mulai menggunakan Media Services API dengan .NET, Anda perlu membuat objek AzureMediaServicesClient. Untuk membuat objek, Anda harus memberikan info masuk yang diperlukan klien untuk terhubung ke Azure menggunakan Microsoft Azure AD. Dalam kode di bawah ini, fungsi GetCredentialsAsync membuat objek ServiceClientCredentials berdasarkan info masuk yang disediakan dalam file konfigurasi lokal.

  1. Buka Program.cs.
  2. Tempelkan kode berikut:
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,
            };
        }

    }
}

Mendapatkan bantuan dan dukungan

Anda dapat menghubungi Media Services dengan pertanyaan atau mengikuti pembaruan kami dengan salah satu metode berikut: