问题描述
我无法让AWS Setup Extension来处理环境变量。
遵循AWS Docs + Unofficial Docs上的说明。
services.AddDefaultAWSOptions(root.GetAWSOptions());
services.AddAWSService<IAmazonDynamoDB>();
public static IConfigurationRoot Configuration => new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json",optional: false,reloadOnChange: true)
.AddEnvironmentvariables()
.Build();
根据下图和Unofficial Docs。 AWS Setup应该尝试从优先级选项失败的环境变量中配置凭证。
但是,我发现它能够导入AWS配置文件,但不能导入环境变量。
如果有人愿意复制,我一直在研究控制台应用程序下的以下回购。 https://github.com/aws/aws-sdk-net/issues/1717
解决方法
我已采取以下解决方法。很好,但是最好知道该文档对于.NET Core是否不正确,或者I @ m做错了什么。
services.AddSingleton<IAmazonDynamoDB>(sp =>
{
var clientConfig = root.GetAWSOptions();
var credentials = new BasicAWSCredentials(
System.Environment.GetEnvironmentVariable("AWS_ACCESS_KEY_ID"),System.Environment.GetEnvironmentVariable("AWS_SECRET_ACCESS_KEY")); // default credentials no need real one
return new AmazonDynamoDBClient(credentials,clientConfig.Region );
});