En el nivel gratuito, los paquetes de Assured Open Source Software (Assured OSS) se alojan en un repositorio de Artifact Registry administrado por Google. Para acceder directamente a los paquetes de Python y descargarlos, puedes conectarte al repositorio de Artifact Registry para Assured OSS.
Este documento solo se aplica al nivel gratuito. Para el nivel Premium, consulta Descarga paquetes de Python con acceso directo al repositorio.
Antes de comenzar
Solicita a tu administrador que te otorgue el rol de IAM de Administrador de claves de cuentas de servicio (
roles/iam.serviceAccountKeyAdmin) en tu organización. Necesitas este permiso para obtener la cadena codificada en Base64 de la clave de la cuenta de servicio. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.Configurar Assured OSS Para el nivel gratuito, envía el formulario de habilitación del cliente para habilitar el acceso a Assured OSS.
Valida la conectividad a Assured OSS para las cuentas de servicio solicitadas.
Habilita la API de Artifact Registry para el proyecto superior de Google Cloud de las cuentas de servicio que se usan para acceder a Assured OSS.
Instala la versión más reciente de la Google Cloud CLI. Si ya instalaste la Google Cloud CLI, ejecuta este comando para asegurarte de tener la versión más reciente:
gcloud components update
Configura la autenticación
Puedes autenticarte en el repositorio de paquetes de Python de Assured OSS con uno de los siguientes métodos:
- Autentica con el llavero de Python
- Autentica con una clave de cuenta de servicio
En las secciones siguientes, se describe cómo configurar estos métodos de autenticación.
Autentica con el llavero de Python
Para autenticarte en Artifact Registry con Python, te recomendamos usar el llavero de claves de Python. Para obtener más información, consulta autenticación con llavero de claves y orden de búsqueda de credenciales.
Para configurar el llavero de claves de Python para la autenticación, haz lo siguiente:
Instala la biblioteca
keyring:pip install keyringInstala el backend de Artifact Registry:
pip install keyrings.google-artifactregistry-authEnumera los backends para confirmar la instalación:
keyring --list-backendsLa lista debe incluir lo siguiente:
ChainerBackend(priority:10)GooglePythonAuth(priority:9)
Para obtener información sobre cómo configurar las credenciales predeterminadas de la aplicación, consulta Configura la autenticación.
Este paso garantiza que el auxiliar de credenciales de Assured OSS obtenga tu clave cuando se conecte con los repositorios.
Autentica con una clave de cuenta de servicio
Autentica con una clave de cuenta de servicio cuando la aplicación requiera autenticación con un nombre de usuario y una contraseña.
Reemplaza la URL del repositorio de paquetes
https://us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple por
la URL
https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple
Instala paquetes
En las siguientes instrucciones, se supone que usas PyPI y requirements.txt para descargar y administrar tus dependencias. Si usas cualquier otro proceso de administración de dependencias, debes seguir pasos diferentes.
Instala paquetes en Assured OSS
Para especificar los paquetes de Assured OSS para Python que quieres descargar, crea dos archivos requirements.txt. Los archivos de ejemplo son los siguientes:
requirements-google.txt# Packages present in Google's Artifact Registry urllib3==1.26.11 --hash=sha256:1cffe1aa066363a75c856f261c8fce62d87f7c40ce0f46453ea12bf652b12a13 jsonschema==4.13.0 --hash=sha256:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74erequirements-pypi.txt# Packages present in Google's Artifact Registry are mentioned here so that pip # downloads their dependencies from PyPI. urllib3==1.26.11 jsonschema==4.13.0 # Below this comment, add any package version which you need but is NOT # present in Google's Artifact Registry and therefore needs to be downloaded from # PyPI.
Para descargar los paquetes, ejecuta los siguientes comandos:
Para descargar los paquetes necesarios que se encuentran en Artifact Registry para Assured OSS, ejecuta el siguiente comando:
pip install --require-hashes --requirement=requirements-google.txt \ --index-url https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple -v \ --no-depsTen en cuenta lo siguiente:
--require-hasheses opcional. Si se incluyen, se especifican los hashes para todos los paquetes y para todas las versiones de paquetes en el archivorequirements.txt.-ves opcional. Si se especifica, el comando proporciona más resultados. Te recomendamos fijar las dependencias con hashes SHA-256 en tu archivorequirements.txtpara garantizar la seguridad y la reproducibilidad.
Para descargar los paquetes necesarios que no están en Artifact Registry para Assured OSS, ejecuta lo siguiente:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -vEste comando también descarga las dependencias faltantes de los paquetes que descargaste con el comando anterior.
Accede a paquetes que no están disponibles en el repositorio de Artifact Registry para Assured OSS
Assured OSS está preconfigurado con Assured OSS como repositorio preferido, y con repositorios públicos canónicos, como Maven Central o PyPI, como repositorios secundarios.
Para usar esta función (versión preliminar), puedes apuntar a una sola URL:
https://us-python.pkg.dev/cloud-aoss/python/simple
Enumera todos los paquetes de Python disponibles en Assured OSS
Para usar una API con el objetivo de obtener una lista de todos los paquetes de Python en el repositorio de Artifact Registry, consulta Crea una lista de todos los paquetes de Python disponibles en Assured OSS.
Genera el archivo requirements-google.txt
En esta sección, se proporciona información adicional sobre cómo generar el archivo requirements-google.txt que necesitas para descargar los paquetes de Python. Para descargar el hash y generar el archivo requirements-google.txt
para tu entorno, puedes usar una de las siguientes dos opciones:
Usa una secuencia de comandos para generar un solo archivo de requisitos para todos los artefactos.
Descarga un archivo de requisitos independiente para cada artefacto.
En las siguientes secciones, se proporciona más información sobre estas opciones.
Opción 1: Usa una secuencia de comandos para generar un solo archivo de requisitos para todos los artefactos
Usa la secuencia de comandos generator.sh para generar un solo
archivo requirements-google.txt para todos los paquetes de Python
(junto con sus hashes) disponibles con Assured OSS para el sistema operativo Linux. Los
paquetes deben cumplir con restricciones, como la versión de Python, la arquitectura de la máquina
y el sistema operativo. Luego, puedes borrar las versiones de paquetes que no
necesites y usar el archivo resultante.
La secuencia de comandos generator.sh ayuda de las siguientes dos maneras:
- Genera la lista más reciente de versiones de paquetes de Python disponibles con Assured OSS que se pueden instalar correctamente en tu sistema.
- Genera el archivo
requirements-google.txtjunto con todos los hashes.
La secuencia de comandos requerida y su archivo README.md están disponibles en un bucket de Cloud Storage (gs://cloud-aoss/utils/python-requirements-txt/v1.0), que se puede descargar
con la Google Cloud CLI.
Para descargar la secuencia de comandos y el archivo README.md, sigue estos pasos:
Autentica con la cuenta de servicio para acceder al bucket de Cloud Storage con el siguiente comando:
gcloud auth activate-service-account --key-file KEY_FILEReemplaza KEY_FILE por la ruta de acceso al archivo que contiene las credenciales de la cuenta de servicio.
Descarga el
generator.shen tu máquina con el siguiente comando:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursiveReemplaza PATH_TO_LOCAL_STORE por la ruta de acceso local en la que deseas guardar el archivo descargado.
Descarga el archivo
README.mdcon el siguiente comando:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursiveReemplaza PATH_TO_LOCAL_STORE por la ruta de acceso local en la que deseas guardar el archivo descargado. El archivo
README.mdcontiene instrucciones para usar la secuencia de comandos.
Para ejecutar la secuencia de comandos, usa los siguientes comandos:
Para generar el archivo
requirements-google.txt, ejecuta el siguiente comando:chmod +x generator.sh ./generator.shPara obtener la información del paquete en un archivo CSV, ejecuta el siguiente comando:
chmod +x generator.sh ./generator.sh -i
Opción 2: Descarga requirements.txt para cada artefacto requerido
También puedes descargar un archivo requirements.txt independiente (que contenga el hash)
para cada artefacto de Python y, luego, combinarlos en un solo archivo
requirements.txt.
Los hashes de artefactos están disponibles en un bucket de Cloud Storage, que se puede descargar
con la gcloud CLI. Los hashes de cada
paquete y una versión se encuentran en la ubicación del bucket de Cloud Storage
gs://cloud-aoss/python/PACKAGE_NAME/VERSION.
Para descargar el archivo requirements.txt, sigue estos pasos:
Autentica con la cuenta de servicio para acceder al bucket de Cloud Storage con el siguiente comando:
gcloud auth activate-service-account --key-file KEY_FILEReemplaza KEY_FILE por la ruta de acceso al archivo que contiene las credenciales de la cuenta de servicio.
Descarga el
requirements.txtde un paquete y una versión específicos en tu máquina local con el siguiente comando:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursiveReemplaza lo siguiente:
- PACKAGE_NAME: Es el nombre del paquete.
- VERSION: Es la versión del paquete.
- PATH_TO_LOCAL_STORE: Es la ruta de acceso local en la que deseas descargar el archivo.
Comando de muestra:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach--recursiveArchivo
requirements.txtde muestra:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812El contenido de cada uno de esos archivos
requirements.txtse puede combinar en un solo archivorequirements-google.txt.