Verwenden von AWSSDK .extensions.netCore.Setup und der IConfiguration-Schnittstelle - AWS SDK for .NET

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von AWSSDK .extensions.netCore.Setup und der IConfiguration-Schnittstelle

(Dieses Thema trug früher den Titel „Konfiguration AWS SDK for .NET mit .NET Core“)

Eine der größten Änderungen in.NET Core ist die Entfernung des Standards ConfigurationManager und der web.config Dateien, die mit.NET Framework app.config - und ASP.NET-Anwendungen verwendet wurden.

Die Konfiguration in.NET Core basiert auf Schlüssel-Wert-Paaren, die von Konfigurationsanbietern eingerichtet wurden. Konfigurationsanbieter lesen Konfigurationsdaten in Schlüssel-Wert-Paaren aus einer Vielzahl von Konfigurationsquellen, einschließlich Befehlszeilenargumenten, Verzeichnisdateien, Umgebungsvariablen und Einstellungsdateien.

Anmerkung

Weitere Informationen finden Sie unter Konfiguration in ASP.NET Core.

Um die Verwendung AWS SDK for .NET mit .NET Core zu vereinfachen, können Sie das Paket AWSSDK NuGet .Extensions.NETCore.Setup verwenden. Wie viele andere .NET Core-Bibliotheken fügt es der IConfiguration Schnittstelle Erweiterungsmethoden hinzu, um eine reibungslose Konfiguration zu gewährleisten. AWS

Verwenden von AWSSDK .extensions.NETCore.Setup

Angenommen, Sie erstellen eine ASP.NET Core Model-View-Controller (MVC) -Anwendung, die mit der ASP.NET Core Web Application-Vorlage in Visual Studio oder durch Ausführung in der.NET Core CLI ausgeführt werden kann. dotnet new mvc ... Wenn Sie eine solche Anwendung erstellen, Startup.cs verarbeitet der Konstruktor für die Konfiguration verschiedene Eingabequellen von Konfigurationsanbietern wie. appsettings.json

public Startup(IConfiguration configuration) { Configuration = configuration; }

Um das Configuration Objekt zum Abrufen der AWSOptionen zu verwenden, fügen Sie zuerst das AWSSDK.Extensions.NETCore.Setup NuGet Paket hinzu. Fügen Sie dann Ihre Optionen wie im Folgenden beschrieben zur Konfigurationsdatei hinzu.

Beachten Sie, dass eine der zu Ihrem Projekt hinzugefügten Dateien appsettings.Development.json Dies entspricht einem EnvironmentName Satz von Development. Während der Entwicklung fügen Sie Ihre Konfiguration in diese Datei ein, die nur bei lokalen Tests gelesen wird. Wenn Sie eine Amazon EC2 EC2-Instance bereitstellen, die auf Production EnvironmentName eingestellt ist, wird diese Datei ignoriert und es werden die AWS SDK for .NET IAM-Anmeldeinformationen und die Region verwendet, die für die Amazon EC2 EC2-Instance konfiguriert sind.

Die folgenden Konfigurationseinstellungen zeigen Beispiele für die Werte, die Sie der appsettings.Development.json Datei in Ihrem Projekt hinzufügen können, um Einstellungen bereitzustellen. AWS

{ "AWS": { "Profile": "local-test-profile", "Region": "us-west-2" }, "SupportEmail": "TechSupport@example.com" }

Verwenden Sie die Direktive, um auf eine Einstellung in einer CSHTML-Datei zuzugreifen. Configuration

@using Microsoft.Extensions.Configuration @inject IConfiguration Configuration <h1>Contact</h1> <p> <strong>Support:</strong> <a href='mailto:@Configuration["SupportEmail"]'>@Configuration["SupportEmail"]</a><br /> </p>

Um über den Code auf die in der Datei festgelegten AWS Optionen zuzugreifen, rufen Sie die GetAWSOptions Erweiterungsmethode auf, die zu hinzugefügt wurde. IConfiguration

