Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.