Para descargar el código fuente de una aplicación, ejecuta el comando appcfg.py
con la acción download_app
.
El comando appcfg.py download_app
está disponible a través del SDK de App Engine original para Python 2.
appcfg.py -A [YOUR_PROJECT_ID] -V [YOUR_VERSION_ID] download_app [OUTPUT_DIR]
En el ejemplo anterior, se ilustra lo siguiente:
[YOUR_PROJECT_ID]
es el ID del proyecto de Cloud.[YOUR_VERSION_ID]
es el ID de la versión de la aplicación que deseas descargar.[OUTPUT_DIR]
es la ruta de acceso completa del directorio en el que deseas que se descarguen los archivos.
Para obtener más información sobre este comando, consulta la referencia de appcfg.py download_app
.
Si el comando se ejecuta correctamente, obtendrás resultados similares a los siguientes:
Getting file list...
Fetching files...
Getting files...
[1/5] request.py
[2/5] login.py
[3/5] static/screen.css
[4/5] static/print.css
[5/5] images/bird.png
Soluciona problemas
Command not found
Si instalaste el SDK de Google Cloud y usas la herramienta de
gcloud
, el comandoappcfg.py
estará disponible en el directorio[SDK_INSTALL_PATH]/google-cloud-sdk/platform/google_appengine/
.Por ejemplo, si quieres usar el SDK de Google Cloud, debes especificar la ruta de acceso del directorio para ejecutar
appcfg.py
:[SDK_INSTALL_PATH]/google-cloud-sdk/platform/google_appengine/appcfg.py -A [YOUR_PROJECT_ID] -V [YOUR_VERSION_ID] download_app [OUTPUT_DIR]
You do not have permission to download this app version
Solo el usuario autenticado que implementó la versión de la aplicación y los usuarios con la función Propietario tienen los privilegios necesarios para descargar archivos. Si otro usuario intenta descargar la aplicación, recibirá un mensaje de error similar al siguiente:
Fetching file list... Error 403: --- begin server output --- You do not have permission to download this app version. --- end server output ---
Cómo impedir descargas de código fuente
El acceso para descarga a cualquier código fuente disponible se puede restringir mediante una Política de la organización.
A continuación se indica la restricción para controlar las descargas de código:
constraints/appengine.disableCodeDownload
El valor predeterminado para la restricción es falso, lo que significa que las descargas de código están habilitadas. Puedes habilitar esta restricción de políticas en una organización, proyecto y carpeta, y los recursos secundarios la heredan. Por ejemplo, un proyecto hereda las restricciones de políticas establecidas en la carpeta que lo contiene y una carpeta hereda las restricciones establecidas en una organización.
Permisos
Puedes establecer la restricción appengine.disableCodeDownload
si tienes la función orgpolicy.policyAdmin
en la organización.
Establece la restricción de políticas a nivel de la organización
Necesitas el ID de la organización de tu proyecto para establecer la restricción constraints/appengine.disableCodeDownload
.
Busca el ID de tu organización
Console
Puedes encontrar el ID en Google Cloud Console:
- Accede a Google Cloud Console.
Haz clic en el selector de proyectos.
Selecciona una organización y busca el ID de la organización.
gcloud
Ejecuta el siguiente comando de gcloud
y busca el ID:
gcloud organizations list
Se obtiene un ejemplo de resultado de gcloud
similar al siguiente, en el que el ID es el ID del proyecto:
DISPLAY_NAME ID
example-organization 29252605212
Establece tu restricción de política
Console
Para establecer la política de la organización, configura la restricción a fin de inhabilitar la descarga del código fuente:
- Ve a la página Políticas de la organización en Google Cloud Console.
- Haz clic en la lista desplegable Organización en la parte superior de la página y, luego, selecciona tu organización.
- Haz clic en Inhabilitar descarga de código fuente.
- Haz clic en el botón Editar.
- En Se aplica a, selecciona Personalizar.
- En Aplicación, selecciona Activado.
- Haz clic en Guardar. Aparecerá una notificación para confirmar que se actualizó la política.
gcloud
Las políticas se pueden establecer mediante la herramienta de línea de comandos gcloud
.
Para inhabilitar la descarga del código fuente, ejecuta el comando siguiente:
gcloud alpha resource-manager org-policies enable-enforce \ --organization 'ORGANIZATION_ID' \ appengine.disableCodeDownload
Para inhabilitar la política, se puede emitir el mismo comando con el comando
disable-enforce.
Puedes establecer la restricción appengine.disableCodeDownload
a nivel de carpeta y de proyecto. Para obtener más información sobre el uso de restricciones en las políticas de la organización, consulta Usa restricciones.