Travailler avec des registres d’images et des référentiels

Snowpark Container Services fournit un service de registre d’images conforme à OCIv2 et un référentiel d’appel d’unités de stockage pour stocker les images. Vous pouvez utiliser les commandes Snowflake CLI suivantes pour gérer les registres et référentiels d’images Snowpark Container Services :

Pour plus d’informations sur les référentiels d’images Snowpark Container Services, voir Snowpark Container Services : utilisation d’un registre et d’un référentiel d’images.

Gérer les registres d’images

Snowflake CLI vous permet d’effectuer les tâches suivantes avec les référentiels d’images Snowpark Container Services :

Pour les opérations courantes, telles que l’affichage sous forme de liste ou la suppression, Snowflake CLI utilise les commandes snow object décrites dans Gestion des objets Snowflake.

Obtenir des jetons d’environnement pour l’authentificateur du registre

Vous pouvez utiliser la commande snow spcs image-registry token pour renvoyer le jeton associé à la connexion spécifiée que vous pouvez utiliser pour vous authentifier auprès du registre.

snow spcs image-registry token --connection mytest
Copy
+----------------------------------------------------------------------------------------------------------------------+
| key        | value                                                                                                   |
|------------+---------------------------------------------------------------------------------------------------------|
| token      | ****************************************************************************************************    |
|            | ****************************************************************************************************    |
| expires_in | 3600                                                                                                    |
+----------------------------------------------------------------------------------------------------------------------+

Vous pouvez ensuite utiliser ce jeton pour vous connecter à un conteneur Docker en le faisant passer dans la commande docker login, comme dans l’exemple suivant :

snow spcs image-registry token --format=JSON | docker login <org>-<account>.registry.snowflakecomputing.com -u 0sessiontoken --password-stdin
Copy

Se connecter à un registre d’images

snow spcs image-registry login vous connecte à un référentiel d’images avec les identifiants de connexion spécifiés pour votre connexion. Avant de vous connecter, vous devez remplir les conditions suivantes :

  • Docker Desktop doit être installé car la commande utilise docker pour se connecter à Snowflake.

  • Le rôle actuel doit avoir les privilèges READ pour le référentiel d’images dans le compte pour obtenir l’URL de registre.

Pour vous connecter à un registre d’images avec les identifiants de votre compte, procédez comme suit :

snow spcs image-registry login
Copy
Login Succeeded

Récupérer l’URL pour un registre d’images

La commande snow spcs image-registry url renvoie une URL pour un référentiel d’images. Le rôle actuel doit avoir les privilèges READ pour le référentiel d’images dans le compte pour obtenir l’URL de registre.

Pour obtenir l’URL d’un référentiel, procédez comme suit :

snow spcs image-registry url
Copy
<orgname-acctname>.registry.snowflakecomputing.com

Gérer les référentiels d’images

Snowflake CLI vous permet d’effectuer les tâches suivantes avec les référentiels d’images Snowpark Container Services :

Pour les opérations courantes, telles que l’affichage sous forme de liste ou la suppression, Snowflake CLI utilise les commandes snow object décrites dans Gestion des objets Snowflake.

Créer un référentiel d’images

La commande snow spcs image-repository create crée un nouveau référentiel d’images dans le schéma actuel.

Pour créer un référentiel d’images, entrez une commande similaire à la suivante :

snow spcs image-repository create tutorial_repository
Copy
+-------------------------------------------+
| key    | value                            |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+

Créer et déployer un référentiel d’images à partir d’une définition de projet

Vous pouvez déployer un référentiel d’images dans une zone de préparation en créant un fichier de définition de projet snowflake.yml et en exécutant la commande snow spcs image-repository deploy.

Vous trouverez ci-dessous un exemple de fichier de définition de projet snowflake.yml :

definition_version: 2
entities:
  my_image_repository:
    type: image-repository
    identifier: my_image_repository
Copy

La table suivante décrit les propriétés d’une définition de projet de pool de calcul.

Propriétés de définition du projet de référentiel d’images

Propriété

Définition

type

required, string

Doit être image-repository.

identifier

optional, string

Identificateur Snowflake de l’entité. La valeur peut avoir les formes suivantes :

  • Texte d’identificateur de chaîne

    identifier: my-image-repository
    
    Copy

    Les identificateurs entre guillemets et sans guillemets sont pris en charge. Pour utiliser des identificateurs entre guillemets, incluez les guillemets dans la valeur YAML (par exemple, "Mon référentiel d'images").

  • Objet

    identifier:
      name: my-image-repository
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    Note

    Une erreur se produit si vous spécifiez un schéma :codenowrap: `` ou une base de données :codenowrap:`` et que vous utilisez un nom entièrement qualifié dans la propriété name (tel que mydb.schema1.my-app).

Pour créer et déployer le référentiel d’images, procédez comme suit :

  1. Définissez votre répertoire actuel pour le répertoire contenant le fichier de définition du projet.

  2. Exécutez une commande snow spcs image-repository deploy similaire à la suivante :

    snow spcs image-repository deploy
    
    Copy
    +---------------------------------------------------------------------+
    | key    | value                                                      |
    |--------+------------------------------------------------------------|
    | status | Image Repository MY_IMAGE_REPOSITORY successfully created. |
    +---------------------------------------------------------------------+
    

Récupérez l’URL pour un référentiel d’images

La commande snow spcs image-repository url permet d’obtenir l’URL pour un référentiel d’images.

Pour obtenir l’URL, entrez une commande similaire à la suivante :

snow spcs image-repository url tutorial_repository
Copy
<orgname-acctname>.registry.snowflakecomputing.com/tutorial_db/data_schema/tutorial_repository

Afficher la liste des balises et des images dans un référentiel d’images

La commande snow spcs image-repository list-images vous permet d’obtenir les images et les balises d’un référentiel d’images.

Pour lister les images et les balises d’un référentiel, entrez une commande similaire à la suivante, qui répertorie les images d’un référentiel nommé images dans la base de données my_db :

snow spcs image-repository list-images images --database my_db
Copy
+----------------------------+---------------+---------+-------------------------------------------------+-----------------------------------------+
| created_on                 | image_name    | tags    | digest                                          | image_path                              |
|----------------------------+---------------+---------+-------------------------------------------------+-----------------------------------------|
| 2024-10-11 14:23:49-07:00  | echo_service  | latest  | sha256:a8a001fef406fdb3125ce8e8bf9970c35af7084  | my_db/test_schema/images/echo_service:  |
|                            |               |         | fc33b0886d7a8915d3082c781                       | latest                                  |
| 2024-10-14 22:21:14-07:00  | test_counter  | latest  | sha256:8cae96dac29a4a05f54bb5520003f964baf67fc  | my_db/test_schema/images/test_counter:  |
|                            |               |         | 38dcad3d2c85d6c5aa7381174                       | latest                                  |
+----------------------------+---------------+---------+-------------------------------------------------+-----------------------------------------+