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:
You use feature branches for development. Use a unique copy of the App for each feature branch to avoid conflicts.
You run tests against a working version of the App. You can copy an App for each test run to to ensure a consistent start state.
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 Comienza con Atlas.
Un par de claves pública/llave privada de la API de administración de MongoDB Atlas. La clave de la API debe tener permisos de Propietario del proyecto para trabajar 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.
To copy an App based on configuration files in a GitHub repository, you must enable Automatic GitHub Deployment for the App.
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
An App's configuration files do not include the names or values of any Secrets.
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:
Obtén los nombres de todos los secretos de la aplicación exportada siguiendo la documentación de vista 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.
Busca el valor para cada uno de los secretos originales de la aplicación.
Add each Secret individually to the new App. To learn how, see Define a Secret.
Importante
Añadir 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á.
Copy Your Configuration Files
Obtén la última versión de los archivos de configuración originales de tu aplicación en tu sistema de archivos local. Para aprender cómo, consulta Exportar una aplicación.
Ejemplo
# Pull the config files for an existing App appservices pull --remote="myapp-abcde"
Copy all configuration files from your original App, except for root_config.json, to the new App's configuration directory. You should use the new App's root_config.json and overwrite any other configuration files.
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
Create a new directory to store the copied App's configuration files. You can create a new repository for the copied App or keep both Apps' configurations in the same repository using branches or subdirectories.
Ejemplo
# Create a new directory for the copied App mkdir myapp-copy
Crear una Nueva aplicación
Create a new blank App. Choose the same name as the original App and set the deployment model and region to be what you want the copied App to use. For more information, see Create an App.
Once created, save the new App's configuration files to the directory you created in the previous step if they aren't already.
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
In the new App, set up and enable Automatic Github Deployment. Make sure to point to the repository, branch, and directory that you created for the new App, not your original App.
Migrar secretos a la nueva aplicación
An App's configuration files do not include the names or values of any Secrets.
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:
Obtén los nombres de todos los secretos de la aplicación exportada siguiendo la documentación de vista 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.
Busca el valor para cada uno de los secretos originales de la aplicación.
Add each Secret individually to the new App. To learn how, see Define a Secret.
Importante
Añadir 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á.
Copy Your Configuration Files
Copy all configuration files from your original App, except for root_config.json, to the new App's configuration directory. You should use the new App's root_config.json and overwrite any other configuration files.
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
Pushear 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