En el nivel premium, los paquetes de Assured OSS se alojan en un repositorio de Artifact Registry que se crea en un proyecto que controlas. 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 Premium de Assured OSS. En el caso del nivel gratuito, consulta Descarga paquetes de Python con acceso directo al repositorio para el nivel gratuito.
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.Valida la conectividad a Assured OSS para las cuentas de servicio solicitadas.
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 un 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 usar el llavero de Python con el objetivo de autenticarte en Artifact Registry, consulta Autentica con el llavero y Orden de búsqueda de credenciales. Te recomendamos que uses el llavero de Python para la autenticación.
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://LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python/simple por
la URL
https://_json_key_base64:$BASE64_KEY@LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto que seleccionaste cuando configuraste Assured OSS.LOCATION: una región admitida
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@LOCATION-python.pkg.dev/PROJECT_ID/assuredoss-python repo/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. Te recomendamos fijar las dependencias con hashes SHA-256 en tu archivorequirements.txtpara garantizar la seguridad y la reproducibilidad.-ves opcional. Si se especifica, el comando proporciona más resultados.- Reemplaza
LOCATIONpor una región admitida.
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.
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
satisfacer restricciones, como la versión de Python, la arquitectura de la máquina y el sistema
operativo. Luego, puedes borrar las versiones del paquete 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 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_FILEpor la ruta de acceso al archivo que contiene las credenciales de la cuenta de servicio proporcionada durante la configuración.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_STOREpor 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_STOREpor la ruta de acceso local en la que deseas guardar el archivo descargado. El archivoREADME.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_FILEpor 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.