

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.

# Optimice las implementaciones sin servidor con varias cuentas mediante los flujos de trabajo y Actions AWS CDK GitHub
<a name="optimize-multi-account-serverless-deployments"></a>

*Sarat Chandra Pothula y VAMSI KRISHNA SUNKAVALLI, Amazon Web Services*

## Resumen
<a name="optimize-multi-account-serverless-deployments-summary"></a>

Las organizaciones que implementan una infraestructura sin servidor en múltiples entornos Cuentas de AWS y suelen enfrentarse a desafíos como la duplicación de código, los procesos manuales y las prácticas incoherentes. La solución de este patrón muestra cómo utilizar los flujos de trabajo reutilizables de AWS Cloud Development Kit (AWS CDK) In Go y GitHub Actions para agilizar la administración de la infraestructura sin servidor con varias cuentas. Esta solución demuestra cómo se pueden definir los recursos de la nube como código, implementar procesos estandarizados de integration/continuous despliegue continuo (CI/CD) y crear componentes modulares y reutilizables. 

Con estas herramientas, las organizaciones pueden administrar de manera eficiente los recursos entre cuentas, implementar procesos de implementación coherentes y simplificar arquitecturas complejas sin servidor. El enfoque también mejora la seguridad y el cumplimiento al aplicar prácticas estandarizadas para su uso y, en última instancia Cuentas de AWS, mejorar la productividad y reducir los errores en el desarrollo e implementación de aplicaciones sin servidor.

## Requisitos previos y limitaciones
<a name="optimize-multi-account-serverless-deployments-prereqs"></a>

