aws лямбда: вызов с полезной нагрузкой из кли - PullRequest
2 голосов
/ 01 апреля 2020

Я пытаюсь вызвать свою лямбду, используя 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.

РЕДАКТИРОВАТЬ

Я также пытался отправить полезные данные, встроенные в команду. Как вы можете видеть на изображении, я получаю то же сообщение:

enter image description here

Есть идеи?

...