

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.

# Flujos de trabajo en equipo con aplicaciones full stack de Amplify Gen 1
<a name="team-workflows-with-amplify-cli-backend-environments"></a>

La implementación de una ramificación de características consta de un entorno **frontend** y otro **backend** opcional. El frontend se compila e implementa en una red de entrega de contenido (CDN), mientras que Amplify Studio o la CLI de Amplify implementan el backend en AWS. Para obtener información sobre cómo configurar este escenario de implementación, consulte [Creación del backend de una aplicación](deploy-backend.md).

Amplify Hosting implementa continuamente recursos de backend, como las funciones de GraphQL APIs y Lambda, con sus despliegues de sucursales de funciones. Puede usar los siguientes modelos de ramificación para implementar su backend y frontend con Amplify Hosting.

## Flujo de trabajo de ramificación de característica
<a name="standard"></a>
+ Cree entornos de backend de**producción**, **pruebas** y **desarrollo** con Amplify Studio o la CLI de Amplify.
+ Asigne el backend de **producción** a la ramificación **principal**. 
+ Asigne el backend de **pruebas** a la ramificación de **desarrollo**.
+ Los miembros del equipo pueden usar el entorno de backend de **desarrollo** para probar ramificaciones de **características** individuales.

![Un diagrama que muestra cómo asignar las relaciones entre los entornos de backend y las ramificaciones de frontend.](http://docs.aws.amazon.com/es_es/amplify/latest/userguide/images/FeatureBranchWorkflow.png)


1. Instale la CLI de Amplify para inicializar un nuevo proyecto de Amplify.

   ```
   npm install -g @aws-amplify/cli
   ```

1. Inicialice un entorno de backend de *producción* para su proyecto. Si no tienes un proyecto, crea uno con herramientas de arranque como Gatsby. create-react-app

   ```
   create-react-app next-unicorn
   cd next-unicorn
   amplify init
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: prod
   ...
   amplify push
   ```

1. Añada entornos de backend de *pruebas* y *desarrollo*.

   ```
   amplify env add
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: test
   ...
   amplify push
   
   amplify env add
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: dev
   ...
   amplify push
   ```

1. Inserte código en el repositorio de Git que elija (en este ejemplo supondremos que lo ha insertado en el principal).

   ```
   git commit -am 'Added dev, test, and prod environments'
   git push origin main
   ```

1. Visite Amplify en Consola de administración de AWS para ver su entorno de backend actual. Desplácese un nivel hacia arriba desde la ruta de navegación para ver una lista de todos los entornos de backend creados en la pestaña de **Entornos de backend**.  
![La consola de Amplify muestra los entornos de backend asociados a una aplicación de Amplify.](http://docs.aws.amazon.com/es_es/amplify/latest/userguide/images/reuse-backend-5.png)

1. Pase a la pestaña de **Entornos de frontend** y conecte su proveedor de repositorios con la ramificación *principal*.

1. En la página de configuración de compilación, seleccione un entorno de backend existente para configurar la implementación continua con la ramificación principal. Elija *producción* en la lista y conceda el rol de servicio a Amplify. Elija **Guardar e implementar**. Una vez completada la compilación, obtendrá una implementación en la sucursal principal disponible en. *https://main.appid.amplifyapp.com*  
![La página Hacer ajustes en la configuración de compilación con una lista de los backends existentes.](http://docs.aws.amazon.com/es_es/amplify/latest/userguide/images/reuse-backend-2.png)

1. Conecte la ramificación de *desarrollo* en Amplify (suponga que las ramificaciones de *desarrollo* y *principales* son las mismas en este momento). Elija el entorno de backend de *pruebas*.  
![La página Agregar una ramificación de repositorio con un entorno de ramificaciones y backend seleccionado.](http://docs.aws.amazon.com/es_es/amplify/latest/userguide/images/reuse-backend-4.png)

1. Amplify ya está configurado. Puede empezar a trabajar en nuevas características en una ramificación de características. Añada la funcionalidad de backend mediante el entorno de backend de *desarrollo* desde su estación de trabajo local.

   ```
   git checkout -b newinternet
   amplify env checkout dev
   amplify add api
   ...
   amplify push
   ```

1. Una vez que termine de trabajar en la característica, confirme su código y cree una solicitud de extracción para realizar una revisión interna.

   ```
   git commit -am 'Decentralized internet v0.1'
   git push origin newinternet
   ```

1. Para obtener una vista previa de cómo se verán los cambios, vaya a la consola de Amplify y conecte su ramificación de características. Nota: Si lo tiene AWS CLI instalado en su sistema (no en la CLI de Amplify), puede conectar una sucursal directamente desde su terminal. Encontrará su appid yendo a App settings > General > AppARN (Configuración de la aplicación > General > AppARN): *arn:aws:amplify:<region>:<region>:apps/<appid>* 

   ```
   aws amplify create-branch --app-id <appid> --branch-name <branchname>
   aws amplify start-job --app-id <appid> --branch-name <branchname> --job-type RELEASE
   ```

1. Podrás acceder a tu función en *https://newinternet.appid.amplifyapp.com*para compartirla con tus compañeros de equipo. Si todo parece correcto, combine las relaciones públicas en la ramificación de desarrollo.

   ```
   git checkout develop
   git merge newinternet
   git push
   ```

1. Esto dará inicio a una compilación que actualizará el backend y el frontend de Amplify con un despliegue en una sucursal en. *https://dev.appid.amplifyapp.com* Puede compartir este enlace con las partes interesadas internas para que puedan revisar la nueva característica.

1. Elimine su ramificación de características de Git, Amplify y quite el entorno de backend de la nube (siempre puede poner en marcha uno nuevo basado en la ejecución de “amplify env checkout prod” y de “amplify env add”).

   ```
   git push origin --delete newinternet
   aws amplify delete-branch --app-id <appid> --branch-name <branchname>
   amplify env remove dev
   ```

## GitFlow flujo de trabajo
<a name="gitflow"></a>

GitFlow utiliza dos ramas para registrar el historial del proyecto. La rama *principal* solo rastrea el código de la versión, y la rama de *desarrollo* se usa como rama de integración para las nuevas funciones. GitFlow simplifica el desarrollo paralelo al aislar el desarrollo nuevo del trabajo terminado. El nuevo desarrollo (como correcciones de características y de errores no urgentes) se lleva a cabo en las ramificaciones de *características*. Cuando el desarrollador considera que el código está listo para lanzamiento, la ramificación de *características* se combina de nuevo en la ramificación de *desarrollo* de integración. Las únicas confirmaciones en la ramificación principal son combinaciones desde ramificaciones de *lanzamiento* y ramificaciones de *correcciones* (para corregir errores de emergencia).

El siguiente diagrama muestra una configuración recomendada con. GitFlow Puede seguir el mismo proceso tal como se describe en la sección sobre el flujo de trabajo de ramificación de característica anterior.

![Un diagrama que muestra una configuración recomendada con GitFlow.](http://docs.aws.amazon.com/es_es/amplify/latest/userguide/images/GitflowWorkflow.png)


## Entorno de pruebas por desarrollador
<a name="sandbox"></a>
+ Cada desarrollador de un equipo crea un entorno de pruebas en la nube que es independiente de su equipo local. Esto permite a los desarrolladores trabajar de forma aislada entre sí sin sobrescribir los cambios de los demás miembros del equipo.
+ Cada ramificación de Amplify tiene su propio backend. Esto garantiza que Amplify utilice el repositorio de Git como una fuente única desde la que implementar cambios, en lugar de confiar a los desarrolladores del equipo que envíen manualmente su backend o frontend a producción desde sus equipos locales.

![Un diagrama que muestra el flujo de trabajo de un entorno de pruebas por desarrollador.](http://docs.aws.amazon.com/es_es/amplify/latest/userguide/images/AmplifySandboxWorkflow.png)


1. Instale la CLI de Amplify para inicializar un nuevo proyecto de Amplify.

   ```
   npm install -g @aws-amplify/cli
   ```

1. Inicialice el entorno de backend *mary* para su proyecto. Si no tienes un proyecto, crea uno con herramientas de bootstrap como create-react-app Gatsby.

   ```
   cd next-unicorn
   amplify init
    ? Do you want to use an existing environment? (Y/n): n
    ? Enter a name for the environment: mary
   ...
   amplify push
   ```

1. Inserte código en el repositorio de Git que elija (en este ejemplo supondremos que lo ha insertado en el principal).

   ```
   git commit -am 'Added mary sandbox'
   git push origin main
   ```

1. Conecte su repositorio > *principal* a Amplify.

1. La consola de Amplify detectará los entornos de backend que ha creado la CLI de Amplify. Elija *Crear nuevo entorno* en el menú desplegable y conceda el rol de servicio a Amplify. Elija **Guardar e implementar**. Una vez completada la compilación, dispondrás de una implementación en la sucursal principal *https://main.appid.amplifyapp.com*con un nuevo entorno de backend vinculado a la sucursal.

1. Conecte la ramificación de *desarrollo* en Amplify (suponga que las ramificaciones de *desarrollo* y *principales* son las mismas en este momento) y elija *Crear*.