Solución de problemas para AWS SAM CLI - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas para AWS SAM CLI

Esta sección proporciona detalles sobre cómo solucionar los mensajes de error al usar, instalar y administrar la interfaz de línea de AWS Serverless Application Model comandos (AWS SAMCLI).

Resolución de problemas

Para obtener instrucciones de solución de problemas relacionadas con AWS SAMCLI, consulteSolución de errores de la instalación de .

Mensajes de error

Error de Curl: “curl: (6) No se pudo resolver:...”

Al intentar invocar el punto final de API Gateway, aparece el siguiente error:

curl: (6) Could not resolve: endpointdomain (Domain name not found)

Esto significa que ha intentado enviar una solicitud a un dominio que no es válido. Esto puede ocurrir si la aplicación sin servidor no se pudo implementar correctamente o si el comando curl cometió un error tipográfico. Compruebe que la aplicación se ha implementado correctamente mediante la AWS CloudFormation consola o el AWS CLI, y compruebe que el curl comando es correcto.

Error: no se puede encontrar la información exacta del recurso con el nombre de pila dado

Al ejecutar el comando sam remote invoke en una aplicación que contiene un único recurso de función de Lambda, aparece el siguiente error:

Error: Can't find exact resource information with given <stack-name>. Please provide full resource ARN or --stack-name to resolve the ambiguity.
Causa posible: no proporcionó la opción --stack-name.

Si no ARN se proporciona una función como argumento, el sam remote invoke comando requiere que se proporcione la --stack-name opción.

Solución: proporcione la opción --stack-name.

A continuación, se muestra un ejemplo:

$ sam remote invoke --stack-name sam-app Invoking Lambda Function HelloWorldFunction START RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Version: $LATEST END RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 REPORT RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Duration: 11.31 ms Billed Duration: 12 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 171.71 ms {"statusCode":200,"body":"{\"message\":\"hello world\"}"}%

Error: no se puede encontrar la información exacta del recurso con ese nombre de pila

Al ejecutar el sam remote invoke comando y pasar una función Lambda ARN como argumento, aparece el siguiente error:

Error: Can't find resource information from stack name (<stack-name>) and resource id (<function-id>)
Causa posible: el valor del nombre de la pila está definido en el archivo samconfig.toml.

La primera CLI de AWS SAM comprueba el nombre de la pila en el archivo samconfig.toml. Si se especifica, el argumento se pasa como un valor de ID lógico.

Solución: en su lugar, pase el ID lógico de la función.

Puede pasar el identificador lógico de la función como argumento en lugar del de la función. ARN

Solución: elimine el valor del nombre de la pila del archivo de configuración.

Puede eliminar el valor del nombre de la pila del archivo de configuración. Esto evita que pase la AWS SAMCLI función ARN como un valor de ID lógico.

Ejecute sam build después de modificar el archivo de configuración.

Error: “Error al crear recursos administrados: no se pueden localizar las credenciales”

Al ejecutar el comando sam deploy, aparece el siguiente error:

Error: Failed to create managed resources: Unable to locate credentials

Esto significa que no ha configurado AWS las credenciales que le permitan AWS SAMCLI realizar llamadas de AWS servicio. Para solucionar este problema, debe configurar AWS las credenciales. Para obtener más información, consulte Configuración de las credenciales de AWS.

Error: FileNotFoundError en Windows

Al ejecutar comandos AWS SAMCLI en Windows, es posible que aparezca el siguiente error:

Error: FileNotFoundError

Causa posible: AWS SAMCLI podría interactuar con las rutas de archivo que superen el límite máximo de rutas de Windows.

Solución: para resolver este problema, es necesario activar el nuevo comportamiento de las rutas largas. Para ello, consulte Habilitar rutas largas en Windows 10, versión 1607 y versiones posteriores, en la documentación de desarrollo de aplicaciones de Microsoft Windows.

Error: el solucionador de dependencias de pip...

Ejemplo de texto de error:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
Causa posible: si se utiliza pip para instalar paquetes, las dependencias entre los paquetes pueden entrar en conflicto.

Cada versión del paquete aws-sam-cli depende de una versión del paquete aws-sam-translator. Por ejemplo, la versión aws-sam-cli 1.58.0 puede depender de la versión 1.51.0 aws-sam-translator.

