Я пытаюсь вызвать свою лямбду, используя aws cli:
$ aws lambda invoke \
--function-name soc-update-dynamodb-java \
--invocation-type Event \
--payload file://invoke-payload.json \
response.json
Однако я получаю это сообщение:
Произошла ошибка (InvalidRequestContentException) при вызове операции Invoke: не удалось разобрать тело запроса в json: недопустимый средний байт UTF-8 0x28 в [Source: (byte []) "E� (�����U� 슉 ���ޞ Ԩ�� k .....
payload.json
содержимое s3 напоминает событие json:
{
"Records": [
{
"eventVersion": "2.0",
"eventSource": "aws:s3",
"awsRegion": "eu-central-1",
"eventTime": "1970-01-01T00:00:00.000Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "EXAMPLE"
},
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"responseElements": {
"x-amz-request-id": "EXAMPLE123456789",
"x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH"
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "testConfigRule",
"bucket": {
"name": "soc-connect",
"ownerIdentity": {
"principalId": "EXAMPLE"
},
"arn": "arn:aws:s3:::example"
},
"object": {
"key": "example.key",
"size": 1024,
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901"
}
}
}
]
}
Я могу выполнить его из aws web консоль использует это событие, но у меня возникают проблемы при попытке вызвать его с помощью aws cli.
Я получил кодировку из invoke-payload. json:
$ file -i invoke-payload.json
invoke-payload.json: text/plain; charset=us-ascii
Как вы видно, кодировка us-ascii
.
РЕДАКТИРОВАТЬ
Я также пытался отправить полезные данные, встроенные в команду. Как вы можете видеть на изображении, я получаю то же сообщение:
Есть идеи?