En esta página, se describe cómo almacenar artefactos inmutables con control de versiones que no se cumplir con cualquier formato de paquete específico en el formato genérico de Artifact Registry de Cloud Storage.
Para familiarizarte con el almacenamiento de artefactos genéricos en Artifact Registry, puedes puedes probar la guía de inicio rápido.
Los artefactos genéricos son archivos de cualquier formato, incluidos, entre otros, el lo siguiente:
- Archivos comprimidos, como archivos tar y zip
- Archivos de configuración, como los archivos YAML y TOML
- Archivos de texto y PDF
- Objetos binarios
- Archivos
- Archivos multimedia
A diferencia de otros formatos, los artefactos almacenados en repositorios de formato genérico no son para Docker, administradores de paquetes y otros clientes de terceros.
Antes de comenzar
- Crea un repositorio de formato genérico.
- Verifica si cuentas con los permisos necesarios para el en un repositorio de confianza.
- (Opcional) Establece los valores predeterminados para los comandos de Google Cloud CLI.
Roles obligatorios
A fin de obtener los permisos que necesitas para administrar artefactos genéricos, solicita a tu administrador que te otorgue el los siguientes roles de IAM en el repositorio:
-
Ver artefactos:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Descarga artefactos:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Sube artefactos a un repositorio:
Escritor de Artifact Registry (
roles/artifactregistry.writer
) -
Borra los artefactos:
Administrador del repositorio de Artifact Registry (
roles/artifactregistry.repoAdmin
)
Si quieres obtener más información para otorgar roles, consulta Administra el acceso.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Sube artefactos genéricos
Puedes subir artefactos genéricos de forma individual por archivo o en múltiplos de estos: . Cuando realices la carga, se debe incluir un nombre de paquete y un número de versión especificada. También puedes especificar la ruta en la estructura del archivo de destino para subirlas. Si no se especifica una ruta de destino, los artefactos se suben a el nivel raíz de forma predeterminada.
Para subir artefactos genéricos a tu repositorio, ejecuta el siguiente comando:
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
PROJECT
: tu Google Cloud
ID del proyecto:
Si el ID de tu proyecto contiene dos puntos (:
), consulta
Proyectos con alcance de dominioLOCATION
: Es la región o multirregional.
location del repositorio.REPOSITORY
: Es el nombre del repositorio en el que el
se almacena el artefacto.SOURCE
: Es la ubicación y el nombre del archivo que deseas.
la carga de datos.PACKAGE
: Es el nombre del paquete del archivo que deseas.
la carga de datos.VERSION
: Es la versión del archivo que estás subiendo.Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud artifacts generic upload \ --project=PROJECT \ --source=SOURCE \ --package=PACKAGE \ --version=VERSION \ --location=LOCATION \ --repository=REPOSITORY
Windows (PowerShell)
gcloud artifacts generic upload ` --project=PROJECT ` --source=SOURCE ` --package=PACKAGE ` --version=VERSION ` --location=LOCATION ` --repository=REPOSITORY
Windows (cmd.exe)
gcloud artifacts generic upload ^ --project=PROJECT ^ --source=SOURCE ^ --package=PACKAGE ^ --version=VERSION ^ --location=LOCATION ^ --repository=REPOSITORY
--destination-path=PATH
para subirlos a una carpeta específica dentro de paquete y versión. También se crearán carpetas que no existen.--source-directory=SOURCE_DIR
para reemplazar--source
marcar y subir un directorio en lugar de un solo archivo.--skip-existing
cuando se usa la marca--source-directory
para omitir archivos ya existentes. De lo contrario, el comando fallará cuando intente subir un archivo que ya existe.
API
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT es tu cuenta de Google Cloud
ID del proyecto: Si el ID de tu proyecto contiene dos puntos (
:
), consulta Proyectos con alcance de dominio - LOCATION es la región o La ubicación multirregional del repositorio.
- REPOSITORY es el nombre del en el que se almacena el artefacto.
- SOURCE es la ubicación y el nombre de el archivo que estás subiendo.
- PACKAGE es el nombre del paquete de que estás subiendo.
- VERSION es la versión del archivo que están subiendo.
- NAME es el nuevo nombre del archivo en la en un repositorio de confianza.
Método HTTP y URL:
POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
curl (Linux, macOS o Cloud Shell)
Para enviar la solicitud, ejecuta el siguiente comando:
curl -v \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-F "meta={'filename':'NAME','package_id':'PACKAGE','version_id':'VERSION'};type=application/json" \
-F "blob=@SOURCE" \
https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSTIORY/genericArtifacts:create?alt=json
Enumerar artefactos
Console
Puedes ver artefactos para repositorios de formato genérico en la Consola de Google Cloud
Abre la página Repositorios en la consola de Google Cloud.
En la lista de repositorios, selecciona el repositorio.
Haz clic en el nombre del paquete.
Para ver los archivos descargables de todas las versiones del paquete, haz clic en el botón Files .
Para ver los archivos descargables de una versión específica del paquete, haz clic en el nombre de la versión y, luego, haz clic en la pestaña Archivos.
gcloud
Puedes enumerar artefactos en un repositorio con el gcloud artifacts files list
.
.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
PROJECT
: tu Google Cloud ID del proyecto: Si el ID de tu proyecto contiene dos puntos (:
), consulta Proyectos con alcance de dominioLOCATION
: Es la región o multirregional. location del repositorio.REPOSITORY
: Es el nombre del repositorio en el que el se almacena el artefacto.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud artifacts files list \ --project=PROJECT \ --location=LOCATION \ --repository=REPOSITORY
Windows (PowerShell)
gcloud artifacts files list ` --project=PROJECT ` --location=LOCATION ` --repository=REPOSITORY
Windows (cmd.exe)
gcloud artifacts files list ^ --project=PROJECT ^ --location=LOCATION ^ --repository=REPOSITORY
FILE: my-package:1.0.0:hello.yaml CREATE_TIME: 2023-03-09T20:55:07 UPDATE_TIME: 2023-03-09T20:55:07 SIZE (MB): 0.000 OWNER: projects/my-project/locations/us-central1/repositories/quickstart-generic-repo/packages/my-package/versions/1.0.0
También es posible ordenar por versión y paquete agregando uno o ambos de las siguientes marcas:
--package=PACKAGE
para mostrar solo los archivos de un .--version=VERSION
para mostrar solo los archivos de un versión.
Descarga artefactos genéricos
Para descargar artefactos genéricos de tu repositorio, ejecuta el siguiente comando:
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
DESTINATION
: Es la ruta de acceso a la carpeta de destino. en tu sistema de archivos local. La carpeta de destino ya debe existir o el comando fallan.LOCATION
: Es la región o multirregional. location del repositorio.REPOSITORY
: Es el nombre del repositorio en el que el se almacena el artefacto.PACKAGE
: Es el paquete del archivo que se descargará.VERSION
: Es la versión del archivo que se descargará.NAME
(opcional): Es el nombre del archivo que se descargará. Sin esta marca, el comando descargará todos los archivos del paquete y la versión especificados como así como crear los directorios necesarios en el destino.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud artifacts generic download \ --destination=DESTINATION \ --location=LOCATION \ --repository=REPOSITORY \ --package=PACKAGE \ --version=VERSION \ --name=NAME
Windows (PowerShell)
gcloud artifacts generic download ` --destination=DESTINATION ` --location=LOCATION ` --repository=REPOSITORY ` --package=PACKAGE ` --version=VERSION ` --name=NAME
Windows (cmd.exe)
gcloud artifacts generic download ^ --destination=DESTINATION ^ --location=LOCATION ^ --repository=REPOSITORY ^ --package=PACKAGE ^ --version=VERSION ^ --name=NAME
API
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT
: tu Google Cloud ID del proyecto: Si el ID de tu proyecto contiene dos puntos (:
), consulta Proyectos con alcance de dominio.LOCATION
: Es la región o multirregional. location del repositorio.REPOSITORY
: Es el nombre del repositorio. en la que se almacena el artefacto.DESTINATION
: Es la ruta de acceso a la carpeta de destino en tu sistema de archivos local. La carpeta de destino ya debe existir o tu comando fallará.FILE
: Es el nombre de archivo codificado en formato URL. Puedes Para encontrar este valor, ejecuta el comandogcloud artifacts files list
y copia el valor deFILE
. Debe ser se convertirá al formato con codificación URL para este comando, por ejemplo,path/to/file.jar
debería ingresarse comopath%2Fto%2Ffile.jar
.
Método HTTP y URL:
GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media
Para enviar tu solicitud, expande una de estas opciones:
. La descarga debería comenzar de inmediato.Borrar artefactos genéricos
Para borrar artefactos genéricos de tu repositorio, ejecuta el comando gcloud artifacts
files delete
. Este comando solo está disponible en formatos genéricos
de Cloud Storage.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
FILE
: Es el nombre del archivo completo. Puedes encontrar este valor Ejecuta el comandogcloud artifacts files list
y copia el valor deFILE
.LOCATION
: Es la región o multirregional. location del repositorio.REPOSITORY
: Es el nombre del repositorio en el que el se almacena el artefacto.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud artifacts files delete \ FILE \ --location=LOCATION \ --repository=REPOSITORY
Windows (PowerShell)
gcloud artifacts files delete ` FILE ` --location=LOCATION ` --repository=REPOSITORY
Windows (cmd.exe)
gcloud artifacts files delete ^ FILE ^ --location=LOCATION ^ --repository=REPOSITORY