Snowpark Container Services: Verwenden von Image-Registry und Image-Repository

Snowpark Container Services bietet einen OCIv2-kompatiblen Image-Registry-Dienst und ein Speichereinheiten-Repository zum Speichern von Images.

Image-Registry

Der Image-Registry-Dienst dient der OCIv2-API zur Speicherung von OCI-konformen Containerimages.

Hostname der Image-Registry

Jede Image-Registry in einem Snowflake-Konto hat einen eindeutigen Hostnamen, der es OCI-Clients (wie der Docker-CLI) ermöglicht, mit REST-API-Aufrufen auf eine Image-Registry zuzugreifen. Die allgemeine Syntax für einen Image-Registry-Hostnamen ist:

<orgname>-<acctname>.registry.snowflakecomputing.com

Im Hostnamen:

  • <orgname>-<acctname> identifiziert ein Snowflake-Konto.

  • registry ermöglicht Snowflake, Registry-Kunden Hostnamen für jedes Konto bereitzustellen.

    Der Hostname wird immer in Kleinbuchstaben geschrieben.

Bemerkung

Ein Snowflake-Kontoname (<Kontoname>) kann einen Unterstrich enthalten (z. B. my_account), aber Unterstriche sind in einer URL nicht gültig. Wenn Sie einen Registry-Hostnamen verwenden, müssen Sie daher einen Unterstrich durch einen Bindestrich ersetzen. Ändern Sie zum Beispiel my_account in my-account.

Sie können die Informationen zu Ihrem Organisationsnamen und Kontonamen für die Hostnamen des Image-Repository auf eine der folgenden Arten finden:

Authentifizierung des Image-Registry

Um auf ein Image-Repository in Ihrem Snowflake Konto zuzugreifen, müssen sich Benutzer mit ihren Snowflake Anmeldeinformationen bei der Bildregistrierung authentifizieren. Darüber hinaus sind entsprechende -Berechtigungen für den Zugriff auf Repositories innerhalb der Registry erforderlich. Um diese Berechtigungen zu erhalten, muss ein Benutzer über eine Rolle verfügen, die Zugriffsrechte auf das Repository gewährt.

Sie haben die folgenden Optionen, um Ihren Client mit einer Image-Registry in Ihrem Konto zu authentifizieren:

  • Verwenden Sie vom Client bereitgestellte Befehle: Tools wie Docker bieten Befehle zur Authentifizierung bei einer Registry mit einem Benutzernamen und Kennwort. In Instanz 1 (siehe Tutorial 1: Erstellen und Hochladen des Images) verwenden Sie zum Beispiel den Befehl docker login, um Docker bei einer Registry zu authentifizieren. Diese Methode ist nur verfügbar, wenn Ihr Kontoadministrator dem Benutzer die Authentifizierung über Benutzername/Kennwort erlaubt.

  • Verwenden von Snowflake CLI: Die Snowflake-CLI unterstützt alle Formen der Snowflake-Authentifizierung.

    • Für den Docker-Client verwenden Sie den Befehl snow spcs image-registry login, um Docker mit einer Registry zu authentifizieren.

    • Für jeden Client (einschließlich Docker) bietet Snowflake-CLI auch die Möglichkeit, zunächst ein Authentifizierungs-Token zu generieren und es zur Authentifizierung des Clients zu verwenden. Weitere Informationen dazu finden Sie unter snow spcs image-registry token.

Image-Repository

Eine Registry ist ein Dienst, der die OCIv2-API bedient, und ein Repository ist eine Speichereinheit, die Sie innerhalb des Dienstes erstellen.

Ein Repository ist ein benannter Speicherort in Ihrem Konto, an dem Sie Bilder speichern. Dies ist vergleichbar mit der Beziehung zwischen einem DBMS und einer Tabelle innerhalb des DBMS. Das heißt, ein DBMS ist gleichbedeutend mit einer Registry, und eine Tabelle ist gleichbedeutend mit einem Repository.

Sie können ein oder mehrere Repositorys in Ihrem Snowflake-Konto erstellen. So können DEV-, TEST- und PROD-Repositorys beispielsweise Images während Entwicklung, Test und Produktion speichern. Sie können auch Repositorys mit unterschiedlichen Berechtigungen erstellen, z. B. können einige Repositorys für bestimmte Rollen schreibgeschützt sein.

