.NET Core を使用した AWS SDK for .NET の設定 - AWS SDK for .NET (バージョン 3)

このコンテンツでは、.NET FrameworkASP.NET 4.x に焦点を当てています。Windows と Visual Studio を対象としています。

.NET Core または ASP.NET Core をお探しですか? バージョン 3.5 以降に移動します。Windows および Visual Studio に加えて、クロスプラットフォーム開発についても説明します。

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

.NET Core を使用した AWS SDK for .NET の設定

.NET Coreの最大の変更点の1つは、 ConfigurationManager 基準は app.config および web.config.NET FrameworkおよびASP.NETアプリケーションとともに使用されたファイル。

.NET Coreの構成は、構成プロバイダによって確立されたキー値ペアに基づいています。設定プロバイダーは、コマンドライン引数、ディレクトリファイル、環境変数、設定ファイルなど、さまざまな設定ソースから設定データをキーと値のペアを読み取ります。

注記

詳細については、「ASP.NET Core の設定」を参照してください。

を使いやすくするため AWS SDK for .NET.NET Coreでは、 AWSSDK.Extensions.NETCore.Setup(AWSSDK.Extensions.NETCore.セットアップ) NuGetパッケージ。多くの.NET Coreライブラリと同様に、 IConfiguration インターフェースを使用して、 AWS シームレスに構成できます。

AWSSDK.Extensions.NETCore.Setup の使用

ASP.NET Core Model-View-Controller (MVC) アプリケーションを作成するとします。このアプリケーションは、 ASP.NET Coreウェブアプリケーション テンプレートを Visual Studio で、または dotnet new mvc ....NET Core CLI で。このようなアプリケーションを作成すると、 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" }

設定にアクセスするには スシュトルム ファイル、 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-2 の地域と構成 service2 特別なエンドポイントを含む URL.

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

その後、JSON ファイルのエントリを使用することで、特定のサービスのオプションを取得できます。たとえば、 service1 以下を使用する。

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

Appsettings ファイルの許容値

appsettings.Development.json ファイルには次のアプリケーション設定値を設定できます。フィールド名には、表示されている大文字小文字を使用する必要があります。これらの設定の詳細については、 AWS.Runtime.ClientConfig(AWS.ランタイムクライアント設定) クラス。

  • [リージョン]

  • プロフィール

  • ProfilesLocation

  • SignatureVersion

  • RegionEndpoint

  • UseHttp

  • ServiceURL

  • AuthenticationRegion

  • AuthenticationServiceName

  • MaxErrorRetry

  • LogResponse

  • BufferSize

  • ProgressUpdateInterval

  • ResignRetries

  • AllowAutoRedirect

  • LogMetrics

  • DisableLogging

  • UseDualstackEndpoint

ASP.NET Core依存性インジェクション

AWSSDK.Extensions.NETCore.Setup NuGet パッケージにも、ASP.NET Core の新しい依存関係インジェクションシステムが組み込まれています。は ConfigureServices アプリケーション内のメソッド Startup クラスは、MVCサービスが追加される場所です。アプリケーションが Entity Framework を使用している場合は、これが初期化される場所でもあります。

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

.NET Coreの依存関係インジェクションに関するバックグラウンドは、 .NET Coreドキュメンテーション サイト.

AWSSDK.Extensions.NETCore.Setup NuGetパッケージは、 IServiceCollection 追加するために使用できる AWS サービスから依存関係インジェクションへ。次のコードは、 AWS から読み取られたオプション IConfiguration 追加する Amazon S3 および DynamoDB サービスのリストに移動します。( AWSSDK.S3 および AWSSDK.DynamicDBv2 NuGetパッケージをプロジェクトに。)

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

ここで、MVC コントローラがコンストラクタで IAmazonS3 または IAmazonDynamoDB のいずれかをパラメータとして使用している場合、依存関係インジェクションシステムはこれらのサービスを渡します。

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