

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.

# Genera una CI/CD canalización inicial con AWS SAM
<a name="serverless-generating-example-ci-cd"></a>

Cuando esté listo para automatizar la implementación, puede usar una de las plantillas AWS SAM de canalización iniciales para generar una canalización de implementación para el CI/CD sistema que elija usar. La canalización de implementación es lo que configura y usa para automatizar la implementación de su aplicación sin servidor. Hay una plantilla de canalización de inicio preconfigurada para ayudarle a configurar rápidamente la canalización de implementación de la aplicación sin servidor. 

Con una plantilla de canalización de inicio, puede generar canalizaciones en cuestión de minutos con el comando [sam pipeline init](sam-cli-command-reference-sam-pipeline-init.md).

Las plantillas de canalización iniciales utilizan la JSON/YAML sintaxis habitual del CI/CD sistema e incorporan las mejores prácticas, como la gestión de los artefactos en varias cuentas y regiones y el uso de la cantidad mínima de permisos necesarios para implementar la aplicación. [Actualmente, la AWS SAM CLI admite la generación de configuraciones de CI/CD canalización iniciales para [AWS CodePipeline](https://aws.amazon.com/codepipeline)las canalizaciones de [Jenkins](https://www.jenkins.io/), [GitLab CI/CD](https://docs.gitlab.com/ee/ci/), [GitHub Actions](https://github.com/features/actions) y Bitbucket.](https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines/)

Estas son las tareas de alto nivel que debes realizar para generar una configuración de canalización inicial:

1. **Cree recursos de infraestructura**: su canalización requiere ciertos AWS recursos, por ejemplo, el usuario y las funciones de IAM con los permisos necesarios, un bucket de Amazon S3 y, opcionalmente, un repositorio de Amazon ECR.

1. **Conecta tu repositorio de Git con tu CI/CD sistema**: tu CI/CD sistema necesita saber qué repositorio de Git activará la canalización para que se ejecute. Ten en cuenta que este paso puede no ser necesario, dependiendo de la combinación de repositorio y CI/CD sistema de Git que utilices.

1. **Genera tu configuración de canalización**: este paso genera una configuración de canalización inicial que incluye dos etapas de implementación.

1. **Confirma la configuración de la canalización en tu repositorio de Git**: este paso es necesario para garantizar que el CI/CD sistema conozca la configuración de la canalización y se ejecute cuando se confirmen los cambios.

Una vez que hayas generado la configuración de canalización inicial y la hayas asignado a tu repositorio de Git, cada vez que alguien realice un cambio de código en ese repositorio, tu canalización se activará para que se ejecuta automáticamente.

El orden de estos pasos y los detalles de cada uno de ellos varían en función del sistema de CI/CD:
+ Si está utilizando AWS CodePipeline, consulte[Generando una tubería de arranque para AWS CodePipeline en AWS SAM](serverless-generating-example-ci-cd-codepipeline.md).
+ Si utiliza Jenkins, GitLab CI/CD, GitHub Actions o Bitbucket Pipelines, consulte. [Se usa AWS SAM para generar canalizaciones iniciales para Jenkins, GitLab CI/CD, Actions y Bitbucket Pipelines GitHub](serverless-generating-example-ci-cd-others.md)

# Generando una tubería de arranque para AWS CodePipeline en AWS SAM
<a name="serverless-generating-example-ci-cd-codepipeline"></a>

Para generar una configuración de canalización inicial para AWS CodePipeline, realice las siguientes tareas en este orden:

1. Crea recursos de infraestructura

1. Genere la configuración de la canalización

1. Confirme la configuración de su canalización en Git

1. Conecta tu repositorio de Git con tu CI/CD sistema

**nota**  
El siguiente procedimiento utilizas dos comandos CLI de AWS SAM, `sam pipeline bootstrap` y `sam pipeline init`. La razón por la que hay dos comandos es para gestionar el caso de uso en el que los administradores (es decir, los usuarios que necesitan permiso para configurar los AWS recursos de infraestructura, como los usuarios y las funciones de IAM) tienen más permisos que los desarrolladores (es decir, los usuarios que solo necesitan permiso para configurar canalizaciones individuales, pero no los AWS recursos de infraestructura necesarios).

## Paso 1: cree recursos de infraestructura
<a name="generating-example-step-1"></a>

Las canalizaciones que se utilizan AWS SAM requieren determinados AWS recursos, como un usuario de IAM y las funciones con los permisos necesarios, un bucket de Amazon S3 y, opcionalmente, un repositorio de Amazon ECR. Debe tener un conjunto de recursos de infraestructura para cada etapa de implementación de la canalización.

Puedes ejecutar el siguiente comando para editar o agregar esta configuración:

```
sam pipeline bootstrap
```

**nota**  
Ejecuta el comando anterior para cada etapa de implementación de su canalización.

## Paso 2: genere la configuración de la canalización
<a name="generating-example-step-2"></a>

Para generar la configuración de la canalización, ejecuta el siguiente comando:

```
sam pipeline init
```

## Paso 3: confirme la configuración de su canalización en el repositorio de Git
<a name="generating-example-step-3"></a>

Este paso es necesario para garantizar que el CI/CD sistema conozca la configuración de la canalización y se ejecute cuando se realicen los cambios.

## Paso 4: Conecta tu repositorio de Git con tu CI/CD sistema
<a name="generating-example-step-4"></a>

Pues ahora AWS CodePipeline puedes crear la conexión ejecutando el siguiente comando:

```
sam deploy -t codepipeline.yaml --stack-name <pipeline-stack-name> --capabilities=CAPABILITY_IAM --region <region-X>
```

Si utilizas GitHub Bitbucket, después de ejecutar el **sam deploy** comando anteriormente, completa la conexión siguiendo los pasos descritos en **Para completar una conexión, que se encuentran en el tema Actualizar una conexión** [pendiente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) de la *guía del usuario de la consola de Developer Tools*. Además, guarda una copia del resultado `CodeStarConnectionArn` del **sam deploy** comando, ya que la necesitarás si quieres usarla AWS CodePipeline con otra rama que no sea`main`.

## Configuración de otras ramificaciones
<a name="configuring-other-branches"></a>

De forma predeterminada, AWS CodePipeline usa la `main` rama con AWS SAM. Si quieres utilizar una ramificación que no sea `main`, debes volver a ejecutar el comando **sam deploy**. Ten en cuenta que, en función del repositorio de Git que utilices, es posible que también tengas que proporcionar el `CodeStarConnectionArn`:

```
# For GitHub and Bitbucket
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name> CodeStarConnectionArn=<codestar-connection-arn>"

# For AWS CodeCommit
sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name>"
```

## Más información
<a name="serverless-generating-cicd-learn"></a>

Para ver un ejemplo práctico de cómo configurar una CI/CD canalización, consulta [CI/CD AWS CodePipeline en *The* Complete](https://catalog.workshops.aws/complete-aws-sam/en-US/module-4-cicd) Workshop. AWS SAM 

# Se usa AWS SAM para generar canalizaciones iniciales para Jenkins, GitLab CI/CD, Actions y Bitbucket Pipelines GitHub
<a name="serverless-generating-example-ci-cd-others"></a>

Para generar una configuración de canalización inicial para Jenkins, GitLab CI/CD, GitHub Actions o Bitbucket Pipelines, realiza las siguientes tareas en este orden:

1. Crea recursos de infraestructura

1. Conecta tu repositorio de Git con tu CI/CD sistema

1. Crea objetos de credenciales

1. Genera la configuración de la canalización

1. Confirma su configuración de la canalización en el repositorio de Git

**nota**  
El siguiente procedimiento utilizas dos comandos CLI de AWS SAM, `sam pipeline bootstrap` y `sam pipeline init`. La razón por la que hay dos comandos es para gestionar el caso de uso en el que los administradores (es decir, los usuarios que necesitan permiso para configurar los AWS recursos de infraestructura, como los usuarios y las funciones de IAM) tienen más permisos que los desarrolladores (es decir, los usuarios que solo necesitan permiso para configurar canalizaciones individuales, pero no los AWS recursos de infraestructura necesarios).

## Paso 1: cree recursos de infraestructura
<a name="generating-example-step-1"></a>

Las canalizaciones que se utilizan AWS SAM requieren determinados AWS recursos, como un usuario de IAM y las funciones con los permisos necesarios, un bucket de Amazon S3 y, opcionalmente, un repositorio de Amazon ECR. Debe tener un conjunto de recursos de infraestructura para cada etapa de implementación de la canalización.

Puedes ejecutar el siguiente comando para editar o agregar esta configuración:

```
sam pipeline bootstrap
```

**nota**  
Ejecuta el comando anterior para cada etapa de implementación de su canalización.

Debe capturar AWS las credenciales (el identificador de clave y la clave secreta) de los usuarios de la canalización para cada etapa de despliegue de la canalización, ya que son necesarias para los pasos siguientes.

## Paso 2: Conecta tu repositorio de Git con tu CI/CD sistema
<a name="generating-example-step-2"></a>

Es necesario conectar el repositorio de Git al CI/CD sistema para que el CI/CD sistema pueda acceder al código fuente de la aplicación para compilaciones e implementaciones.

**nota**  
Puedes omitir este paso si utilizas una de las siguientes combinaciones, ya que la conexión se realiza automáticamente:  
GitHub Acciones con el repositorio GitHub 
GitLab CI/CD con repositorio GitLab 
Bitbucket Pipelines con repositorio de Bitbucket

Para conectar el repositorio de Git con el CI/CD sistema, realiza una de las siguientes acciones:
+ Si utilizas Jenkins, consulta la [documentación de Jenkins](https://www.jenkins.io/doc/book/pipeline/multibranch/) para «añadir un origen de ramificación».
+ Si utilizas GitLab CI/CD y otro repositorio de Git GitLab, consulta la [GitLabdocumentación](https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/) para «conectar un repositorio externo».

## Paso 3: crear objetos de credenciales
<a name="generating-example-step-3"></a>

Cada CI/CD sistema tiene su propia forma de administrar las credenciales necesarias para que el CI/CD sistema acceda a tu repositorio de Git.

Para crear los objetos de credenciales necesarios, haz una de las siguientes acciones:
+ Si utilizas Jenkins, cree una «credencial» única que almacene tanto el identificador como la contraseña. Sigue las instrucciones del blog [Cómo crear una canalización con Jenkins con AWS SAM](https://aws.amazon.com/blogs/compute/building-a-jenkins-pipeline-with-aws-sam/), en la sección **Configurar Jenkins**. Necesitarás el «identificador de credencial» para el siguiente paso.
+ Si utilizas GitLab CI/CD, crea dos «variables protegidas», una para cada identificador de clave y clave secreta. Siga las instrucciones de la [GitLab documentación](https://docs.gitlab.com/ee/ci/variables/): necesitará dos «claves variables» para el siguiente paso.
+ Si utilizas GitHub Actions, crea dos «secretos cifrados», uno para cada clave y una clave secreta. Sigue las instrucciones de la [GitHubdocumentación](https://docs.github.com/en/actions/reference/encrypted-secrets): necesitarás dos «nombres secretos» para el siguiente paso.
+ Si utilizas Bitbucket Pipelines, crea dos «variables seguras», una para cada identificador y contraseña. Sigue las instrucciones de las [variables y secretos](https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets); necesitarás dos «nombres secretos» para el siguiente paso.

## Paso 4: genere la configuración de la canalización
<a name="generating-example-step-4"></a>

Para generar la configuración de la canalización, ejecuta el siguiente comando. Necesitará introducir el objeto de credenciales que creaste en el paso anterior:

```
sam pipeline init
```

## Paso 5: confirma la configuración de su canalización en el repositorio de Git
<a name="generating-example-step-5"></a>

Este paso es necesario para garantizar que el CI/CD sistema conozca la configuración de la canalización y se ejecute cuando se realicen los cambios.

## Más información
<a name="serverless-generating-other-cicd-learn"></a>

Para ver un ejemplo práctico de cómo configurar una CI/CD canalización mediante el uso de este GitHub Actions método, consulte [CI/CD GitHub en *The* Complete](https://s12d.com/sam-ws-en-gh) Workshop. AWS SAM 