5

我正在使用来自 GitHub 的示例 AWS kinesis/redshift 代码。我在 EC2 实例中运行代码并遇到以下异常。请注意,从 Kinesis 到 S3 的发射实际上是成功的。但是从 S3 发射到 Redshift 失败了。由于同一程序中的两个发射器使用相同的凭据,我很困惑为什么只有一个失败了!?

我了解大多数人收到“您提供的 AWS 访问密钥 ID 在我们的记录中不存在”异常可能在正确设置 S3 密钥对时遇到问题。但这里的情况似乎并非如此,因为发送到 S3 成功。如果凭证没有读取权限,则它应该抛出一个授权错误。

如果您有任何见解,请发表评论。

2014 年 3 月 16 日上午 4:32:49 com.amazonaws.services.kinesis.connectors.s3.S3Emitter 发射
INFO:在 s3://mybucket/495362565978733426345566872055061454326385819810529281-495362565978733426380687375030478227132487458997 中成功向 S3 发出 31 条记录
2014 年 3 月 16 日上午 4:32:50 com.amazonaws.services.kinesis.connectors.redshift.RedshiftBasicEmitter executeStatement
严重:org.postgresql.util.PSQLException:错误:S3ServiceException:您提供的 AWS 访问密钥 ID 在我们的记录中不存在。,状态 403,错误 InvalidAccessKeyId,Rid 5TY6Y784TT67,ExtRid qKzklJflmmgnhtttthbce+8T0NIR/sdd4RgffTgfgfdfgdfgffffgghgdse56f,CanRetry
  细节:
  -----------------------------------------------------------
  错误:S3ServiceException:您提供的 AWS 访问密钥 ID 在我们的记录中不存在。,状态 403,错误 InvalidAccessKeyId,Rid 5TY6Y784TT67,ExtRid qKzklJflmmgnhtttthbce+8T0NIR/sdd4RgffTgfgfdfgdfgffffgghgdse56f,CanRetry 1
  代码:8001
  上下文:列表存储桶=mfpredshift 前缀=49536256597873342637951299872055061454326385819810529281-49536256597873342638068737503047822713441029589972287489
  查询:3464108
  位置:s3_utility.cpp:536
  进程:padbmaster [pid=8116]
  -----------------------------------------------------------

2014 年 3 月 16 日上午 4:32:50 com.amazonaws.services.kinesis.connectors.redshift.RedshiftBasicEmitter 发射
严重:java.io.IOException:org.postgresql.util.PSQLException:错误:S3ServiceException:您提供的 AWS 访问密钥 ID 在我们的记录中不存在。,状态 403,错误 InvalidAccessKeyId,Rid 5TY6Y784TT67,ExtRid qKzklJflmmgnhtttthbce+8T0NIR/sdd4RgffTgfgfdf6fgdfgffgghgse ,可以重试 1
  细节:
  -----------------------------------------------------------
  错误:S3ServiceException:您提供的 AWS 访问密钥 ID 在我们的记录中不存在。,状态 403,错误 InvalidAccessKeyId,Rid 5TY6Y784TT67,ExtRid qKzklJflmmgnhtttthbce+8T0NIR/sdd4RgffTgfgfdfgdfgffffgghgdse56f,CanRetry 1
  代码:8001
  上下文:列表桶=mybucket 前缀=495362565978733426345566872055061454326385819810529281-49536256597873342638068737503047822713441029589972287489
  查询:3464108
  位置:s3_utility.cpp:536
  进程:padbmaster [pid=8116]
  -----------------------------------------------------------
4

1 回答 1

6

我遇到了同样的错误。我正在使用 IAM 角色来获取凭证。就我而言,它是通过修改RedshiftBasicEmitter添加;token=TOKENCREDENTIALS参数来解决的(最后我创建了自己的IEmitter)。

请参阅http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html

于 2014-04-08T14:41:26.023 回答