Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

553
Views
aws apigateway import-rest-api devuelve el error "Base64 no válido"

Estoy intentando exportar y luego importar la API de AWS Gateway, siguiendo las instrucciones en https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-migrate-accounts-regions/ .

La exportación está funcionando:

 aws apigateway get-export --parameters extensions='apigateway' --rest-api-id MY_REST_API_ID --stage-name Prod --export-type swagger my-api-apigateway.json

Se generan archivos idénticos para mi API con --parameters extensions='apigateway' y --parameters extensions='integrations' .

Pero cuando trato de hacer la importación desde el archivo exportado:

 aws apigateway import-rest-api --fail-on-warnings --body file://%cd%/my-api-gateway.json

, siempre obtengo el error "Base64 no válido:". Me gusta esto:

 Invalid base64: "{ "swagger" : "2.0", "info" : { "version" : "1.0", "title" : "my-stack-name" }, "host" : "MY_REST_API_ID.execute-api.eu-central-1.amazonaws.com", "basePath" : "/Prod", ...

No hay documentación ni ejemplos en Google que digan que el cuerpo debería ser Base64.

El mismo JSON parece funcionar cuando lo importo a través de la interfaz de usuario (Acciones -> Importar API).

También he intentado usar --cli-input-json :

archivo my-api-apigateway-cli-json.json (según aws apigateway import-rest-api --generate-cli-skeleton ):

 { "failOnWarnings": true, "parameters": { "endpointConfigurationTypes": "REGIONAL" }, "body": {... JSON FROM EXPORT ...} }

Comando de importación:

 aws apigateway import-rest-api --cli-input-json file://./my-api-apigateway-cli-json.json

, pero dice

 Parameter validation failed: Invalid type for parameter body, value: {'swagger': '2.0', ...

Entonces, las preguntas son:

  • ¿Deberíamos codificar el json como base64?
  • ¿Por qué este error y comportamiento no está documentado (o si es así, dónde?)?
  • ¿Cómo ejecutar con éxito la importación desde cli?

Enlaces útiles

Ninguno de los enlaces dice que la respuesta del cuerpo debe ser Base64

  • https://docs.aws.amazon.com/apigateway/api-reference/link-relation/restapi-import/ -- aquí body está claramente documentado como // raw byte array representing the api definition
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Al importar rest-api en AWS API Gateway mediante AWS CLI, no es obligatorio codificar el json como base64.

Sospecho que está utilizando AWS CLI v2 y este problema al que se enfrenta, creo que se debe a los cambios introducidos en AWS CLI versión 2 . es decir

AWS CLI versión 2 ahora pasa todos los parámetros de entrada y salida binaria como cadenas codificadas en base64 de forma predeterminada

Resolución:

Deberá agregar --cli-binary-format raw-in-base64-out para que le indique a AWS CLI v2 que vuelva al comportamiento de AWS CLI v1:

 aws apigateway import-rest-api --cli-binary-format raw-in-base64-out --body file://my-api-apigateway.json
over 4 years ago · Santiago Trujillo Report

0

Usar fileb:// en lugar de file:// funcionó para mí. Por ejemplo,

 aws apigateway import-rest-api --body fileb://my-api.json
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!