Připojení k rozhraní API služby Media Services v3 – .NET
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
- Vytvořte účet Media Services. Nezapomeňte si zapamatovat název skupiny prostředků a název účtu Media Services.
- Nainstalujte nástroj, který chcete použít pro vývoj .NET. Kroky v tomto článku ukazují, jak používat Visual Studio 2019 Community Edition. Můžete použít Visual Studio Code, viz Práce s C#. Nebo můžete použít jiný editor kódu.
Důležité
Projděte si zásady vytváření názvů.
Vytvoření konzolové aplikace
- Spusťte Visual Studio.
- V nabídce File (Soubor) klikněte na NewProject (Nový> projekt).
- 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
- V sadě Visual Studio vyberte Nástroje Správce>balíčků>NuGet Konzola správce NuGet.
- 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
- Přejděte na Obecný>textový soubor.
- Pojmenujte ji "appsettings.json".
- 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.
- Přidejte do projektu novou třídu .cs. Pojmenujte ji
ConfigWrapper
. - 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.
- Otevřete
Program.cs
. - 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ů:
- Q & A
-
Stack Overflow Označit otázky pomocí
azure-media-services
. - @MSFTAzureMedia nebo použijte @AzureSupport a požádejte o podporu.
- Otevřete lístek podpory prostřednictvím Azure Portal.