Implementación de una aplicación sin servidor - 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.

Implementación de una aplicación sin servidor

AWS SAM utiliza AWS CloudFormation como mecanismo de implementación subyacente. Para obtener más información, consulte ¿Qué es AWS CloudFormation? en la Guía del usuario de AWS CloudFormation. Las entradas estándar para implementar aplicaciones sin servidor son los artefactos de compilación creados con el comando sam build. Para obtener más información acerca de sam build, consulte Construcción de aplicaciones sin servidor.

Puede implementar la aplicación de forma manual mediante los comandos de la interfaz de la línea de comandos (CLI) de AWS SAM. También puede automatizar las implementaciones de la aplicación mediante un sistema de integración e implementación continuas (CI/CD). Puede usar muchos sistemas de CI/CD comunes para implementar AWS SAM aplicaciones, incluidos Jenkins AWS CodePipeline, GitLab CI/CD y Actions. GitHub

Implementación mediante sistemas de CI/CD

AWS SAM ayuda a las organizaciones a crear canales para sus sistemas de CI/CD preferidos, de modo que puedan aprovechar los beneficios de la CI/CD con un esfuerzo mínimo, como acelerar la frecuencia de implementación, acortar el tiempo de espera de los cambios y reducir los errores de implementación.

AWS SAM simplifica las tareas de CI/CD para aplicaciones sin servidor mediante la creación de imágenes de contenedores. Las imágenes que AWS SAM proporciona incluyen la CLI de AWS SAM y las herramientas de compilación para varios tiempos de ejecución AWS Lambda admitidos. Esto facilita la creación y el empaquetado de aplicaciones sin servidor mediante la CLI de AWS SAM. Estas imágenes también reducen la necesidad de que los equipos creen y administren sus propias imágenes para los sistemas de CI/CD. Para obtener más información acerca de las imágenes del contenedor de AWS SAM, consulte Repositorios de imágenes.

Múltiples sistemas CI/CD admiten imágenes de contenedores de compilación de AWS SAM. El sistema de CI/CD que debe utilizar depende de varios factores. Estos incluyen si la aplicación utiliza uno o varios tiempos de ejecución, o si desea compilar la aplicación dentro de una imagen del contenedor o directamente en una máquina host, ya sea una máquina virtual (VM) o un host bare metal.

AWS SAM también proporciona un conjunto de plantillas de canalización predeterminadas para varios sistemas de CI/CD que resumen las mejores prácticas de implementación de AWS. Estas plantillas de canalización predeterminadas utilizan formatos de configuración de canalización JSON/YAML estándar, y las prácticas recomendadas integradas ayudan a realizar implementaciones con varias cuentas y regiones, y a comprobar que las canalizaciones no puedan realizar cambios involuntarios en la infraestructura.

Tiene dos opciones principales para usar AWS SAM para implementar sus aplicaciones sin servidor: 1) Modificar la configuración de canalización existente para usar comandos de la CLI de AWS SAM, o 2) Generar un ejemplo de configuración de canalización de CI/CD que pueda usar como punto de partida para su propia aplicación.

Para obtener más información sobre estas opciones, consulte los siguientes temas:

Implementación mediante la CLI de AWS SAM

Después de desarrollar y probar la aplicación sin servidor a nivel local, puede implementarla mediante el comando sam deploy.

Para que AWS SAM le guíe a lo largo de la implementación con instrucciones, especifique el indicador --guided. Al especificar este indicador, el comando sam deploy comprime los artefactos de la aplicación y los carga en Amazon Simple Storage Service (Amazon S3) (para archivos de archivos .zip) o en Amazon Elastic Container Registry (Amazon ECR) (para imágenes de contenedores). Este comando implementa su aplicación en la nube de AWS.

Ejemplo:

# Deploy an application using prompts: sam deploy --guided

Solución de problemas de las implementaciones mediante la CLI de AWS SAM

Error de la CLI de AWS SAM: “no se cumplen las restricciones de seguridad”

Al ejecutar sam deploy --guided, se le preguntará HelloWorldFunction 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 una API de Amazon API Gateway de acceso público configurada 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 Control del acceso a las API de API Gateway.

  • Responda a esta pregunta Y para indicar que está de acuerdo con la implementación de una aplicación que tenga una API de API Gateway configurada sin autorización.

Implementación gradual

Si desea implementar la aplicación AWS SAM de forma gradual en lugar de hacerlo de una sola vez, puede especificar las configuraciones de implementación que AWS CodeDeploy proporciona. Para obtener más información, consulte Trabajar con configuraciones de despliegue en CodeDeploy la Guía del usuario. AWS CodeDeploy

Para obtener más información sobre cómo configurar la aplicación AWS SAM para que se implemente gradualmente, consulte Implementar aplicaciones sin servidor de forma gradual.

Más información

Para ver ejemplos prácticos de la implementación de aplicaciones sin servidor, consulte lo siguiente de The Complete AWS SAM Workshop:

  • Módulo 3: Implementación manual: aprenda a crear, empaquetar e implementar una aplicación sin servidor mediante la CLI de AWS SAM.

  • Módulo 4: CI/CD: aprenda a automatizar las fases de creación, empaquetado e implementación mediante la creación de una canalización de integración y entrega continuas (CI/CD).