使用 AWSSDK. 設置和圖標設置界面 - AWS SDK for .NET

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWSSDK. 設置和圖標設置界面

(本主題之前的標題為「AWS SDK for .NET使用 .NET 核心設定」)

其中一個在 .NET 核心最大的變化是去除ConfigurationManager和標準app.configweb.config .NET 框架和 ASP.NET 應用程序中使用的文件。

.NET Core 中的配置基於配置提供程序建立的鍵值對。組態提供者會將組態資料從各種組態來源讀入鍵/值組,包括命令列引數、目錄檔案、環境變數和設定檔案。

注意

如需詳細資訊,請參閱 ASP.NET Core 中的組態

若要讓它容易使用AWS SDK for .NET與 .NET 核心,您可以使用 AWSSDK.Extension NuGet . 像許多 .NET Core 庫一樣,它將擴展方法添加到IConfiguration接口中,以使AWS配置無縫。

使用 AWSSDK. 擴展.

假設您創建一個 ASP.NET 核心模型-視圖-控制器(MVC)的應用程序,它可以通過在 Visual Studio 中的 ASP.NET 核心 Web 應用程序模板或通過在 .NET 核心 CLI dotnet new mvc ... 中運行來完成。當您建立這類應用程式時,建構函Startup.cs式會從組態提供者讀取各種輸入來源 (例如appsettings.json.

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

若要使用Configuration物件來取得選AWS項,請先新增AWSSDK.Extensions.NETCore.Setup NuGet 封裝。然後,將您的選項新增至組態檔案,如下所述。

請注意,加入到專案的其中一個檔案是appsettings.Development.json。這對應於一個EnvironmentName集合開。在開發過程中,您將配置放在此文件中,該文件只能在本地測試期間讀取。當您部署EnvironmentName設定為生產的 Amazon EC2 執行個體時,會忽略此檔案,並AWS SDK for .NET回到針對 Amazon EC2 執行個體設定的 IAM 登入資料和區域。

以下規劃設定展示了您可以在專案中加入至供應AWS設定的appsettings.Development.json檔案中的值的範例。

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

若要存取 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 NuGet 軟件包添加到您的項目中。)

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

您也可以使用appsettings.Development.json檔案中的多個項目來建立具有不相容設定的多個服務用戶端,如下列範例所示,其中的組態service1包括 [us-west-2Region] 和 [的組態service2包含特殊端點 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班級。

  • 區域

  • 設定檔

  • ProfilesLocation

  • SignatureVersion

  • RegionEndpoint

  • UseHttp

  • ServiceURL

  • AuthenticationRegion

  • AuthenticationServiceName

  • MaxErrorRetry

  • LogResponse

  • BufferSize

  • ProgressUpdateInterval

  • ResignRetries

  • AllowAutoRedirect

  • LogMetrics

  • DisableLogging

  • UseDualstackEndpoint

核心依賴注入

AWSSDK安 NuGet 裝程序包還集成了 ASP.NET 核心一個新的依賴注入系統。應用程式Startup類別中的ConfigureServices方法是新增 MVC 服務的位置。如果應用程式是使用實體架構,那麼這也會是初始化的位置。

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

AWSSDK.Extensions.NETCore.Setup NuGet 軟件包添加了新的擴展方法IServiceCollection,您可以用來將AWS服務添加到依賴注入。下列程式碼說明如何新增讀取的AWS選項,以IConfiguration便將 Amazon S3 和 DynamoDB 新增至服務清單。(請務必將 AWSSDK.S3 和AWSSDK. DynamoDBv2 NuGet 套件新增至您的專案。)

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; } ... }