我是AWS SDK的新手,我试图关注AWS documentation,但对于我需要设置的内容几乎没有提供。
官方文档告诉我将其添加到appsettings.json:
{
"AWS": {
"Profile": "local-test-profile",
"Region": "us-west-2"
}
}
然后创建客户端:
var options = Configuration.GetAWSOptions();
IAmazonS3 client = options.CreateServiceClient<IAmazonS3>();
这会导致抛出异常,说它无法找到凭据。我在哪里放置Api ID和密钥?这个简介是什么?
请记住,我没有偏好如何设置它。我只是试图遵循.NET Core的官方文档,他们唯一的例子不起作用。文档似乎暗示我应该事先了解他们的许多术语和设置,或者我正在迁移现有的应用程序,并且已经完成了所有设置。
有人可以指出这个示例中缺少的内容只是为了让API正确连接到AWS吗?
答案 0 :(得分:18)
对您而言,这可能为时已晚,但如果您使用的是docker或者其他环境/设置无法使用AWS配置文件,那么您仍然可以使用环境变量。例如:
{{1}}
然后设置AWS_ACCESS_KEY_ID&amp; AWS_SECRET_ACCESS_KEY&amp;您环境中的AWS_REGION。
似乎亚马逊在文档中找到了比在需要时更难找到的东西。
在AWS中运行reals是可以的,因为你应该使用一个角色,但是如果你使用dock for dock然后在容器中设置一个配置文件就是PITA。
答案 1 :(得分:12)
json文件是$&#34; appsettings。{env.EnvironmentName} .json&#34;,所以你应该把它命名为appsettings.Development.json并设置环境变量。
您是否定义了&#34; local-test-profile&#34; AWS凭证文件中的配置文件。
应该在C:\ Users \ {USERNAME} \。aws \ credentials
中[local-test-profile]
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key
如果您不想在默认位置使用它,则可以设置&#39;个人资料位置&#39; json配置文件。
答案 2 :(得分:4)
这有助于避免使用用于开发目的的appsettings从环境中获取凭据
var awsOption = Configuration.GetAWSOptions();
awsOption.Credentials = new BasicAWSCredentials(Configuration["AWS:AccessKey"], Configuration["AWS:SecretKey"]);
services.AddDefaultAWSOptions(awsOption);
答案 3 :(得分:0)
相同文档还包括用于设置凭据的部分。 请在此处查看http://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html
它没有给出使用appSettings.json文件设置凭据的示例,因为他们认为这不是正确(安全)的方式。
以下是关于设置凭据的部分的介绍部分:
不要在文件中添加文字访问键,包括 project的App.config或Web.config文件。如果这样做,则会产生风险 例如,如果您上传,则意外暴露您的凭据 项目到公共存储库。