【问题标题】:AWS: InvalidSignature exception while adding recordAWS:添加记录时出现 InvalidSignature 异常
【发布时间】:2015-12-09 13:44:06
【问题描述】:

尝试使用 Kinesis Producer 库添加用户记录时发生 InvalidSignatureException。 AWS_JAVA_SDK_VERSION=1.10.26
AWS_KINESIS_PRODUCER_VERSION=0.10.1

错误

PutRecords 失败:{"__type":"InvalidSignatureException","message":"我们计算的请求签名与您提供的签名不匹配。请检查您的 AWS 秘密访问密钥和签名方法。

SCALA KINESIS 生产者代码

private val configuration: KinesisProducerConfiguration = new KinesisProducerConfiguration
  val credentialsProvider: AWSCredentialsProvider = AwsUtil.getAwsCredentials(config.awsAccessKey, config.awsSecretKey)
  configuration.setCredentialsProvider(credentialsProvider)
  configuration.setRecordMaxBufferedTime(config.timeLimit)
  configuration.setAggregationMaxCount(1)
  configuration.setRegion(config.streamRegion)
  configuration.setMetricsLevel("none")
  private val kinesisProducer = new KinesisProducer(configuration)
  kinesisProducer.addUserRecord(streamName, key, eventBytes)`

上面的代码不工作。但是我可以通过终端的 aws cli 和 KinesisClient 在下面指定的代码中将记录添加到 kinesis 流中。

private def createKinesisClient = {
    val accessKey = config.awsAccessKey
    val secretKey = config.awsSecretKey
    val credentialsProvider: AWSCredentialsProvider = AwsUtil.getAwsCredentials(accessKey, secretKey)
    val client = new AmazonKinesisClient(credentialsProvider)

    client.setEndpoint(config.streamEndpoint)
    client
  }

【问题讨论】:

  • 您是否检查过您的 scala 代码是否正确获取了 Config 对象?一般来说,最好使用 EC2 角色,即使在配置中也不提供显式凭据。
  • 你可以写你自己的请求吗,我发布了一个库来解决这个问题:github.com/ticofab/aws-request-signer。祝你好运!
  • 谢谢大家。最后,将 aws-sdk 和 kinesis-library 更新到更高版本后,该问题得到解决。

标签: scala amazon-web-services aws-sdk aws-cli amazon-kinesis


【解决方案1】:

发生这种情况是因为您的 VM/PC/服务器时钟可能会出现偏差。

如果您正在运行 ubuntu,请尝试更新您的系统时间:

sudo ntpdate ntp.ubuntu.com

如果你在 Mac 上使用docker-machine,你可以用这个命令解决:

docker-machine ssh default 'sudo ntpclient -s -h pool.ntp.org'

【讨论】:

    猜你喜欢
    • 2014-09-21
    • 2013-06-24
    • 2022-01-19
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    相关资源
    最近更新 更多