【问题标题】:AWS SDK Configuration with Environmental Variables & Dependency Injection .NET Core具有环境变量和依赖注入 .NET Core 的 AWS 开发工具包配置
【发布时间】:2020-09-28 03:23:58
【问题描述】:

我无法让 AWS Setup Extension 处理环境变量。

遵循AWS Docs + Unofficial Docs 上的说明。

在我的启动文件中,我添加了以下配置和服务。

 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();

根据下图和Unofficial Docs。 AWS 设置应尝试从环境变量配置凭证,但较高优先级选项失败。

但是,我发现它能够导入 AWS 配置文件,但不能导入环境变量。

如果有人愿意复制,我一直在控制台应用程序下的以下存储库中进行调查。 https://github.com/aws/aws-sdk-net/issues/1717

【问题讨论】:

    标签: aws-sdk-net


    【解决方案1】:

    我采用了以下解决方法。没关系,但最好知道文档对于 .NET Core 是否不正确,或者我@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 );
                });
    

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 2020-11-19
      • 2021-05-28
      • 1970-01-01
      • 2018-03-03
      • 2011-11-10
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      相关资源
      最近更新 更多