**Requisitos previos **
+ Un activo. Cuenta de AWS
+ AWS Identity and Access Management Existen [funciones y permisos](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam.html) (IAM) para el proceso de implementación. Esto incluye permisos para acceder a los repositorios de Amazon Elastic Container Registry (Amazon ECR), AWS Lambda crear funciones y cualquier otro recurso necesario en el destino. Cuentas de AWS
+ AWS Command Line Interface [https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ AWS Cloud Development Kit (AWS CDK) [https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ Versión 1.22 o posterior de Go, [instalada](https://go.dev/doc/install).
+ La versión 24.0.6 o posterior de Docker [instalada](https://docs.docker.com/engine/install/)

**Limitaciones**
+ **Compatibilidad de lenguajes**: Go es un lenguaje popular para aplicaciones sin servidor. Sin embargo, además de Go, AWS CDK es compatible con otros lenguajes de programación, incluidos C\$1, Java, Python y TypeScript. Si su organización ya tiene bases de código o conocimiento experto en otros lenguajes, es posible que tenga que adaptarlas o aprender Go para utilizar plenamente la solución descrita en el patrón.
+ **Curva de aprendizaje**: la AWS CDK adopción de los flujos de trabajo GitHub reutilizables y Go Go (si son nuevos en la organización) puede implicar una curva de aprendizaje para los desarrolladores y los DevOps equipos. Es posible que se necesiten formación y documentación para garantizar una adopción fluida y un uso efectivo de estas tecnologías.

## Arquitectura
<a name="optimize-multi-account-serverless-deployments-architecture"></a>

En el siguiente diagrama se muestran los componentes de la arquitectura y el flujo de trabajo de esta aplicación.

![\[Arquitectura de los flujos de trabajo de AWS CDK y GitHub Actions para la administración de infraestructuras sin servidor con varias cuentas.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/8d61917b-bd27-44fa-ae95-55358aaf8812/images/a4b36793-95c7-42f7-a92f-99b4722c9c64.png)


Esta solución realiza los pasos que se indican a continuación:

1. El desarrollador clona el repositorio, crea una nueva rama y realiza cambios en el código de la aplicación en su entorno local.

1. El desarrollador confirma estos cambios e introduce la nueva rama en el repositorio. GitHub 

1. El desarrollador crea una solicitud de incorporación de cambios en el GitHub repositorio y propone fusionar su rama de funcionalidad o nueva funcionalidad con la rama principal.

1. Esta solicitud de incorporación activa el flujo de trabajo de GitHub las acciones de integración continua (CI). Los flujos de trabajo de CI y de implementación continua (CD) de este patrón utilizan flujos de trabajo reutilizables, que son plantillas modulares predefinidas que se pueden compartir y ejecutar en diferentes proyectos o repositorios. Los flujos de trabajo reutilizables promueven la estandarización y la eficiencia de los CI/CD procesos.

1. El flujo de trabajo de CI configura el entorno necesario, genera una etiqueta de Docker para la imagen y crea la imagen de Docker utilizando el código de la aplicación. 

1. El flujo de trabajo de CI se autentica AWS mediante la función central de Cuenta de AWS GitHub OIDC. Para los flujos de trabajo de CI, la función central de Cuenta de AWS GitHub OIDC utiliza AWS Security Token Service (AWS STS) para obtener credenciales temporales. Estas credenciales permiten al rol crear y enviar imágenes de Docker al repositorio Amazon ECR de la central. Cuenta de AWS

1. El flujo de trabajo de CI envía la imagen de Docker creada a Amazon ECR.

1. El flujo de trabajo de CI almacena la etiqueta de imagen en el Almacén de parámetros de Systems Manager.

1. Cuando el flujo de trabajo de CI se complete correctamente, se mostrará la etiqueta de imagen de Docker. 

1. Al activar el flujo de trabajo de CD, el desarrollador introduce manualmente la etiqueta de imagen de la imagen de Docker que quiere implementar. Esta etiqueta de imagen corresponde a la etiqueta que se generó y se envió a Amazon ECR durante el flujo de trabajo de CI.

1. El desarrollador activa manualmente el flujo de trabajo de CD, que utiliza el flujo de trabajo reutilizable de CD. 

1. El flujo de trabajo de CD se autentica mediante el AWS uso de la función central de OIDC Cuenta de AWS GitHub . En el caso del flujo de trabajo del CD, AWS STS se utiliza primero para asumir la función central Cuenta de AWS GitHub de OIDC. Luego, este rol asume los roles de arranque de CDK para las implementaciones de las cuentas de destino. 

1. El flujo de trabajo del CD lo utiliza AWS CDK para sintetizar plantillas AWS CloudFormation .

1. El flujo de trabajo de CD despliega la aplicación en el destino Cuenta de AWS mediante CDK deploy, mediante la etiqueta de imagen especificada manualmente para la función Lambda.

## Tools (Herramientas)
<a name="optimize-multi-account-serverless-deployments-tools"></a>

**Servicios de AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)es un marco de desarrollo de software que le ayuda a definir y aprovisionar la Nube de AWS infraestructura en código.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)le ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el Cuentas de AWS mundo Regiones de AWS. CloudFormation es una parte integral del proceso de AWS CDK implementación. El CDK sintetiza CloudFormation las plantillas y, CloudFormation a continuación, las utiliza para crear o actualizar los recursos del AWS entorno.
+ [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) es un servicio de registro de imágenes de contenedor administrado que es seguro, escalable y fiable.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) proporciona un almacenamiento jerárquico y seguro para la gestión de los datos de configuración y la gestión de secretos.

**Otras herramientas**
+ [Docker](https://www.docker.com/) es un conjunto de productos de plataforma como servicio (PaaS) que utiliza la virtualización a nivel del sistema operativo para entregar software en contenedores.
+ [GitHub Actions](https://docs.github.com/en/actions/writing-workflows/quickstart) es una plataforma de integración y entrega continuas (CI/CD) que está estrechamente integrada con los repositorios. GitHub Puedes usar GitHub Actions para automatizar tu proceso de creación, prueba e implementación.
+ [Go](https://go.dev/doc/install) es un lenguaje de programación de código abierto compatible con Google.

**Repositorio de código**

El código de este patrón está disponible en el cicd-github-actions repositorio GitHub [aws-cdk-golang-serverless-](https://github.com/aws-samples/aws-cdk-golang-serverless-cicd-github-actions).

## Prácticas recomendadas
<a name="optimize-multi-account-serverless-deployments-best-practices"></a>
+ **Diseño modular**: organice su AWS CDK código en conjuntos o pilas modulares y reutilizables, lo que promoverá la reutilización y el mantenimiento del código en múltiples cuentas y proyectos.
+ **Separación de preocupaciones**: separe el código de la infraestructura del código de la aplicación, lo que permitirá la implementación y la administración independientes de cada componente.
+ **Control de versiones e inmutabilidad**: trate su infraestructura como código (IaC) y utilice Git para el control de versiones. Adopte principios de infraestructura inmutables creando nuevos recursos en lugar de modificar los existentes.
+ **Pruebas y validación**: implemente estrategias de prueba integrales, que incluyan pruebas unitarias, pruebas de integración y end-to-end pruebas, para garantizar la exactitud y confiabilidad del código y las implementaciones. AWS CDK 
+ **Seguridad y cumplimiento**: siga las mejores prácticas AWS de seguridad, como el acceso con privilegios mínimos, la comunicación segura y el cifrado de datos. Implemente comprobaciones de cumplimiento y mecanismos de auditoría para garantizar el cumplimiento de las políticas y los requisitos normativos de la organización. Implemente las prácticas recomendadas de seguridad para las imágenes de contenedores, como hacer exámenes en busca de vulnerabilidades, imponer la firma de imágenes y cumplir con los requisitos de cumplimiento de la organización.
+ **Supervisión y registro**: configure mecanismos de supervisión y registro para realizar un seguimiento del estado y el rendimiento de las aplicaciones y la infraestructura sin servidor. Servicios de AWS Úselo como Amazon CloudWatch AWS CloudTrail y con AWS X-Ray fines de monitoreo y auditoría.
+ **Automatización y CI/CD**: utilice flujos de trabajo GitHub reutilizables y otras CI/CD herramientas para automatizar los procesos de creación, prueba e implementación, lo que puede ayudar a respaldar despliegues consistentes y repetibles en varias cuentas.
+ **Administración del entorno**: mantenga entornos separados (por ejemplo, desarrollo, pruebas y producción). Implemente estrategias para promover cambios entre entornos, garantizando las pruebas y la validación adecuadas antes de las implementaciones de producción.
+ **Documentación y colaboración**: documente el código de la infraestructura, los procesos de implementación y las prácticas recomendadas para facilitar el intercambio de conocimientos y la colaboración dentro de su equipo.
+ **Optimización** de costos: implemente estrategias de monitoreo y optimización de costos, como ajustar el tamaño de los recursos, usar el autoescalado y aprovechar los servicios de optimización de AWS costos como y. AWS Budgets AWS Cost Explorer
+ **Recuperación ante desastres y copia de seguridad**: planifique escenarios de recuperación ante desastres mediante la implementación de mecanismos de copia de seguridad y restauración para sus aplicaciones sin servidor y sus recursos de infraestructura.
+ **Mejora continua**: revise y actualice periódicamente sus prácticas, herramientas y procesos para adaptarlos a las prácticas recomendadas, las recomendaciones de seguridad y los avances tecnológicos más recientes del ecosistema sin servidor.
+ **Mejore el nivel de seguridad**: [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)utilícelo para mejorar el nivel de seguridad de su nube privada virtual (VPC) mediante la configuración de los puntos de enlace de la interfaz de la VPC para Amazon ECR y Parameter Store. AWS Lambda AWS Systems Manager 

## Epics
<a name="optimize-multi-account-serverless-deployments-epics"></a>

### Configuración de los entornos
<a name="set-up-the-environments"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un repositorio de Amazon ECR en la central Cuenta de AWS. | Para compartir imágenes de contenedores entre varias Cuentas de AWS, debe configurar el acceso multicuenta para Amazon ECR. En primer lugar, cree un repositorio de Amazon ECR en la central Cuenta de AWS.Para crearlo, ejecute este comando:<pre>aws ecr create-repository --repository-name sample-repo</pre>En una tarea posterior, conceda acceso a las demás tareas Cuentas de AWS que necesiten utilizar la imagen del contenedor. | AWS DevOps | 
| Agregue permisos entre cuentas al repositorio de Amazon ECR. | Para añadir permisos entre cuentas al repositorio de Amazon ECR en la central Cuenta de AWS, ejecute el siguiente código:<pre>{<br />  "Version": "2008-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Sid": "LambdaECRImageRetrievalPolicy",<br />      "Effect": "Allow",<br />      "Principal": {<br />        "Service": "lambda.amazonaws.com"<br />      },<br />      "Action": [<br />        "ecr:BatchGetImage",<br />        "ecr:GetDownloadUrlForLayer",<br />      ],<br />      "Condition": {<br />        "StringLike": {<br />          "aws:sourceArn": "arn:aws:lambda:<Target_Region>:<Target_Account_ID>:function:*"<br />        }<br />      }<br />    },<br />    {<br />      "Sid": "new statement",<br />      "Effect": "Allow",<br />      "Principal": {<br />        "AWS": "arn:aws:iam::<Target_Account_ID>:root"<br />        },<br />      "Action": [<br />        "ecr:BatchGetImage",<br />        "ecr:GetDownloadUrlForLayer",<br />      ],<br />    }<br />  ] <br />}</pre> | AWS DevOps | 
| Configure un rol para el rol GitHub de OIDC en la central. Cuenta de AWS | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html) | AWS DevOps | 
| Inicie el AWS entorno en el objetivo Cuentas de AWS. | Configure un entorno de CDK en una red específica Cuenta de AWS Región de AWS que permita los despliegues entre cuentas desde una cuenta central y aplique los principios de privilegios mínimos a la función de ejecución. CloudFormation Para [arrancar un entorno, ejecute](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) el siguiente comando AWS :<pre>cdk bootstrap aws://<Target_Account_ID>/<Target_Region> --trust <Central_Account_ID> --cloudformation-execution-policies arn:aws:iam::aws:policy/<Least_Privilege_Policy></pre> | AWS DevOps | 
| Conceda acceso al rol central de Cuenta de AWS OIDC a los roles de Cuenta de AWS bootstrap de destino. | El bootstrap del CDK crea las siguientes funciones de IAM, diseñadas para que las asuma la central Cuenta de AWS durante las distintas etapas del proceso de despliegue del CDK:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html)Cada rol tiene permisos específicos adaptados a su finalidad, siguiendo el principio de privilegio mínimo. El nombre «`Target_Account_ID`y`Target_Region`» de cada función ayuda a indicar que estas funciones son únicas en las distintas regiones. Cuentas de AWS Este enfoque permite una identificación y una administración claras en configuraciones de varias cuentas y varias regiones.<pre>Target Account CDK Bootstrap Roles<br />arn:aws:iam::<Target_Account_ID>:role/cdk-deploy-role-<Target_Account_ID>-<Target_Region><br />arn:aws:iam::<Target_Account_ID>:role/cdk-file-publishing-role-<Target_Account_ID>-<Target_Region><br />arn:aws:iam::<Target_Account_ID>:role/cdk-image-publishing-role-<Target_Account_ID>-<Target_Region><br />arn:aws:iam::<Target_Account_ID>:role/cdk-lookup-role-<Target_Account_ID>-<Target_Region></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html)Para actualizar la política de permisos del rol de OIDC en la central Cuenta de AWS, usa el siguiente código:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": "sts:AssumeRole",<br />            "Resource": [<br />                "arn:aws:iam::<Target_Account_ID>:role/cdk-deploy-role-<Target_Account_ID>-<Target_Region>",<br />                "arn:aws:iam::<Target_Account_ID>:role/cdk-file-publishing-role-<Target_Account_ID>-<Target_Region>",<br />                "arn:aws:iam::<Target_Account_ID>:role/cdk-image-publishing-role-<Target_Account_ID>-<Target_Region>",<br />                "arn:aws:iam::<Target_Account_ID>:role/cdk-lookup-role-<Target_Account_ID>-<Target_Region>"<br />            ]<br />        }<br />    ]<br /> }<br /></pre> | AWS DevOps | 

### Compilación de la imagen de Docker
<a name="build-the-docker-image"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el repositorio del proyecto. | Para clonar el [GitHub repositorio](https://github.com/aws-samples/aws-cdk-golang-serverless-cicd-github-actions) de este patrón, ejecute el siguiente comando:<pre>git clone https://github.com/aws-samples/aws-cdk-golang-serverless-cicd-github-actions.git</pre> | AWS DevOps | 
| Vaya a la ruta de Dockerfile. | Para ir a la ruta de Dockerfile, ejecute el siguiente comando:<pre>cd lambda</pre> | AWS DevOps | 
| Autentique Docker con Amazon ECR. | Amazon ECR requiere un acceso seguro a sus repositorios de contenedores privados. Al iniciar sesión de esta manera, permite que Docker interactúe de forma segura con Amazon ECR en su máquina o CI/CD entorno local.Para autenticar Docker con Amazon ECR, ejecute el siguiente comando:<pre>aws ecr get-login-password --region <AWS_REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com</pre>Revise los marcadores de posición `AWS_REGION` y `AWS_Account_ID` con su información. | AWS DevOps | 
| Cree la imagen de Docker. | Para compilar la imagen de Docker, ejecute el siguiente comando:<pre>docker build --platform linux/arm64 -t sample-app .</pre> | AWS DevOps | 
| Etiquete y envíe la imagen de Docker. | Para etiquetar y enviar la imagen de Docker en el repositorio de Amazon ECR, ejecute los siguientes comandos:<pre>docker tag sample-app:latest <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<ECR_REPOSITORY>:<DOCKER_TAG></pre><pre>docker push <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<ECR_REPOSITORY>:<DOCKER_TAG></pre>Revise los marcadores de posición `AWS_Account_ID`, `AWS_REGION`, `ECR_REPOSITORY` y `DOCKER_TAG` con su información. | AWS DevOps | 

### Implemente la AWS CDK aplicación
<a name="deploy-the-cdk-app"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Sintetice la pila de CDK con variables específicas del entorno. | Para generar la CloudFormation plantilla para su infraestructura tal como se define en el código CDK, ejecute el siguiente comando:<pre>ENV=<environment> IMAGETAG=<image_tag> ECR_ARN=<ecr_repo_arn> cdk synth</pre>Revise los siguientes marcadores de posición con su información:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html) | AWS DevOps | 
| Implemente la pila de CDK. | Para implementar la pila de CDK en su servidor Cuenta de AWS, ejecute el siguiente comando. El indicador `--require-approval never` significa que el CDK aprobará y ejecutará *todos* los cambios automáticamente. Esto incluye los cambios que CDK normalmente consideraría que necesitan una revisión manual (como los cambios en la política de IAM o la eliminación de recursos). Asegúrese de que el código y la CI/CD canalización de su CDK estén bien probados y sean seguros antes de usar la `--require-approval never` bandera en entornos de producción.<pre>ENV=<environment> IMAGETAG=<image_tag> ECR_ARN=<ecr_repo_arn> cdk deploy --require-approval never</pre> | AWS DevOps | 

### Automatice CI/CD el uso de GitHub flujos de trabajo
<a name="automate-ci-cd-using-github-actions-workflows"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una rama de características y agregue los cambios. | Utilice el repositorio clonado que creó anteriormente, cree una rama de características y, a continuación, agregue los cambios al código de la aplicación. Utilice los siguientes comandos:<pre>git checkout -b <feature_branch><br />git add .<br />git commit -m "add your changes"<br />git push origin <feature_branch></pre>A continuación, se muestran algunos ejemplos de cambios:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html)GitHub Las acciones utilizarán los flujos de trabajo reutilizables y activarán las CI/CD canalizaciones. | AWS DevOps | 
| Combine los cambios. | Cree una solicitud de extracción y fusione los cambios con la rama principal. | AWS DevOps | 

