无法创建Amazon Web Services(AWS)凭据对象

时间:2015-02-28 19:40:19

标签: c# .net amazon-web-services sdk amazon-dynamodb

我正在尝试开始针对本地Dynamo数据库服务进行开发。第一步是创建一个客户端:

var storedAWSCreds = new StoredProfileAWSCredentials();

这会引发异常:

  

App.config不包含凭据信息。要么添加   AWSAccessKey和AWSSecretKey或AWSProfileName

我的app.config具有所需的属性:

<add key="AWSProfileName" value="justin"/>
<add key="AWSProfilesLocation" value="C:\code\dynamodb\credentials"/>

凭据配置文件:

justin
aws_access_key_id = REMOVED-FOR-POST
aws_secret_access_key = REMOVED-FOR-POST

此时我想我会尝试其中一个重载方法并明确告诉构造函数应该是什么参数:

var storedAWSCreds = new StoredProfileAWSCredentials("justin", @"C:\code\dynamodb\credentials");

同样,同样的例外。

好的,例外情况说我可以直接在我的配置中提供凭据,所以我试过了:

<add key="AWSAccessKey" value="REMOVED-FOR-POST"/>
<add key="AWSSecretKey" value="REMOVED-FOR-POST"/>

同样,同样的例外。

如何创建StoredProfileAWSCredentials对象?我显然遗漏了一些明显的或他们的异常消息不正确。

我将指出,我可以通过在构造函数中指定访问密钥和密钥来创建BasicAWSCredentials对象:

var basicAWSCreds = new BasicAWSCredentials("REMOVED-FOR-POST", "REMOVED-FOR-POST");

但是,在某些时候我宁愿不在我的应用程序中对其进行硬编码。

2 个答案:

答案 0 :(得分:5)

您的配置部分

<add key="AWSProfilesLocation" value="C:\code\dynamodb\credentials" />

应该是

<add key="AWSProfilesLocation" value="C:\code\dynamodb\credentials\filename.json" /> 

让它发挥作用。换句话说,在配置文件位置指定文件名。

如果您使用较新的SDK,那么使用以下内容也会起作用:

<configSections>
   <section name="aws" type="Amazon.AWSSection, AWSSDK" />
</configSections>
<aws profileName="YourProfileName" profilesLocation="C:\aws\credentials\aws-credentialfile.json" region="xx-xxxx-x" />

答案 1 :(得分:0)

配置文件名称必须放在方括号中,如此

[justin]
aws_access_key_id = REMOVED-FOR-POST
aws_secret_access_key = REMOVED-FOR-POST