Rufen Sie zum Erstellen eines Service-Clients anhand dieser Optionen CreateServiceClient auf. Das folgende Beispiel zeigt, wie Sie einen Amazon S3-Serviceclient erstellen. (Achten Sie darauf, Ihrem Projekt das AWSSDK NuGet .S3-Paket hinzuzufügen.)

var options = Configuration.GetAWSOptions(); IAmazonS3 client = options.CreateServiceClient<IAmazonS3>();

Sie können auch mehrere Service-Clients mit inkompatiblen Einstellungen erstellen, indem Sie mehrere Einträge in der appsettings.Development.json Datei verwenden, wie in den folgenden Beispielen gezeigt, in denen die Konfiguration für service1 die us-west-2 Region und die Konfiguration für die spezielle Endpunkt-URL service2 enthält.

{ "service1": { "Profile": "default", "Region": "us-west-2" }, "service2": { "Profile": "default", "ServiceURL": "URL" } }

Anschließend können Sie die Optionen für einen bestimmten Service mithilfe des Eintrags in der JSON-Datei abrufen. service1Verwenden Sie beispielsweise Folgendes, um die Einstellungen abzurufen.

var options = Configuration.GetAWSOptions("service1");

Zulässige Werte in der Appsettings-Datei

In der appsettings.Development.json-Datei können Sie die folgenden Werte für die Anwendungskonfiguration festlegen. Die Feldnamen müssen die angegebene Groß- und Kleinschreibung verwenden. Einzelheiten zu diesen Einstellungen finden Sie in der jeweiligen AWS.Runtime.ClientConfig Klasse.

  • Region

  • Profil

  • ProfilesLocation

  • SignatureVersion

  • RegionEndpoint

  • UseHttp

  • ServiceURL

  • AuthenticationRegion

  • AuthenticationServiceName

  • MaxErrorRetry

  • LogResponse

  • BufferSize

  • ProgressUpdateInterval

  • ResignRetries

  • AllowAutoRedirect

  • LogMetrics

  • DisableLogging

  • UseDualstackEndpoint

ASP.NET Core-Abhängigkeitsinjektion

Das AWSSDK NuGet .Extensions.NETCore.Setup-Paket ist auch in ein neues Dependency Injection-System in ASP.NET Core integriert. In der ConfigureServices Methode in der Startup Klasse Ihrer Anwendung werden die MVC-Dienste hinzugefügt. Wenn die Anwendung Entity Framework verwendet, erfolgt auch die Initialisierung hier.

public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); }
Anmerkung

Hintergrundinformationen zur Dependency Injection in .NET Core finden Sie auf der Dokumentationsseite zu .NET Core.

Das AWSSDK.Extensions.NETCore.Setup NuGet Paket fügt neue Erweiterungsmethoden hinzuIServiceCollection, mit denen Sie AWS Dienste zur Dependency Injection hinzufügen können. Der folgende Code zeigt Ihnen, wie Sie die AWS Optionen hinzufügen, aus denen gelesen wirdIConfiguration, um Amazon S3 und DynamoDB zur Liste der Dienste hinzuzufügen. (Achten Sie darauf, Ihrem Projekt die Pakete AWSSDK.S3 und AWSSDK.DynamoDBv2 NuGet hinzuzufügen.)

public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddDefaultAWSOptions(Configuration.GetAWSOptions()); services.AddAWSService<IAmazonS3>(); services.AddAWSService<IAmazonDynamoDB>(); }

Wenn nun Ihre MVC-Controller entweder IAmazonS3 oder IAmazonDynamoDB als Parameter in ihren Konstruktoren verwenden, übergibt das Dependency Injection-System diese Services.

public class HomeController : Controller { IAmazonS3 S3Client { get; set; } public HomeController(IAmazonS3 s3Client) { this.S3Client = s3Client; } ... }