Version 4 (V4) von AWS SDK für .NET wurde veröffentlicht!
Informationen zu wichtigen Änderungen und zur Migration Ihrer Anwendungen finden Sie im Thema https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html Migration.
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 AWSSDK.Extensions.NETCore.Setup und das IConfiguration-Interface
(Dieses Thema trug früher den Titel „Konfiguration AWS SDK für .NET mit.NET Core“)
Eine der größten Änderungen in.NET Core ist das Entfernen von ConfigurationManager und den Standards app.config und web.config Dateien, die mit.NET Framework und ASP.NET Anwendungen verwendet wurden.
Die Konfiguration in.NET Core basiert auf Schlüssel-Wert-Paaren, die von Konfigurationsanbietern festgelegt 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 AWS SDK für .NET Verwendung mit.NET Core zu vereinfachen, können Sie das AWSSDK.Extensions.NETCore.Setup IConfiguration Schnittstelle Erweiterungsmethoden hinzu, um eine reibungslose AWS Konfiguration zu ermöglichen.
Der Quellcode für dieses Paket befindet sich GitHub unterhttps://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup
Verwenden AWSSDK.Extensions.NETCore.Setup
Angenommen, Sie erstellen eine ASP.NET Core-Anwendung Model-View-Controller (MVC), was mit der ASP.NET Core-Webanwendungsvorlage in Visual Studio oder durch Ausführen dotnet new mvc ... in der .NET Core-CLI ausgeführt werden kann. Wenn Sie eine solche Anwendung erstellen, Startup.cs übernimmt der Konstruktor für die Konfiguration, indem er verschiedene Eingabequellen von Konfigurationsanbietern einliest, z. B. appsettings.json
public Startup(IConfiguration configuration) { Configuration = configuration; }
Um das Configuration Objekt zum Abrufen der AWS Optionen zu verwenden, fügen Sie zuerst das AWSSDK.Extensions.NETCore.Setup NuGet Paket hinzu. Fügen Sie dann Ihre Optionen zur Konfigurationsdatei hinzu, wie im Folgenden beschrieben.
Beachten Sie, dass eine der zu Ihrem Projekt hinzugefügten Dateien appsettings.Development.json Dies entspricht einem EnvironmentName Satz für Entwicklung. Während der Entwicklung legen Sie Ihre Konfiguration in diese Datei, die nur bei lokalen Tests gelesen wird. Wenn Sie eine Amazon EC2-Instance bereitstellen, die auf Produktion EnvironmentName eingestellt ist, wird diese Datei ignoriert und es werden die AWS SDK für .NET IAM-Anmeldeinformationen und die Region verwendet, die für die Amazon 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 added zu auf. IConfiguration
Rufen Sie zum Erstellen eines Service-Clients anhand dieser Optionen CreateServiceClient auf. Das folgende Beispiel zeigt, wie ein Amazon S3-Serviceclient erstellt wird. (Achten Sie darauf, das AWSSDK.S3
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, wobei 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. Um beispielsweise die Einstellungen für die Verwendung abzurufen, service1 verwenden Sie Folgendes.
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 AWS.Runtime.ClientConfig Klasse.
-
Region
-
Profil
-
ProfilesLocation
-
SignatureVersion
-
RegionEndpoint
-
UseHttp
-
ServiceURL
-
AuthenticationRegion
-
AuthenticationServiceName
-
MaxErrorRetry
-
LogResponse
-
BufferSize
-
ProgressUpdateInterval
-
ResignRetries
-
AllowAutoRedirect
-
LogMetrics
-
DisableLogging
-
UseDualstackEndpoint
ASP.NET Injektion von Kernabhängigkeiten
Das AWSSDK.Extensions.NETCore.Setup NuGet Paket ist auch in ein neues System zur Injektion von Abhängigkeiten in ASP.NET Core integriert. Die ConfigureServices Methode in der Startup Klasse Ihrer Anwendung ist der Ort, an dem die MVC-Dienste hinzugefügt werden. Wenn die Anwendung Entity Framework verwendet, erfolgt auch die Initialisierung hier.
public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); }
Anmerkung
Hintergrundinformationen zur Abhängigkeitsinjektion in.NET Core sind auf der Dokumentationsseite https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection
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. (Stellen Sie sicher, dass Sie Ihrem Projekt die AWSSDK.DynamoDBv2
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; } ... }
Anmerkung
AddAWSServiceRegistriert den Service-Client standardmäßig als Singleton. Dies ist die empfohlene Lebensdauer, da Service-Clients threadsicher und relativ teuer zu erstellen sind. Weitere Hinweise zur Wiederverwendung von Clients und andere Leistungsempfehlungen finden Sie unter. Bewährte Methoden zur Leistungssteigerung