Topic
コンソールアプリでサクッとAWS SDKを利用する時の構成。
やること
- コンソールアプリの作成
- appsettings.jsonファイルの追加
- appsettings.jsonファイルにAWS設定を追加。今回はサンプルをそのまま利用して、ローカル環境のAWS Credentialsファイルに設定されているlocal-test-profileプロファイルを利用することを想定した設定とした。
"AWS": { "Profile": "local-test-profile", "Region": "us-west-2" }
- 必要なNuget Packageをインストールする。
<ItemGroup> <PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.7.2" /> <PackageReference Include="AWSSDK.S3" Version="3.7.102.1" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" /> </ItemGroup>
- Program.csに処理を実装する。
using Amazon.S3; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System.Configuration; class Program { private readonly IAmazonS3 _amazonS3; public Program(IAmazonS3 amazonS3) { _amazonS3 = amazonS3; } static void Main(string[] args) { Host.CreateDefaultBuilder(args) .ConfigureServices((context, services) => { services.AddDefaultAWSOptions(context.Configuration.GetAWSOptions()); services.AddAWSService<IAmazonS3>(); services.AddTransient<Program>(); }) .Build().Services .GetRequiredService<Program>() .Run(args); } public void Run(string[] args) { //anything.... var allKeys = _amazonS3.GetAllObjectKeysAsync("bucket name", "prefix", null).Result; } }
参考
https://docs.aws.amazon.com/ja_jp/sdk-for-net/v3/developer-guide/net-dg-config-netcore.html https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/#dependencies-body-tab