首页 > 解决方案 > CredentialsError:“配置中缺少凭据”,即使设置了凭据

问题描述

我正在尝试使用未经身份验证的 Cognito 身份池通过网络表单通过 SES 发送电子邮件。我使用的是普通的 JS,没有 Node/jQuery/React。

function sendMessage(event) {
  var params = ...;

  AWS.config = new AWS.Config({
    region: 'us-west-2',
    credentials: new AWS.CognitoIdentityCredentials({
      // Unauthenticated pool for sending emails
      IdentityPoolId: 'us-west-2:foo'
    })
  });

  var SES = new AWS.SES({ apiVersion: '2010-12-01' });
  SES.sendEmail(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
  });
}

我已将此设置为表单的 onsubmit 事件,但每次提交时,我都会得到一个CredentialsError: "Missing credentials in config".

get()我理解它的方式,我不应该通过调用下拉并明确设置访问密钥和密钥。Cognito 和通用 SDK 文档中提供的所有代码示例都表明您可以直接实例化服务对象并开始调用。正如我在这个线程中发现的那样,也不应该有任何竞争条件:

从 v2.1.20 开始,在发出请求时会延迟获取凭据。

我正在使用 v2.597。我在这里想念什么?为什么这不起作用?

标签: javascriptamazon-web-servicesamazon-cognitoamazon-ses

解决方案


推荐阅读