## Resolución de problemas
<a name="optimize-multi-account-serverless-deployments-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| `AccessDenied`errores al implementar recursos en Cuentas de AWS, por ejemplo,`AccessDenied: User not authorized to perform: "sts:AssumeRole"`. | Para ayudar a resolver este problema, siga estos pasos para verificar los permisos entre cuentas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html) | 
| Problemas de compatibilidad debido a discordancias entre versiones; por ejemplo, un error `undefined: awscdkStack` con una versión de CDK desactualizada. | Para ayudar a resolver este problema, haga lo siguiente para comprobar que está utilizando las versiones necesarias de AWS CDK and Go:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html) | 
| Errores en las canalizaciones de CI/CD; por ejemplo, `Error: No such file or directory` debido a una configuración incorrecta de YAML o `Permission denied` para ramas protegidas. | Para ayudar a resolver los problemas relacionados con la configuración de GitHub Actions, comprueba que los flujos de trabajo reutilizables estén correctamente referenciados y configurados. | 

## Recursos relacionados
<a name="optimize-multi-account-serverless-deployments-resources"></a>

**Recursos de AWS**
+ [AWS Prácticas recomendadas para seguridad, identidad y conformidad](https://aws.amazon.com/architecture/security-identity-compliance/)
+ [AWS CDK Taller](https://cdkworkshop.com/60-go.html)
+ [AWS Biblioteca de kits de Cloud Development](https://pkg.go.dev/github.com/aws/aws-cdk-go/awscdk/v2)
+ [Creación de una función de Lambda con una imagen de contenedor](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html)
+ [Identity and Access Management para Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam.html)
+ [Working with the AWS CDK in Go](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-go.html)

**Otros recursos**
+ [Configuración de OpenID Connect en Amazon Web Services (documentación](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)) GitHub 
+ [Documentación de Golang](https://golang.org/doc/)
+ Guía de [inicio rápido para GitHub realizar acciones (documentación](https://docs.github.com/en/actions/writing-workflows/quickstart)) GitHub 
+ [Reutilización de flujos de trabajo](https://docs.github.com/en/actions/sharing-automations/reusing-workflows) (documentación) GitHub 