Je souhaite tester une fonction lambda via CLI au lieu de la console de gestion AWS. (Vous cherchez à automatiser les tests de fonction en faisant un script bash)Test de la fonction AWS lambda via cli
J'ai lu la documentation: http://docs.aws.amazon.com/cli/latest/reference/lambda/invoke.html
Je suis en train d'appeler la fonction lambda avec une charge utile de l'événement JSON. Mon bashcode ressemble à ceci:
#!/bin/bash
name="arn:aws:lambda:euwest1:100000000000:function:foo"
invoketype="Event"
payload="{'account':'100261334439', 'region':'eu-west-1', 'detail-type':'Scheduled Event', 'source':'aws.events', 'time':'2017-07-16T03:00:00Z', 'id':'178710aa-6871-11e7-b6ef-e9b95183cfc9', 'resources':['arn:aws:events:eu-west-1:100000000000:rule/run_everyday']}"
aws lambda invoke --function-name "$name" --invocation-type "$invoketype" --payload "$payload" testresult.log
Je reçois l'erreur:
An error occurred (InvalidRequestContentException) when calling the Invoke operation: Could not parse request body into json: Unexpected character ('a'
(code 97)): was expecting double-quote to start field name at [Source: [[email protected]; line: 1, column: 3]
Je crois que je suis fournir la charge utile au mauvais format, mais la documentation n'a pas encore d'exemple, il dit simplement que le type de données est 'blob'. J'ai fait des recherches mais j'ai trouvé des informations sur BLOB (objet binaire), mais je suis à peu près sûr que ce n'est pas ce à quoi la documentation fait référence.
J'ai essayé sans les guillemets doubles et en remplaçant toutes les guillemets simples par des guillemets doubles, mais tous ceux-ci donnent la même erreur.