Overview
Puede hacer una copia de una aplicación existente reutilizando los archivos de configuración de la aplicación y transfiriendo los secretos manualmente.
Es posible que desees copiar una aplicación si:
Se utilizan ramas de características para el desarrollo. Se debe usar una copia única de la aplicación para cada rama de características para evitar conflictos.
Ejecuta pruebas contra una versión funcional de la aplicación. Puedes copiar una aplicación para cada ejecución de prueba para garantizar un estado de inicio consistente.
Implementas la misma aplicación en clústeres de distintas regiones mediante un modelo de implementación local. Puedes copiar una aplicación para que funcione en varias regiones localmente.
Antes de comenzar
Necesitará lo siguiente para copiar una aplicación en la CLI:
Una cuenta de MongoDB Atlas con permisos de propietario del proyecto. Para saber cómo crear una cuenta gratuita, consulte Comience a utilizar Atlas.
Un par de claves pública/privada de la API de administración de MongoDB Atlas. La clave de API debe tener permisos de propietario del proyecto para funcionar con la API de administración de App Services.
Una copia de la CLI de App Services instalada y agregada a su sistema local
PATHPara saber cómo hacerlo,consulte Instalar la CLI de App Services.
Para copiar una aplicación basada en archivos de configuración en un repositorio de GitHub, debe habilitar la Implementación automática de GitHub para la aplicación.
Procedimiento
Advertencia
Si la implementación automática de GitHub está habilitada, no envíes cambios a tu aplicación con la CLI de App Services. Para obtener más información, consulta "Evitar realizar cambios desde la CLI".
Crear una nueva aplicación
Cree una nueva aplicación en blanco. Elija un nombre y configure el modelo de implementación y la región que desea que use la aplicación copiada. Para obtener más información, consulte Crear una aplicación.
Ejemplo
# Create the new App appservices app create \ --name "myapp-copy" \ --deployment-model "LOCAL" \ --provider-region "aws-us-west-2"
Migrar secretos a la nueva aplicación
Los archivos de configuración de una aplicación no incluyen los nombres ni los valores de ningún secreto.
Debes tener acceso a los valores secretos existentes en la aplicación original y agregarlos manualmente a la nueva aplicación. Si tu aplicación no tiene secretos, puedes omitir este paso.
Para agregar los secretos de tu aplicación original:
Obtenga los nombres de todos los secretos de la aplicación exportada siguiendo la documentación de visualización de secretos.
Guarda los nombres de todos los secretos en una ubicación segura. La lista no incluirá los valores reales de los secretos, pero es útil tener una lista de los nombres de los secretos para agregarlos a tu nueva aplicación.
Encuentra el valor de cada uno de los secretos de la aplicación original.
Añade cada secreto individualmente a la nueva aplicación. Para saber cómo, consulta Definir un secreto.
Importante
Agregue secretos antes de copiar archivos de configuración
Algunas funciones de App Services requieren que se definan uno o más secretos antes de poder definirlas y usarlas. Por ejemplo, los proveedores de autenticación OAuth requieren un secreto con un valor clientSecret.
Si envía archivos de configuración que hacen referencia a secretos no definidos, la implementación fallará.
Copiar sus archivos de configuración
Extrae la última versión de los archivos de configuración de tu aplicación original a tu sistema de archivos local. Para saber cómo, consulta Exportar una aplicación.
Ejemplo
# Pull the config files for an existing App appservices pull --remote="myapp-abcde"
Copia todos los archivos de configuración de tu aplicación original, excepto root_config.json, al directorio de configuración de la nueva aplicación. Debes usar el root_config.json de la nueva aplicación y sobrescribir cualquier otro archivo de configuración.
Ejemplo
# Copy all configuration files except for root_config.json cp -r myapp myapp-temp rm myapp-temp/root_config.json cp -r myapp-temp/* myapp-copy rm -rf myapp-temp
Empujar los archivos de configuración copiados
Inserta los archivos de configuración que copiaste de tu aplicación original. La nueva aplicación se actualizará e implementará automáticamente con los archivos de configuración copiados.
Ejemplo
# Navigate back to the new App cd myapp-copy # Push the copied configuration files to App Services appservices push
Crear un nuevo directorio de configuración
Crea un nuevo directorio para almacenar los archivos de configuración de la aplicación copiada. Puedes crear un nuevo repositorio para la aplicación copiada o mantener las configuraciones de ambas aplicaciones en el mismo repositorio mediante ramas o subdirectorios.
Ejemplo
# Create a new directory for the copied App mkdir myapp-copy
Crear una nueva aplicación
Cree una nueva aplicación en blanco. Elija el mismo nombre que la aplicación original y configure el modelo de implementación y la región que desea que use la aplicación copiada. Para obtener más información, consulte Crear una aplicación.
Una vez creado, guarde los archivos de configuración de la nueva aplicación en el directorio que creó en el paso anterior si aún no están.
Ejemplo
# Navigate to the new App's directory cd myapp-copy # Create the new App. The create command saves the new # App's configuration file directory in the current directory appservices app create \ --name "myapp-copy" \ --deployment-model "LOCAL" \ --provider-region "aws-us-west-2" cp -r myapp-copy/* . rm -rf myapp-copy # Navigate back to the root of the repo cd ..
Configurar la implementación automática de Github
En la nueva aplicación, configura y habilita la implementación automática de GitHub. Asegúrate de apuntar al repositorio, la rama y el directorio que creaste para la nueva aplicación, no a la aplicación original.
Migrar secretos a la nueva aplicación
Los archivos de configuración de una aplicación no incluyen los nombres ni los valores de ningún secreto.
Debes tener acceso a los valores secretos existentes en la aplicación original y agregarlos manualmente a la nueva aplicación. Si tu aplicación no tiene secretos, puedes omitir este paso.
Para agregar los secretos de tu aplicación original:
Obtenga los nombres de todos los secretos de la aplicación exportada siguiendo la documentación de visualización de secretos.
Guarda los nombres de todos los secretos en una ubicación segura. La lista no incluirá los valores reales de los secretos, pero es útil tener una lista de los nombres de los secretos para agregarlos a tu nueva aplicación.
Encuentra el valor de cada uno de los secretos de la aplicación original.
Añade cada secreto individualmente a la nueva aplicación. Para saber cómo, consulta Definir un secreto.
Importante
Agregue secretos antes de copiar archivos de configuración
Algunas funciones de App Services requieren que se definan uno o más secretos antes de poder definirlas y usarlas. Por ejemplo, los proveedores de autenticación OAuth requieren un secreto con un valor clientSecret.
Si envía archivos de configuración que hacen referencia a secretos no definidos, la implementación fallará.
Copiar sus archivos de configuración
Copia todos los archivos de configuración de tu aplicación original, excepto root_config.json, al directorio de configuración de la nueva aplicación. Debes usar el root_config.json de la nueva aplicación y sobrescribir cualquier otro archivo de configuración.
Ejemplo
# Copy all configuration files except for root_config.json cp -r myapp myapp-temp rm myapp-temp/root_config.json cp -r myapp-temp/* myapp-copy rm -rf myapp-temp
Subir nueva aplicación a Github
Confirma los archivos de configuración de la aplicación copiados y luego envíalos a GitHub. Agrega los archivos de configuración de la aplicación copiados y luego súbelos a GitHub.
Ejemplo
# Navigate back to the new App cd myapp-copy # Push the copied configuration files to GitHub git add -A git commit -m "Copy configuration from myapp" git push origin main