Aws::Errors::MissingCredentialsError:无法在未设置凭证的情况下签署请求

Pra*_*lam 4 ruby ruby-on-rails amazon-web-services amazon-dynamodb

我正在构建一个 Rails 应用程序,并使用 dynamoDB 作为数据库(使用 dynamoid)。当我运行测试时,我收到以下错误:

Aws::Errors::MissingCredentialsError:unable to sign request without credentials set

由于测试是在本地 dynamoDB 中运行的,因此我对这个错误消息有点困惑。我的测试是否没有在本地数据库中运行,并且他们正在尝试访问远程数据库?

not*_*est 5

您可以对本地 dynamodb 使用以下配置。当您提供 localhost 端点时,dynamodb 直接使用该端点,而不是从区域派生端点。

Aws.config.update({
  region: 'us-west-2',
  credentials: Aws::Credentials.new('akid', 'secret'),
  endpoint:'http://localhost:8000'
})
Run Code Online (Sandbox Code Playgroud)

该区域用于构造 SSL 端点。如果需要连接到非标准端点,可以指定 :endpoint 选项。