Zugriffssteuerung auf Repository-Ebene wird unterstützt, allerdings nicht auf der Ebene einzelner Images.

Für das Hochladen von Images in ein Image-Repository bietet der Registry-Dienst verschiedene Authentifizierungsoptionen und Single Sign-On (SSO).

Achtung

Tri-Secret Secure und Periodische Wiederverschlüsselung werden für Image-Repositorys von Snowpark Container Services nicht unterstützt. Das bedeutet, dass bei Konten, bei denen Tri-Secret Secure oder die periodische Wiederverschlüsselung aktiviert ist, zwar alle anderen Snowflake-Daten weiterhin mit zusätzlicher Sicherheit ausgestattet sind, die in den Image-Repositorys von Snowpark Container Services gespeicherten Images jedoch nicht.

Wenn Sie ein Image-Repository in einem Konto mit Tri-Secret Secure oder periodischer Wiederverschlüsselung erstellen möchten, müssen Sie daher zunächst bestätigen, dass Sie verstehen und damit einverstanden sind, dass Ihnen die Vorteile dieser zusätzlichen Sicherheit für Ihre Image-Repositorys nicht zur Verfügung stehen. Zur Bestätigung der Vereinbarung muss ein Kontoadministrator (Benutzer mit der Rolle ACCOUNTADMIN) den Parameter ENABLE_TRI_SECRET_AND_REKEY_OPT_OUT_FOR_IMAGE_REPOSITORY auf Kontoebene auf TRUE setzen.

Image-Repository-URL

Im Folgenden finden Sie eine allgemeine Syntax für eine Snowflake-Repository-URL:

<registry-hostname>/<db_name>/<schema_name>/<repository_name>

Beispiel:

myorg-myacct.registry.snowflake.com/my_db/my_schema/my_repository

Um die Repository-URL in Ihrem Konto zu suchen, verwenden Sie den Befehl SHOW IMAGE REPOSITORIES SQL.

Bemerkung

  • Die Snowflake-URL kodiert das $-Zeichen, das das einzige Nicht-URL-Zeichen ist, das Snowflake in Bezeichnern unterstützt (siehe Anforderungen an Bezeichner). Namen in doppelten Anführungszeichen, die Sonderzeichen enthalten, werden nicht unterstützt.

  • Wenn Sie eine Repository-URL manuell erstellen, ersetzen Sie die Unterstriche in einem Kontonamen (my_acct) durch Bindestriche (my-acct).

Repository-Operationen

Zum Erstellen und Verwalten von Repositorys unterstützt Snowflake die folgenden Repository-Operationen:

  • CREATE IMAGE REPOSITORY

  • DROP IMAGE REPOSITORY

  • SHOW IMAGE REPOSITORIES

Um Images aufzulisten, die in einem Snowflake-Image-Repository gespeichert sind, verwenden Sie den folgenden Befehl:

Ein Beispiel für das Erstellen eines Repositorys und das Hochladen eines Images finden Sie unter Grundlegende Tutorial-Einrichtung.

Berechtigungen für Repositorys

Wenn Sie ein Repository verwenden, gilt das folgende Berechtigungsmodell:

  • Um ein Repository in einem Schema zu erstellen, müssen Sie über die Berechtigung CREATE IMAGE REPOSITORY für das Schema verfügen.

  • Für die Repository-Verwaltung werden die folgenden Berechtigungen unterstützt:

    Berechtigung

    Verwendung

    READ

    Ermöglicht das Auflisten und Herunterladen von Images aus einem Repository.

    WRITE

    Ermöglicht das Auflisten und Herunterladen von Images aus einem Repository. Sie können auch Images in das Repository verschieben.

    OWNERSHIP

    Ermöglicht das Auflisten und Herunterladen von Images aus einem Repository. Sie können auch Images in das Repository verschieben.

    SERVICE READ

    Ermöglicht einem Containerdienst die Auflistung und den Download von Images aus einem Repository. Dies wird für den Schritt der Image-Erstellung des Modells benötigt, das dient.

    SERVICE WRITE

    Ermöglicht es einem Containerdienst, Images in das Repository zu verschieben. Dies wird für den Schritt der Image-Erstellung des Modells benötigt, das dient.

Richtlinien und Einschränkungen

  • Das Löschen von Images aus einem Repository wird derzeit nicht unterstützt. Sie können ein Repository löschen, aber dabei werden alle Images entfernt.