es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La plantilla YAML de AWS – SAM CLI no funciona con la pila de CloudFormation.

Estoy teniendo un problema con aws CloudFormation…
Supongo que, como soy nuevo, me estoy perdiendo algo…

Así que instalé sam cli en mi mac y generó este archivo .yaml luego voy a cloud formation e intento cargar este archivo en un stack.

Durante la creación, me da un error:

Transform AWS::Serverless-2016-10-31 falló con: Documento de Especificación de Aplicación Serverless inválido. Número de errores encontrados: 1. El recurso con ID [HelloWorldFunction] es inválido. ‘CodeUri’ no es una URI S3 válida en el formato ‘s3://bucket/key’ con un parámetro de consulta opcional ‘versionId’. Se solicitó un rollback por parte del usuario.

¿Qué debo hacer aquí?
Estoy tratando de crear una función lambda con un desencadenador en la carga de un archivo s3 y necesito un archivo .yaml para CloudFormation para describir todos los servicios y desencadenadores… Me resulta extremadamente difícil encontrar una plantilla que funcione…

¿Cómo debería intentar arreglar esto? ¿Cuándo incluso los archivos yaml generados por el cli no funcionan? ¿No debería inicializar CloudFormation una función lambda cuando aún no se haya creado tal función?

Muchas gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error está relacionado con el valor CodeUri en el recurso HelloWorldFunction, el cual no está en el formato correcto para una URI de S3. El formato esperado es s3://bucket/key con un parámetro de consulta versionId opcional.

    Para solucionar esto, debes asegurarte de que el valor CodeUri en el recurso HelloWorldFunction esté en el formato correcto. Si estás haciendo referencia a un archivo en tu máquina local, puedes utilizar el comando aws cloudformation package para subir el archivo a un bucket de S3 y reemplazar el valor CodeUri con la URI de S3 del archivo subido.

    En cuanto a tu pregunta acerca de la inicialización de una función Lambda con CloudFormation, CloudFormation puede crear una función Lambda como parte de la creación de una pila, pero necesitas definir la función en tu archivo YAML o utilizar una función existente. Si la función aún no existe, debes crearla manualmente o como parte de la creación de tu pila.

    Espero que esto sea de ayuda. Déjame saber si tienes alguna otra pregunta.

Comments are closed.