Cómo descargar tu código fuente

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 en el SDK original de App Engine para Python 2.

appcfg.py -A [YOUR_PROJECT_ID] -V [YOUR_VERSION_ID] download_app [OUTPUT_DIR]

Donde:

  • [YOUR_PROJECT_ID] es el ID de tu proyecto de GCP.
  • [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.

Si deseas 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

Solución de problemas

Command not found

Si instalaste el SDK de Google Cloud y utilizas la herramienta gcloud, el comando appcfg.py está disponible en el directorio [SDK_INSTALL_PATH]/google-cloud-sdk/platform/google_appengine/.

Por ejemplo, si quieres usar el SDK de Google Cloud, especifica la ruta 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 se te ha otorgado la función orgpolicy.policyAdmin en la organización.

Cómo establecer 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.

Encuentra el ID de tu organización

Console

Puedes encontrar el ID en Google Cloud Platform Console:

  1. Accede a Google Cloud Platform Console.
  2. Haz clic en el selector de proyectos.

    Captura de pantalla del selector de proyectos y organización

  3. Selecciona una organización y busca el ID de la organización.

    Captura de pantalla del ID de la organización

gcloud

Ejecuta el siguiente comando de gcloud y busca el ID:

gcloud organizations list

Ejemplo de salida de gcloud similar a lo siguiente, donde ID es el ID del proyecto:

DISPLAY_NAME           ID
example-organization   29252605212

Cómo establecer la restricción de políticas

Console

Para establecer la política de la organización, configura la restricción a fin de inhabilitar la descarga del código fuente:

  1. Ve a la página de Políticas de la organización en Google Cloud Platform Console.

    Ir a la página Políticas de la organización

  2. Haz clic en la lista desplegable Organización en la parte superior de la página y, luego, selecciona tu organización.
  3. Haz clic en Inhabilitar descarga de código fuente.
  4. Haz clic en el botón Editar.
  5. En Se aplica a, selecciona Personalizar.
  6. En Aplicación, selecciona Activado.
  7. Haz clic en Guardar. Aparecerá una notificación para confirmar que se actualizó la política.

gcloud

Se pueden establecer políticas mediante la herramienta de línea de comandos gcloud.

Para inhabilitar la descarga del código fuente, ejecuta el siguiente comando:

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 por carpeta y por proyecto. Para obtener más información sobre el uso de restricciones en las políticas de la organización, consulta la página acerca de cómo usar restricciones.