2017-10-11 8 views
1

Lors de la création d'une destination d'événement config set pour certains événements AWS SES, je rencontre cette erreur. Voici les paramètres que je passe dans ses.createConfigurationSetEventDestination():SNSDestination provoquant une erreur de clé inattendue

const destinationParams = { 
    ConfigurationSetName: instance.id, 
    EventDestination: { 
    Name: instance.id, 
    MatchingEventTypes: ['send', 'reject', 'bounce', 'complaint', 'delivery', 'open', 'click'], 
    Enabled: true, 
    SNSDestination: { 
     TopicARN: topicArn, 
    }, 
    }, 
}; 

L'erreur que je reçois est

UnexpectedParameter: Unexpected key 'SNSDestination' found in params.EventDestination 

Le flux de contrôle jusqu'à présent est la suivante:

  • ses.createConfigurationSet()
  • sns.createTopic() // crée un nouveau TopicArn à utiliser dans:
  • ses.createConfigurationSetEventDestination()

These are the docs I'm referencing

+0

J'ai réussi à exécuter 'ses.createConfigurationSetEventDestination()' sans problème avec node.js sdk que j'ai ajouté ci-dessous. Pouvez-vous ajouter le code entier pour affiner le problème et également ajouter la réponse entière 'error' reçue. –

Répondre

2

J'améliore ma réponse précédente:

Je configuré Node.js sdk et a essayé de reproduire le problème. J'ai été en mesure de créer ConfigurationSet et définir EventDestination avec succès.

code:

var AWS = require('aws-sdk'); 
AWS.config.update({region:'us-east-1'}); 
var ses = new AWS.SES(); 

/*const params1 = { 
    ConfigurationSet: { 
    Name: 'test' 
    } 
}; 
ses.createConfigurationSet(params1, function(err, data) { 
    if (err) console.log(err, err.stack); 
    else  console.log(data);   
}); */ 

const destinationParams = { 
    ConfigurationSetName: 'test', 
    EventDestination: { 
    Name: 'testevent', 
    MatchingEventTypes: ['send', 'reject', 'bounce', 'complaint', 'delivery', 'open', 'click'], 
    Enabled: true, 
    SNSDestination: { 
     TopicARN: 'arn:aws:sns:us-east-1:XXXXXXXXXXX:test', 
    }, 
    }, 
}; 
ses.createConfigurationSetEventDestination(destinationParams, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // successful response 
}); 

Réponse:

{ ResponseMetadata: { RequestId: '838b95ae-af35-11e7-a190-c960102424be' } } 

Donc, il n'y a pas de problème avec Node.js sdk.

+0

Si la propriété de l'objet est une chaîne ou un identificateur ne devrait pas faire de différence. J'ai essayé de toute façon en vain. – AstroBoogie

+0

Même si je ne pense pas que ça fasse une différence au début. Mais en python api, ça fait une différence. Il lancera 'NameError: le nom 'SNSDestination' n'est pas défini 'si je ne le mentionne pas comme une chaîne. –

+0

J'ai copié votre code presque mot à mot et je reçois toujours la même erreur. Je peux générer un jeu de configuration très bien, mais SNSDestination me donne toujours 'UnexpectedParameter: Une clé inattendue 'SNSDestination' trouvé dans params.EventDestination' – AstroBoogie