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

562
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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