Share via


Azure-ügyfélkódtár-integráció ASP.NET Core

A Microsoft.Extensions.Azure megosztott primitíveket biztosít az Azure-ügyfelek ASP.NET Core függőséginjektálási és konfigurációs rendszerekkel való integrálásához.

Forráskód | Csomag (NuGet)

Első lépések

A csomag telepítése

Telepítse a ASP.NET Core integrációs kódtárat a NuGet használatával:

dotnet add package Microsoft.Extensions.Azure

Ügyfelek regisztrálása

Hívás kezdeményezése AddAzureClients az alkalmazás metódusában ConfigureServices . A megadott szerkesztővel ügyfélpéldányokat regisztrálhat a függőséginjektálási tárolóban.

public void ConfigureServices(IServiceCollection services)
{
    // Registering policy to use in ConfigureDefaults later
    services.AddSingleton<DependencyInjectionEnabledPolicy>();

    services.AddAzureClients(builder => {
        // Register blob service client and initialize it using the KeyVault section of configuration
        builder.AddSecretClient(Configuration.GetSection("KeyVault"))
            // Set the name for this client registration
            .WithName("NamedBlobClient")
            // Set the credential for this client registration
            .WithCredential(new ClientSecretCredential("<tenant_id>", "<client_id>", "<client_secret>"))
            // Configure the client options
            .ConfigureOptions(options => options.Retry.MaxRetries = 10);

        // Adds a secret client using the provided endpoint and default credential set later
        builder.AddSecretClient(new Uri("http://my.keyvault.com"));

        // Configures environment credential to be used by default for all clients that require TokenCredential
        // and doesn't override it on per registration level
        builder.UseCredential(new EnvironmentCredential());

        // This would use configuration for auth and client settings
        builder.ConfigureDefaults(Configuration.GetSection("Default"));

        // Configure global retry mode
        builder.ConfigureDefaults(options => options.Retry.Mode = RetryMode.Exponential);

        // Advanced configure global defaults
        builder.ConfigureDefaults((options, provider) => options.AddPolicy(provider.GetService<DependencyInjectionEnabledPolicy>(), HttpPipelinePosition.PerCall));

        // Register blob service client and initialize it using the Storage section of configuration
        builder.AddBlobServiceClient(Configuration.GetSection("Storage"))
                .WithVersion(BlobClientOptions.ServiceVersion.V2019_02_02);
    });
}

Ügyfelek injektálása

Az ügyfél használatához kérje le az ügyfél típusát a függőséginjektálást támogató helyről (konstruktorok, hívások konfigurálása, @inject razor-definíciók stb.)

public void Configure(IApplicationBuilder app, SecretClient secretClient, IAzureClientFactory<BlobServiceClient> blobClientFactory)

Nevesített példányok létrehozása

Ha az ügyfél nevesített ügyfélként van regisztrálva, adja be IAzureClientFactory<T> és hívja CreateClient meg a nevet:

BlobServiceClient blobServiceClient = blobClientFactory.CreateClient("NamedBlobClient");

A fenti mintában használt konfigurációs fájl:

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug"
    }
  },
  "AllowedHosts": "*",
  "Default": {
    "ClientId": "<client_id>",
    "ClientSecret": "<client_secret>",
    "TenantId": "<tenant_id>",

    "TelemetryPolicy": {
      "ApplicationId": "AppId"
    }
  },
  "KeyVault": {
    "VaultUri": "<vault_uri>"
  },
  "Storage": {
    "serviceUri": "<service_uri>",
    "credential": {
      "accountName": "<account_name>",
      "accountKey": "<account_key>"
    }
  }
}

Egyéni ügyfél-előállító regisztrálása

Ha szabályozni szeretné az ügyfélpéldány létrehozásának módját, vagy más függőségeket szeretne használni az ügyfélépítés során, használja a metódust AddClient<TClient, TOptions> .

Íme egy példa arra, hogyan lehet példányt használni IOptions<T> az ügyfél létrehozásához:

public class MyApplicationOptions
{
    public Uri KeyVaultEndpoint { get; set; }
}

public void ConfigureServices(IServiceCollection services)
{
    // Configure a custom options instance
    services.Configure<MyApplicationOptions>(options => options.KeyVaultEndpoint = new Uri("http://localhost/"));

    services.AddAzureClients(builder =>
    {
        // Register a client using MyApplicationOptions to get constructor parameters
        builder.AddClient<SecretClient, SecretClientOptions>((options, credential, provider) =>
        {
            var appOptions = provider.GetService<IOptions<MyApplicationOptions>>();
            return new SecretClient(appOptions.Value.KeyVaultEndpoint, credential, options);
        });
    });
}

Közreműködés

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. További részletekért lásd: https://cla.microsoft.com.

A lekéréses kérelmek elküldésekor egy CLA-robot automatikusan meghatározza, hogy kell-e biztosítania CLA-t, és megfelelően kitölti a lekéréses kérelmet (például címke, megjegyzés). Egyszerűen csak kövesse a robot által megadott utasításokat. Ezt csak egyszer kell elvégeznie az összes olyan tárházban, amely a CLA-t használja.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.