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

このコンテンツは、.NET FrameworkおよびASP.NET 4.x。WindowsとVisual Studioをカバーしている。

の使用.NET CoreまたはASP.NET Core? のコンテンツに移動しますバージョン 3.5 以降のAWS SDK for .NET。WindowsやVisual Studioに加えて、クロスプラットフォーム開発についても扱う。

こんにちはAWS.NET コミュニティ! あなたの経験を共有し、私たちがAWS SDK for .NETとその学習リソースアンケート。この調査には約 10 分かかります。

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

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

.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 .SetupNuGet パッケージ。多くの .NET Core ライブラリと同様に、拡張メソッドをIConfigurationインターフェイスを使用して、AWSシームレスな構成。

AWSSDK.Extensions.NETCore.Setup の使用

ASP.NET コアモデルビューコントローラ (MVC) アプリケーションを作成するとします。これは、ASP.NET Core Web アプリケーションテンプレートを使用するか、dotnet new mvc ....NET Core CLI を使用します。このようなアプリケーションを作成すると、Startup.csなどの設定プロバイダからさまざまな入力ソースを読み込んで、設定を処理します。appsettings.json

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

を使用するにはConfigurationオブジェクトを使用して、AWSオプションを使用する場合は、まずAWSSDK.Extensions.NETCore.SetupNuGet パッケージ。次に、次に説明するように、設定ファイルにオプションを追加します。

次の設定は、以下に追加できる値の例を示しています。appsettings.Development.jsonファイルを使用して、プロジェクトのAWS[] 設定。

{ "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.S3NuGet パッケージをプロジェクトに追加します。

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クラス。

  • リージョン

  • プロフィール

  • 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.SetupNuGet パッケージは、新しい拡張メソッドをIServiceCollectionを追加するために使用できるAWSサービスを依存性注入に追加します。次のコードは、追加する方法を示していますAWSから読み込まれるオプションIConfigurationをクリックして、Amazon S3 と DynamoDB をサービスのリストに追加します。(必ず、AWSSDK.S3およびAWSSDK.DynamoDBv2NuGet パッケージをプロジェクトに追加します)。

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