InvalidSignatureException se produit lors de la tentative d'ajout d'un enregistrement utilisateur à l'aide de la bibliothèque Kinesis Producer. AWS_JAVA_SDK_VERSION = 1.10.26
AWS_KINESIS_PRODUCER_VERSION = 0.10.1
erreur:AWS: exception InvalidSignature lors de l'ajout de l'enregistrement
PutRecords a échoué: { "__type": "InvalidSignatureException", "message": "La signature de la demande, nous avons calculé ne correspond pas à la signature que vous avez fourni. Vérifiez votre méthode AWS accès secrète et la signature.
SCALA KINESIS PRODUCTEUR CODE
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)`
Le code ci-dessus ne fonctionne pas. Mais il est possible pour moi d'ajouter des enregistrements à kinesis via aws cli à partir du terminal et KinesisClient dans le code qui est spécifié ci-dessous.
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
}
Avez vous vérifiez le code de votre scala obtient l'objet Config droit? En général, il est préférable d'utiliser les rôles EC2 et de ne pas fournir d'informations d'identification explicites, même en configuration. – Guy
Avez-vous recours à l'écriture de votre propre demande, j'ai publié une bibliothèque pour répondre à cette question: https://github.com/ticofab/aws-request-signer. Bonne chance! – ticofab
Merci les gars. Enfin, le problème est résolu une fois la mise à jour aws-sdk et kinesis-library vers la version supérieure. – Ninja