1

“AWS SDK for C++ 文档示例”自述文件说:

要构建和运行这些示例,您需要: ... AWS 凭证,可以在本地 AWS 凭证文件中配置,也可以通过设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量来配置。

https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/cpp

凭证文件:

$ cat ~/.aws/credentials
[default]
aws_access_key_id = ...
aws_secret_access_key = ...
output = text
region = us-west-2

AWS 客户端命令正常工作:

$ aws cloudwatch put-metric-data \
--namespace aws-sdk-cpp-test \
--metric-name "New Posts" \
--timestamp "$(date)" \
--value 0.7 \
--unit Count

但是,如果我运行该cw_put_metric_data示例,指标会转到 us-east-1 而不是 us-west-2。

编辑:Aws::CloudWatch::CloudWatchClient 使用默认 Aws::Client:ClientConfiguration 实例化,其中区域硬连接到 US_EAST_1。所以问题是如何利用~/.aws/credentials?

4

1 回答 1

1

你可以使用这个类:

https://github.com/aws/aws-sdk-cpp/blob/master/aws-cpp-sdk-core/include/aws/core/config/AWSProfileConfigLoader.h#L59

然后使用那里的值传递给您的客户端配置。

于 2017-02-09T21:25:23.183 回答