aws-sdk-net - 具有环境变量和依赖注入 .NET Core 的 AWS 开发工具包配置
问题描述
我无法让 AWS Setup Extension 处理环境变量。
在我的启动文件中,我添加了以下配置和服务。
services.AddDefaultAWSOptions(root.GetAWSOptions());
services.AddAWSService<IAmazonDynamoDB>();
我的配置包括一个带有 AWS 设置和环境变量的 JSON 文件。
public static IConfigurationRoot Configuration => new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
根据下图和非官方文档。AWS 设置应尝试从环境变量配置凭证,但较高优先级选项失败。
但是,我发现它能够导入 AWS 配置文件,但不能导入环境变量。
如果有人愿意重现,我一直在控制台应用程序下的以下存储库中进行调查。 https://github.com/aws/aws-sdk-net/issues/1717
解决方案
我采用了以下解决方法。没关系,但最好知道文档对于 .NET Core 是否不正确,或者我是否做错了什么。
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 );
});
推荐阅读
- javascript - Reactjs 在地图函数中按摩来自两个不同道具字段的数据
- postgresql - 使用 scalikejdbc 插入默认值
- equality - 寻找包含列表可判定相等性的 Agda 模块
- perl - 如何在单个 perl regx 中同时执行负前瞻和负后瞻?
- amazon-web-services - terraform 给出错误模块参数的值无效
- docker - MySQL与本机数据库的连接错误
- c# - 在 .Where 子句中使用的链接谓词
- prometheus - 如何计算“锯”:来自源计数器的每日计数器
- azure - Azure 中国:不支持更改跟踪
- r - 在 R 中使用 predict_rolling 进行 n 步提前预测