Csatlakozás a Media Services v3 API-hoz – .NET
Figyelmeztetés
Az Azure Media Services 2024. június 30-án megszűnik. További információkért lásd az AMS kivezetési útmutatóját.
Ez a cikk bemutatja, hogyan csatlakozhat az Azure Media Services v3 .NET SDK-hoz a szolgáltatásnév bejelentkezési módszerével.
Előfeltételek
- Hozzon létre egy Media Services-fiókot. Ne felejtse el megjegyezni az erőforráscsoport nevét és a Media Services-fiók nevét
- Telepítsen egy eszközt, amelyet .NET-fejlesztéshez szeretne használni. A cikk lépései bemutatják a Visual Studio 2019 Community Edition használatát. Használhatja a Visual Studio Code-ot, lásd: A C# használata. Másik lehetőségként másik kódszerkesztőt is használhat.
Fontos
Az elnevezési konvenciók áttekintése.
Konzolalkalmazás létrehozása
- Indítsa el a Visual Studiót.
- A Fájl menüben kattintson az Új>projekt elemre.
- Hozzon létre egy .NET Core-konzolalkalmazást.
A jelen témakör mintaalkalmazása a következőt célozza meg netcoreapp2.0
: . A kód az aszinkron főt használja, amely a C# 7.1-től érhető el. További részletekért tekintse meg ezt a blogot .
Szükséges NuGet-csomagok/szerelvények hozzáadása
- A Visual Studióban válassza az Eszközök>NuGet-csomagkezelő>NuGet Manager-konzol lehetőséget.
- A Package Manager Console (Csomagkezelő konzol ) ablakban a
Install-Package
paranccsal adja hozzá a következő NuGet-csomagokat. Például:Install-Package Microsoft.Azure.Management.Media
.
Csomag | Description |
---|---|
Microsoft.Azure.Management.Media |
Azure Media Services SDK. Ha ellenőrizni szeretné, hogy a legújabb Azure Media Services-csomagot használja-e, ellenőrizze a Microsoft.Azure.Management.Media című cikket. |
Egyéb szükséges szerelvények
- Azure.Storage.Blobs
- Microsoft.Extensions.Configuration
- Microsoft.Extensions.Configuration.EnvironmentVariables
- Microsoft.Extensions.Configuration.Json
- Microsoft.Rest.ClientRuntime.Azure.Authentication
Az alkalmazásbeállítások fájljának létrehozása és konfigurálása
Appsettings.json létrehozása
- Ugrás az Általános>szövegfájlra.
- Adja neki a "appsettings.json" nevet.
- Állítsa a .json fájl "Másolás kimeneti könyvtárba" tulajdonságát "Másolás, ha újabb" értékre (hogy az alkalmazás hozzáférhessen a közzétételkor).
Értékek beállítása appsettings.json
Futtassa a parancsot az az ams account sp create
Access API-kban leírtak szerint. A parancs visszaadja a json értéket, amelyet a "appsettings.json" fájlba kell másolnia.
Konfigurációs fájl hozzáadása
A kényelem érdekében adjon hozzá egy konfigurációs fájlt, amely a "appsettings.json" értékeinek beolvasásáért felelős.
- Adjon hozzá egy új .cs osztályt a projekthez. Nevezze el a következőképpen:
ConfigWrapper
. - Illessze be a következő kódot a fájlba (ez a példa feltételezi, hogy a névtér a
ConsoleApp1
következő: ).
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"]; }
}
}
}
Csatlakozás a .NET-ügyfélhez
Ha szeretné megkezdeni a Media Services API-k használatát a .NET-tel, létre kell hoznia egy AzureMediaServicesClient objektumot. Az objektum létrehozásához meg kell adnia a hitelesítő adatokat, amelyekkel az ügyfél csatlakozhat az Azure-hoz az Azure AD használatával. Az alábbi kódban a GetCredentialsAsync függvény létrehozza a ServiceClientCredentials objektumot a helyi konfigurációs fájlban megadott hitelesítő adatok alapján.
- Nyissa meg a következő fájlt:
Program.cs
. - Illessze be a következő kódot:
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,
};
}
}
}
Súgó és támogatás
Kérdéseivel kapcsolatba léphet a Media Services szolgáltatással, vagy követheti a frissítéseket az alábbi módszerek egyikével:
- Q & A
-
Stack Overflow. Kérdések címkézése a következővel:
azure-media-services
. - @MSFTAzureMediavagy @AzureSupport használatával kérhet támogatást.
- Nyisson meg egy támogatási jegyet a Azure Portal keresztül.