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.SetupIConfiguration
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
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. service1
Verwenden 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
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; } ... }