Si instala el paquete AWS SAMCLI usando pip y, a continuación, instala otro paquete que dependa de una versión más reciente de aws-sam-translator, ocurrirá lo siguiente:

  • Se instalará la versión más reciente de aws-sam-translator.

  • Es posible que la versión actual de aws-sam-cli y la versión más reciente de aws-sam-translator no sean compatibles.

  • Cuando utilice el AWS SAMCLI, se producirá el error del solucionador de dependencias.

Soluciones:
  1. Utilice el instalador de paquetes nativo AWS SAMCLI.

    1. Desinstalación de la AWS SAM CLI con pip. Para ver instrucciones, consulte Desinstalación de la CLI de AWS SAM.

    2. Instale AWS SAMCLI mediante el instalador de paquetes nativo. Para ver instrucciones, consulte Instale la CLIAWS SAM.

    3. Cuando sea necesario, AWS SAMCLI actualice con el instalador de paquetes nativo. Para ver instrucciones, consulte Actualización de la CLI de AWS SAM.

  2. Si debe usarlopip, le recomendamos que lo instale AWS SAM CLI en un entorno virtual. Esto garantiza un entorno de instalación limpio y un entorno aislado en caso de que se produzcan errores. Para ver instrucciones, consulte Instalación de la CLI de AWS SAM en un entorno virtual mediante pip.

Error: No existe ese comando “remoto”

Al ejecutar el comando sam remote invoke, aparece el siguiente error:

$ sam remote invoke ... 2023-06-20 08:15:07 Command remote not available Usage: sam [OPTIONS] COMMAND [ARGS]... Try 'sam -h' for help. Error: No such command 'remote'.
Causa posible: su versión de AWS SAMCLI no está actualizada.

El AWS SAMCLI sam remote invoke comando se publicó con la AWS SAMCLI versión 1.88.0. Puede comprobar la versión con el comando sam --version.

Solución: actualice su AWS SAMCLI a la versión más reciente.

Para ver instrucciones, consulte Actualización de la CLI de AWS SAM.

Error: la ejecución de AWS SAM proyectos localmente requiere. Docker ¿Lo tiene instalado?

Al ejecutar el comando sam local start-api, aparece el siguiente error:

Error: Running AWS SAM projects locally requires Docker. Have you got it installed?

Esto significa que no ha instalado Docker correctamente. Docker es necesario para probar la aplicación localmente. Para solucionar este problema, debe seguir las instrucciones de instalación de Docker en el host de desarrollo. Para obtener más información, consulte Instalar Docker.

Error: no se cumplen las restricciones de seguridad

Al ejecutar sam deploy --guided, se le preguntará Function may not have authorization defined, Is this okay? [y/N]. Si responde a esta solicitud con N (la respuesta predeterminada), verá el siguiente error:

Error: Security Constraints Not Satisfied

El mensaje le informa de que la aplicación que va a implementar podría tener un Amazon API Gateway de acceso público API configurado sin autorización. Al responder N a esta pregunta, está diciendo que esto no está bien.

Para resolver este problema, dispone de las siguientes opciones:

  • Configure su aplicación con autorización. Para obtener más información acerca de la autorización, consulte Controla el API acceso con tu AWS SAM plantilla.

  • Si su intención es disponer de un API punto final de acceso público sin autorización, reinicie la implementación y responda a esta pregunta indicando que está de acuerdo con la implementación. Y

mensaje: Falta el token de autenticación

Al intentar invocar el punto final de API Gateway, aparece el siguiente error:

{"message":"Missing Authentication Token"}

Esto significa que has intentado enviar una solicitud al dominio correcto, pero URI no es reconocible. Para solucionar este problema, verifica el comando completo URL y actualiza el curl comando con el correctoURL.

Mensajes de advertencia

Advertencia:... AWS dejará de mantener el Homebrew instalador durante AWS SAM ...

Al instalar AWS SAMCLI usando Homebrew, verá el siguiente mensaje de advertencia:

Warning: ... AWS will no longer maintain the Homebrew installer for AWS SAM (aws/tap/aws-sam-cli). 
				For AWS supported installations, use the first party installers ...
Causa potencial: ya AWS no mantiene el Homebrew soporte.

A partir de septiembre de 2023, AWS dejará de mantener el Homebrew instalador del AWS SAMCLI.

Solución: utilice un método de instalación AWS compatible.
Solución: para seguir utilizando Homebrew, utilice el instalador gestionado por la comunidad.