Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

462
Visualizações
Amazon AWS CLI no permite JSON válido en el parámetro de carga útil

Recibo un error cuando intento invocar una función lambda desde la CLI de AWS. Estoy usando la versión 2 de la CLI. Entiendo que debo pasar el argumento --payload como una cadena que contiene un objeto JSON.

 aws lambda invoke --function-name testsms --invocation-type Event --payload '{"key": "test"}' response.json

Obtuve el siguiente error:

 Invalid base64: "{"key": "test"}"

He probado todo tipo de variantes para los caracteres de escape JSON, etc. También he intentado usar la opción file://test.json y recibo el mismo error.

over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

0

Parece que awscli v2 requiere que algunos parámetros estén codificados en base64.

De forma predeterminada, la AWS CLI versión 2 ahora pasa todos los parámetros de entrada y salida binaria como cadenas codificadas en base64. Un parámetro que requiere entrada binaria tiene su tipo especificado como blob (objeto grande binario) en la documentación.

El parámetro de carga útil para lamba invoke es uno de estos tipos de blob que deben estar codificados en base64.

--payload (blob) El JSON que desea proporcionar a su función de Lambda como entrada.

Una solución es usar openssl base64 para codificar su carga útil.

 echo '{"key": "test"}' > clear_payload openssl base64 -out encoded_payload -in clear_payload aws lambda invoke --function-name testsms --invocation-type Event --payload file://~/encoded_payload response.json
over 4 years ago · Santiago Trujillo Relatório

0

Como dijo @MCI, AWS V2 tiene como valor predeterminado la entrada base 64. Para que su caso funcione, simplemente agregue un --cli-binary-format raw-in-base64-out a su comando, por lo que sería

 aws lambda invoke --function-name testsms \ --invocation-type Event \ --cli-binary-format raw-in-base64-out \ --payload '{"key": "test"}' response.json
over 4 years ago · Santiago Trujillo Relatório

0

Esta solución funcionó para mí y la encuentro más simple que tener que recordar/comprobar la página de manual para ver las banderas correctas cada vez.

 aws lambda invoke --function-name my_func --payload $(echo "{\"foo\":\"bar\"}" | base64) out
over 4 years ago · Santiago Trujillo Relatório

0

En primer lugar, una cadena es un json válido.

en mi caso tuve este problema

 $ aws --profile diegosasw lambda invoke --function-name lambda-dotnet-function --payload "Just Checking If Everything is OK" out An error occurred (InvalidRequestContentException) when calling the Invoke operation: Could not parse request body into json: Could not parse payload into json: Unrecognized token 'Just': was expecting ('true', 'false' or 'null') at [Source: (byte[])"Just Checking If Everything is OK"; line: 1, column: 6]

y resulta que el problema se debió a que la CLI de AWS intentó convertirlo a JSON. Escapar de las comillas dobles funcionó

 $ aws --profile diegosasw lambda invoke --function-name lambda-dotnet-function --payload "\"Just Checking If Everything is OK\"" out { "StatusCode": 200, "ExecutedVersion": "$LATEST" }
over 4 years ago · Santiago Trujillo Relatório

0

En Windows, probé lo siguiente, que funcionó para mí

 aws lambda invoke --function-name testsms --invocation-type Event --cli-binary-format raw-in-base64-out --payload {\"key\": \"test\"} response.json

Tenga en cuenta que agregó --cli-binary-format raw-in-base64-out en el comando y escapó " a \" en la carga útil

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda