Verwenden von Image-Registrys und Image-Repositorys

Snowpark Container Services bietet einen OCIv2-kompatiblen Image-Registry-Dienst und ein Speichereinheitenaufruf-Repository zum Speichern von Images. Sie können die folgenden Snowflake CLI-Befehle verwenden, um Snowpark Container Services-Image-Registrys und -Repositorys zu verwalten:

Weitere Informationen zu Snowpark Container Services-Image-Repositorys und -Registrys finden Sie unter Snowpark Container Services: Verwenden von Image-Registry und Image-Repository.

Image-Registrys verwalten

Mit Snowflake CLI können Sie die folgenden Aufgaben mit Snowpark Container Services-Image-Repositorys ausführen:

Für gängige Operationen, wie z. B. Auflisten oder Löschen, verwendet Snowflake CLI die Befehle snow object wie unter Verwalten von Snowflake-Objekten beschrieben.

Umgebungstoken für Registry-Authentifizierung abrufen

Mit dem Befehl snow spcs image-registry token können Sie das mit der angegebenen Verbindung verbundene Token zurückgeben, das Sie zur Registry-Authentifizierung verwenden können.

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

Mit diesem Token können Sie sich dann bei einem Docker-Container anmelden, indem Sie es per Piping an den Befehl docker login weiterleiten, ähnlich wie im Folgenden:

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

Bei Image-Image-Registry anmelden

Mit snow spcs image-registry login können Sie sich mit den für Ihre Verbindung angegebenen Anmeldeinformationen bei einem Image-Repository anmelden. Um sich anmelden zu können, müssen Sie die folgenden Voraussetzungen erfüllen:

  • Docker Desktop muss installiert sein, da der Befehl Docker verwendet, um sich bei Snowflake anzumelden.

  • Die aktuelle Rolle muss über READ-Berechtigungen für das Image-Repository in dem Konto verfügen, um die Registry-URL zu erhalten.

Um sich mit Ihren Konto-Anmeldeinformationen bei einer Image-Registry anzumelden, gehen Sie wie folgt vor:

snow spcs image-registry login
Copy
Login Succeeded

URL für eine Image-Registry abrufen

Der Befehl snow spcs image-registry url gibt eine URL für ein Image-Repository zurück. Die aktuelle Rolle muss über READ-Berechtigungen für das Image-Repository in dem Konto verfügen, um die Registry-URL zu erhalten.

Um die URL für ein Repository zu erhalten, gehen Sie wie folgt vor:

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

Image-Repositorys verwalten

Mit Snowflake CLI können Sie die folgenden Aufgaben mit Snowpark Container Services-Image-Repositorys ausführen:

Für gängige Operationen, wie z. B. Auflisten oder Löschen, verwendet Snowflake CLI die Befehle snow object wie unter Verwalten von Snowflake-Objekten beschrieben.

Image-Repository erstellen

Der Befehl snow spcs image-repository create erstellt ein neues Image-Repository im aktuellen Schema.

Um ein Image-Repository zu erstellen, geben Sie einen Befehl ähnlich dem folgenden ein:

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

Erstellen und Bereitstellen eines Image-Repositorys aus einer Projektdefinition

Sie können ein Image-Repository in einem Stagingbereich bereitstellen, indem Sie eine Projektdefinitionsdatei snowflake.yml erstellen und den Befehl snow spcs image-repository deploy ausführen.

Im Folgenden wird eine Beispiel für eine snowflake.yml-Projektdefinitionsdatei gezeigt:

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

Die folgende Tabelle beschreibt die Eigenschaften einer Computepool-Projektdefinition.

Eigenschaften der Image-Repository-Projektdefinition

Eigenschaft

Definition

type

erforderlich, string

Muss image-repository sein.

Bezeichner

optional, string

Snowflake-Bezeichner für die Entität. Der Wert kann die folgenden Formen annehmen:

  • Zeichenfolge Bezeichnertext

    identifier: my-image-repository
    
    Copy

    Es werden sowohl Bezeichner ohne Anführungszeichen als auch Bezeichner mit Anführungszeichen unterstützt. Um Bezeichner in Anführungszeichen zu verwenden, fügen Sie die umgebenden Anführungszeichen in den YAML-Wert ein (zum Beispiel: "My Image Repository").

  • Objekt

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

    Bemerkung

    Ein Fehler tritt auf, wenn Sie ein schema oder eine database angeben und einen vollqualifizierten Namen in der name-Eigenschaft verwenden (z. B. mydb.schema1.my-app).

Um das Image-Repository zu erstellen und bereitzustellen, gehen Sie wie folgt vor:

  1. Ändern Sie Ihr aktuelles Verzeichnis in das Verzeichnis, das die Projektdefinitionsdatei enthält.

  2. Führen Sie einen snow spcs image-repository deploy-Befehl ähnlich dem folgenden aus:

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

URL für ein Image-Repository abrufen

Der Befehl snow spcs image-repository url ruft die URL für ein Image-Repository ab.

Um die URL abzurufen, geben Sie einen Befehl ähnlich dem folgenden ein:

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

Tags und Images in einem Image-Repository auflisten

Mit dem snow spcs image-repository list-images-Befehl können Sie die Bilder und Tags eines Image-Repositorys abrufen.

Um die Bilder und Tags in einem Repository aufzulisten, geben Sie einen Befehl ähnlich dem folgenden ein, der die Bilder in einem Repository namens images in der my_db-Datenbank auflistet:

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                                  |
+----------------------------+---------------+---------+-------------------------------------------------+-----------------------------------------+