AWSSDK.Extensions.NETCore.Setup および ICONFiguration インターフェイスの使用 - AWS SDK for .NET

数回クリックするだけで .NET アプリケーションを AWS にデプロイしたいと思いませんか? シンプルなデプロイエクスペリエンスを実現する、新しい .NET CLI ツールをお試しください。

Ourオリジナルのブログ投稿だけでなく、投稿を更新デプロイプロジェクトへの投稿。フィードバックを送信するGitHub! 詳細については、このガイドのデプロイツールに関するセクションを参照してください。

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

AWSSDK.Extensions.NETCore.Setup および ICONFiguration インターフェイスの使用

(このトピックは、以前は「の設定」というタイトルでした。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 アプリケーションVisual Studio または実行してテンプレートdotnet new mvc ....NET Core CLI を使用します。このようなアプリケーションを作成する場合、のコンストラクタStartup.cs次のような設定プロバイダからさまざまな入力ソースを読み込んで、設定を処理します。appsettings.json

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

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

プロジェクトに追加されたファイルの 1 つはappsettings.Development.json。これは、EnvironmentNameに設定する開発。開発時には、このファイルに構成を入れて、ローカルテスト中にのみ読み込まれます。次の Amazon EC2 インスタンスをデプロイする場合EnvironmentNameに設定する本番稼働用の場合、このファイルは無視され、AWS SDK for .NETAmazon EC2 インスタンスに設定された IAM 認証情報およびリージョンにフォールバックします。

次の設定は、に追加できる値の例を示しています。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クラス。

  • Region

  • Profile

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