如何从AWS SDK中获取AWS凭证信息?

4

我正在尝试为我的dotnet core 3.1 API设置一些必要服务的健康检查,但在Amazon DynamoDB检查方面遇到了困难。

我们使用Xabaril healthcheck packages,而DynamoDb需要一个DynamoDBOptions,其中包括AccessKeySecretKeyRegionEndpoint

我知道AWS SDK从环境凭据配置文件中获取这些信息:

using Amazon.DynamoDBv2;
//... other usings

public void ConfigureServices(IServiceCollection services)
{
    // ... other stufs
    services.AddAWSService<IAmazonDynamoDB>();
    // ...
}

但是我也需要获取它,以便像这样设置我的依赖项健康检查:

    services.AddHealthChecks()
        .AddDynamoDb(dynamoDbOptions => 
            { 
                dynamoDbOptions .AccessKey = "<???>";
                dynamoDbOptions .RegionEndpoint = Amazon.RegionEndpoint.EUWest2; // <???>
                dynamoDbOptions .SecretKey = "<???>";
            }, "DynamoDB");

我该如何从AWS SDK包中获取这些<???>信息?
2个回答

6

在官方文档中花费了更多的时间之后,我找到了一个完全涵盖这个需求的主题:在应用程序中访问凭证和配置文件

为了主动检索配置文件和凭证,在代码中使用 Amazon.Runtime.CredentialManagement namespace 中的类。

实际上,我们可以使用 SharedCredentialsFile 类在符合 AWS 凭证文件格式的文件中查找配置文件,使用 NetSDKCredentialsFile 类在 SDK 存储中查找配置文件,甚至可以使用 CredentialProfileStoreChain 在两者中搜索。

您可以在上面的链接中看到示例。在我的情况下,我得到了以下内容:

private static AWSCredentials GetAccountCredentials(string profileName = "default")
{
    var chain = new CredentialProfileStoreChain();
    if (chain.TryGetAWSCredentials(profileName, out AWSCredentials awsCredentials))
        return awsCredentials;

    // ToDo: Error Handler
    return null;
}

2

感谢查阅,我已经通过文档找到了方法。我在这里更明确地分享了代码=) - Diego Rafael Oliveira Souza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接