使用AWSSDK.Extensions.NETCore.Setup和IConfiguration界面 - 适用于 .NET 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用AWSSDK.Extensions.NETCore.Setup和IConfiguration界面

(本主题之前的标题是“配置 适用于 .NET 的 AWS 开发工具包 含.NETCore)

.NETCore的最大变化之一是移除 ConfigurationManager 和标准 app.configweb.config 与.NETFramework和ASP.NET应用程序一起使用的文件。

.NETCore中的配置基于配置提供程序建立的键值对。配置提供商将配置数据从各种配置源读取为键/值对,包括命令行参数、目录文件、环境变量和设置文件。

注意

有关更多信息,请参阅 ASP.NET Core 中的配置

为了便于使用 适用于 .NET 的 AWS 开发工具包 使用.NETCore,您可以使用 AWSSDK.Extensions.NETCore.设置 NuGet包。与许多.NETCore库一样,它向 IConfiguration 界面,使 AWS 配置无缝。

使用 AWSSDK.Extensions.NETCore.Setup

假设您创建ASP.NETCoreModel-View-Controller(MVC)应用程序,可通过 ASP.NETCoreWeb应用程序 VisualStudio中的模板,或通过运行 dotnet new mvc ....NETCoreCLI中的。创建此类应用程序时,构造函数 Startup.cs 通过从配置提供程序读取各种输入源来处理配置,例如 appsettings.json.

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

要使用 Configuration 反对获取 AWS 选项,首先添加 AWSSDK.Extensions.NETCore.Setup NuGet包。然后,按照下文所述,将您的选项添加到配置文件中。

以下配置设置显示了您可以在 appsettings.Development.json 提供您项目中的文件 AWS 设置。

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

访问中的设置 CSHTML(CSHTML) 文件,使用 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>

访问 AWS 在文件中从代码设置的选项,呼叫 GetAWSOptions 扩展方法添加到 IConfiguration.

要从这些选项构建服务客户端,请致电 CreateServiceClient。以下示例显示了如何创建 Amazon S3 服务客户端。(请务必添加 AWSSDK.S3 Nu获取项目包。)

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

您还可以使用中的多个条目创建具有不兼容设置的多个服务客户端 appsettings.Development.json 文件,如以下示例所示,其中的配置 service1 包括 us-west-2 区域和配置 service2 包括特殊终点 URL(URL).

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

然后,您可以使用 JSON 文件中的条目获取特定服务的选项。例如,要获取 service1 使用以下。

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

应用程序设置文件中的允许值

以下应用程序配置值可以在 appsettings.Development.json 文件中设置。字段名称必须使用显示的外壳。有关这些设置的详细信息,请参阅 AWS.Runtime.ClientConfig(AWS.运行时.客户端配置) 类。

  • Region

  • 个人资料

  • ProfilesLocation

  • 签名版本

  • RegionEndpoint

  • UseHttp

  • ServiceURL

  • AuthenticationRegion

  • AuthenticationServiceName

  • MaxErrorRetry

  • LogResponse

  • BufferSize

  • ProgressUpdateInterval

  • ResignRetries

  • AllowAutoRedirect

  • LogMetrics

  • DisableLogging

  • UseDualstackEndpoint

ASP.NET核心依赖型注射

AWSSDK.Extensions.NETCore.Setup NuGet 程序包还集成了 ASP.NET 内核中的新依赖关系注入系统。的 ConfigureServices 应用程序中的方法 Startup class是添加MVC服务的地方。如果应用程序正在使用实体框架,则这也是进行初始化的位置。

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

.NETCore中的依赖性注入背景见 .NETCore文档站点.

AWSSDK.Extensions.NETCore.Setup NuGet软件包将新的扩展方法添加到 IServiceCollection 你可以使用它来添加 AWS 依赖项注入的服务。以下代码向您展示如何添加 AWS 从以下位置读取的选项 IConfiguration 添加 Amazon S3 和 DynamoDB 到服务列表。(请务必添加 AWSSDK.S3AWSSDK.DynamoDBv2 Nu获取项目包。)

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

现在,如果您的 MVC 控制器使用 IAmazonS3IAmazonDynamoDB 作为其构造函数中的参数,则依赖关系注入系统会传入这些服务。

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