Ansluta till Media Services v3 API – .NET
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
- Skapa ett Media Services-konto. Kom ihåg resursgruppens namn och Media Services-kontonamnet
- Installera ett verktyg som du vill använda för .NET-utveckling. Stegen i den här artikeln visar hur du använder Visual Studio 2019 Community Edition. Du kan använda Visual Studio Code i Arbeta med C#. Eller så kan du använda en annan kodredigerare.
Viktigt
Granska namngivningskonventioner.
Skapa ett konsolprogram
- Starta Visual Studio.
- Klicka på Nytt>projekt på Arkiv-menyn.
- 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
- I Visual Studio väljer du Verktyg>NuGet Package Manager>NuGet Manager-konsolen.
- 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 exempelInstall-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
- Gå till Filen Allmänt>text.
- Ge den namnet "appsettings.json".
- 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".
- Lägg till en ny .cs-klass i projektet. Ge den namnet
ConfigWrapper
. - 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.
- Öppna
Program.cs
. - 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:
- Q & A
-
Stack Overflow. Tagga frågor med
azure-media-services
. - @MSFTAzureMedia eller använd @AzureSupport för att begära support.
- Öppna ett supportärende via Azure Portal.