Einrichten von Snowflake für Verwendung von Git¶
Wenn Sie Ihr Snowflake-Konto mit einem externen Git-Repository verbinden, erstellt Snowflake einen Klon für das Git-Repository, wobei die neueste Version aller Dateien im Repository kopiert wird (flacher Klon) und Metadaten über den Speicherort des externen Repositorys, Anmeldeinformationen (falls erforderlich) und Konfigurationsdetails darüber gespeichert werden, wie Snowflake mit der Git-Repository-API interagieren soll.
Abhängig von Ihren Anforderungen können Sie Snowflake durch die Konfiguration der Komponenten für die Authentifizierung, die Interaktion mit der Git-APIund die Kommunikation über eine private Verbindung zwischen Snowflake und Ihrem Anbieter von Clouddiensten so einrichten, dass ein externes Git-Repository zu einem integralen Bestandteil Ihres Workflows in Snowflake wird.
Auswählen eines Konfigurationsmodells¶
Je nach Ihren Netzwerk- und Workflow-Anforderungen können Sie Snowflake auf verschiedene Weise für den Zugriff auf ein externes Git-Repository konfigurieren. Im Folgenden finden Sie eine Auflistung von Beispiel-Anwendungsfällen und den zugehörigen Repository-Zugriffsstrategien.
Arbeiten Sie mit Dateien in einem Git-Repository über einen Workflow, der das Abrufen, Verschieben und Erstellen von Dateien umfasst.
Erwägen Sie die Verwendung von Snowflake Workspaces. Wenn Sie ein Repository unter github.com verwenden, besteht die Möglichkeit zur Authentifizierung mit OAuth.
Verweisen Sie auf Dateien in einem Git-Repository als Teil einer Datenpipeline oder eines ML-Projekts.
Wenn ein Skriptprozess auf das Repository zugreift, sollten Sie eine Authentifizierung mit einem Token in Betracht ziehen.
Klonen Sie zunächst ein öffentliches Repository (einschließlich Snowflake Labs), um Skripte oder Notizbuchdateien auszuführen.
Sie können Workspaces für
.sql
-Dateien, Snowflake-Notizbücher für.ipynb
-Dateien oder Snowflake Workspaces für.py
-Dateien verwenden.
Im Folgenden werden die Optionen für den Zugriff über ein öffentliches Netzwerk oder ein privates Netzwerk beschrieben:
Zugriff über ein öffentliches Netzwerk |
Zugriff über ein privates Netzwerk |
---|---|
Beim Zugriff über ein öffentliches Netzwerk können Sie sich bei Ihrem entfernten Git-Repository-Server über den gesamten IP-Bereich Ihrer Snowflake-Cloudanbieter-Bereitstellung authentifizieren (da Snowflake keinen statischen IP-Bereich bereitstellt).
|
Durch den Zugriff über ein privates Netzwerk wird verhindert, dass der Zugriff auf den Git-Server für den gesamten IP-Bereich Ihrer Snowflake-Cloudanbieter-Bereitstellung erlaubt wird. Sie können Snowflake so konfigurieren, dass eine ausgehende Konnektivität über eine ausgehende Private Link-Verbindung zwischen Snowflake und Ihrer Cloud-Infrastruktur hergestellt wird. Snowflake leitet den Git-Datenverkehr über diese Verbindung zum Git-Repository-Server.
|
Konfigurieren von Snowflake für den Zugriff über ein öffentliches Netzwerk¶
Sie können Snowflake so einrichten, dass der Zugriff auf Ihr Git-Repository über ein öffentliches Netzwerk erfolgt. Sie können Snowflake die Authentifizierung mit einer der folgenden Strategien überlassen:
-
Konfigurieren einer API-Integration mit Details zum Git-Repository-Server.
Authentifizierung mit einem Token, z. B. einem persönlichen Zugriffstoken.
Sie konfigurieren ein Geheimnis, das den Benutzernamen und das zu verwendende Token enthält, und dann eine API-Integration, die es Snowflake ermöglicht, das Geheimnis zur Authentifizierung einzusetzen.
Authentifizierung über einen OAuth-Ablauf.
Konfigurieren einer API-Integration für einen der folgenden Authentifizierungstypen: OAuth2, ein persönliches Zugriffstoken oder keine Authentifizierung.
Bemerkung
Die Verwendung von OAuth für die Arbeit mit einem Git-Repository wird nur von Workspaces aus unterstützt und nur, wenn das Repository unter github.com gehostet wird. Weitere Informationen dazu finden Sie unter Einen Git-Arbeitsbereich erstellen.
Konfiguration bei Verzicht auf Authentifizierung¶

Führen Sie die folgenden Schritte aus, um Snowflake für die Verwendung eines Git-Repositorys ohne Authentifizierung einzurichten:
Erstellen Sie eine API-Integration, die den Zugriff ohne Authentifizierung unterstützt, und geben Sie die folgenden Details an:
git_https_api
als Wert des Parameters API_PROVIDERHTTPS-Endpunkte, auf die Anforderungen als Werte des Parameters API_ALLOWED_PREFIXES beschränkt sein müssen
Weitere Informationen dazu finden Sie unter CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ENABLED = TRUE;
Erstellen Sie einen Git-Repository-Klon wie unter Erstellen eines Snowflake-Git-Repository-Klons beschrieben.
Konfiguration für die Authentifizierung mit einem Token¶

Damit sich Snowflake beim Git-Repository mit Benutzername und Token, wie etwa einem persönlichen Zugriffstoken (PAT), authentifiziert, gehen Sie wie folgt vor:
Stellen Sie Anmeldeinformationen in einem Geheimnis der Basisauthentifizierung bereit.
Um die Anmeldeinformationen bereitzustellen, die Snowflake für die Authentifizierung beim Repository verwendet, erstellen Sie ein Geheimnis, das Folgendes enthält:
Ein TYPE-Wert von
password
Ein Benutzername und ein Token, z. B. ein persönliches Zugriffstoken (PAT)
Wenn Ihr Git-Repository auf Bitbucket gehostet wird, geben Sie
x-token-auth
als Wert für den Benutzernamen an.Bemerkung
Informationen zum Erstellen eines persönlichen Zugriffstokens in GitHub finden Sie in der `-Dokumentation unter <https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens>Verwalten der persönlichen Zugangstokens `_GitHub.
Weitere Informationen zum SQL-Befehl zum Erstellen eines Geheimnisses finden Sie unter CREATE SECRET.
Der Code im folgenden Beispiel erstellt ein Geheimnis namens
my_git_secret
mit einem Benutzernamen und dem persönlichen Zugriffstoken des Benutzers, das als Anmeldeinformation verwendet wird:CREATE OR REPLACE SECRET my_git_secret TYPE = password USERNAME = 'gladyskravitz' PASSWORD = 'ghp_token';
Erstellen Sie eine API-Integration, die die Authentifizierung mit einem -Token unterstützt.
Um eine API-Integration für den Zugriff auf ein Git-Repository ohne Authentifizierung zu erstellen, geben Sie die folgenden Details an:
git_https_api
als Wert des Parameters API_PROVIDERHTTPS-Endpunkte, auf die Anforderungen als Werte des Parameters API_ALLOWED_PREFIXES beschränkt sein müssen
Weitere Informationen dazu finden Sie unter CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = (my_git_secret) ENABLED = TRUE;
Erstellen Sie einen Git-Repository-Klon wie unter Erstellen eines Snowflake-Git-Repository-Klons beschrieben.
Konfiguration für die Authentifizierung mit OAuth¶
Bemerkung
Die Verwendung von OAuth für die Arbeit mit einem Git-Repository wird nur von Workspaces aus unterstützt und nur, wenn das Repository unter github.com gehostet wird. Weitere Informationen dazu finden Sie unter Einen Git-Arbeitsbereich erstellen.

Gehen Sie wie folgt vor, um Snowflake so einzurichten, dass es sich beim externen Git-Repository über einen OAuth-Ablauf authentifiziert:
Erstellen Sie eine API-Integration, die die Authentifizierung über OAuth unterstützt.
Wenn Sie die Authentifizierung mit einem OAuth2-Ablauf angeben, erstellen Sie eine API-Integration, die Folgendes angibt:
git_https_api
als Wert des Parameters API_PROVIDERHTTPS-Endpunkte, auf die Anforderungen als Werte des Parameters API_ALLOWED_PREFIXES beschränkt sein müssen
Dies muss ein Präfix bei
https://github.com
sein. Die Authentifizierung mit OAuth wird nur für Repositorys unterstützt, die auf github.com gehostet werden.Eine API_USER_AUTHENTICATION mit dem Wert
(TYPE = SNOWFLAKE_GITHUB_APP)
Weitere Informationen dazu finden Sie unter CREATE API INTEGRATION.
Der Code im folgenden Beispiel erstellt eine API-Integration namens
my_git_api_integration
:CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com') API_USER_AUTHENTICATION = (TYPE = SNOWFLAKE_GITHUB_APP) ENABLED = TRUE;
Erstellen Sie einen Arbeitsbereich, der mit einem Git-Repository verbunden ist, wie unter Einen Git-Arbeitsbereich erstellen beschrieben.
Konfigurieren von Snowflake für den Zugriff über ein privates Netzwerk¶
Sie können Snowflake so konfigurieren, dass eine ausgehende Konnektivität über eine ausgehende Private Link-Verbindung zwischen Snowflake und Ihrer Cloud-Infrastruktur hergestellt wird. Snowflake leitet den Git-Datenverkehr über diese Verbindung zum Git-Repository-Server.
Mit einer Private Link-Verbindung vermeiden Sie den Zugriff auf den Git-Server für den gesamten IP-Bereich Ihrer Snowflake-Cloudanbieter-Bereitstellung. In diesem Abschnitt werden die Schritte in allgemeiner Form beschrieben.
Konfigurieren der Private Link-Verbindung.
Sie werden Konfigurationsänderungen sowohl auf Snowflake als auch auf Ihre Clouddienst-Infrastruktur anwenden. Unter diesem Thema werden die Schritte auf der Snowflake-Seite beschrieben. Details zu allen Schritten, einschließlich der Konfiguration Ihres Clouddienstanbieters, finden Sie im Knowledge Base-Artikel Konfigurieren der Git-Integration mit Snowflake über Private Link.
Konfigurieren Sie den Snowflake-Zugriff auf das externe Git-Repository.
Bemerkung
Snowflake unterstützt nur Verbindungen innerhalb der gleichen Cloud und Region. Wenn sich Ihre Snowflake-Bereitstellung zum Beispiel auf AWS befindet und Sie in der Region „us-west-2“ tätig sind, dann müssen sich Ihre anderen Komponenten ebenfalls in dieser Region befinden.
Konfigurieren der Private Link-Verbindung¶
Bevor Sie Snowflake für den Zugriff auf das externe Git-Repository konfigurieren können, müssen Sie eine private Verbindung zwischen Snowflake und Ihrem Clouddienstanbieter einrichten.
Um Konfigurationsänderungen auf Snowflake und auf Ihre Infrastruktur anzuwenden, gehen Sie wie folgt vor:
Erstellen Sie bei Ihrem Clouddienstanbieter einen Private Link-Service, um Anforderungen vom Snowflake-Service für private Endpunkte zu empfangen.
Weitere Informationen dazu finden Sie im Artikel Konfigurieren der Git-Integration mit Snowflake über Private Link in der Knowledge Base.
Stellen Sie in Snowflake einen privaten Endpunkt bereit, der Ihre Infrastruktur über eine private IP-Adresse erreicht.
Um den Endpunkt bereitzustellen, verwenden Sie die Funktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT mit den folgenden beiden Argumenten:
Die Private Link-Service-ID Ihres Cloudanbieters
Der Name der Domäne Ihres Git-Servers
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.vpce.us-west-2.vpce-svc-xxx', // VPC Endpoint Service Name 'git_address.com' // Git server domain );
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/9217bbdd-434e-4dbb-97c2-0825c627a277/resourceGroups/git-server_group/providers/Microsoft.Network/privateLinkServices/git-server-pl-service', // Private Service ID 'git_address.com' // Git server domain );
Akzeptieren Sie bei Ihrem Clouddienstanbieter die Einrichtung der privaten Snowflake-Endpunkte, um die Einrichtung der Private Link-Verbindung abzuschließen.
Um den Status der Bereitstellung zu prüfen, rufen Sie die Systemfunktion SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO auf.
Konfigurieren des Snowflake-Zugriffs auf das externe Git-Repository¶
Nachdem Sie eine private Verbindung zwischen Snowflake und Ihrem Clouddienstanbieter eingerichtet haben, können Sie den Snowflake-Zugriff auf das externe Git-Repository konfigurieren.
Erstellen Sie eine API-Integration, die die Authentifizierung mit einem Zertifikat unterstützt.
Da Snowflake Ihren Git-Server über das HTTPS-Protokoll erreicht, muss der Domänenname ein gültiges Zertifikat haben. Die von Ihnen verwendete Konfiguration unterscheidet sich je nachdem, ob Sie ein selbstsigniertes Zertifikat oder ein von einer Zertifizierungsstelle signiertes Zertifikat verwenden.
Verwenden eines selbstsignierten Zertifikats:
Stellen Sie Anmeldeinformationen in einem allgemeinen Zeichenfolgengeheimnis bereit.
Dies sollte ein öffentlicher Schlüssel einer selbstsignierten Domäne sein, über die eine HTTPS-Verbindung hergestellt wird. Um Snowflake die Anmeldeinformationen zur Verfügung zu stellen, die für die Authentifizierung beim Server verwendet werden sollen, erstellen Sie ein Geheimnis mit den folgenden Details:
Ein TYPE-Parameterwert von
GENERIC_STRING
Eine Zeichenfolge für das öffentliche Zertifikat als Wert des SECRET_STRING-Parameters
Geben Sie für den Wert des Parameters eine Geheimnis-Zeichenfolge an, z. B. eine öffentliche Zertifizierungsstelle.
CREATE OR REPLACE SECRET my_public_certificate TYPE = GENERIC_STRING SECRET_STRING = '-----BEGIN CERTIFICATE----- <certificate_body> -----END CERTIFICATE-----';
Erstellen Sie eine API-Integration zur Integration in die Git-API, und geben die folgenden Details an:
Ein API_PROVIDER-Parameter, der auf
git_https_api
gesetzt istEine API_ALLOWED_PREFIXES, die auf die Basis-URL eingestellt ist, unterhalb derer der Zugriff erlaubt ist
Ein USE_PRIVATELINK_ENDPOINT-Parameter, der auf
TRUE
gesetzt istEin TLS_TRUSTED_CERTIFICATES-Parameter, der auf den Namen des von Ihnen erstellten Geheimnisses mit dem Zertifikat gesetzt ist
Weitere Informationen dazu finden Sie unter CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = ALL USE_PRIVATELINK_ENDPOINT = TRUE TLS_TRUSTED_CERTIFICATES = (my_public_certificate) ENABLED = TRUE;
Verwenden eines von einer Zertifizierungsstelle signierten Zertifikats:
Erstellen Sie eine API-Integration zur Integration in die Git-API, und geben die folgenden Details an:
Ein API_PROVIDER-Parameter, der auf
git_https_api
gesetzt istEine API_ALLOWED_PREFIXES, die auf die Basis-URL eingestellt ist, unterhalb derer der Zugriff erlaubt ist
Ein USE_PRIVATELINK_ENDPOINT-Parameter, der auf
TRUE
gesetzt istEin TLS_TRUSTED_CERTIFICATES-Parameter, der auf den Namen des von Ihnen erstellten Geheimnisses mit dem Zertifikat gesetzt ist
Weitere Informationen dazu finden Sie unter CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = ALL USE_PRIVATELINK_ENDPOINT = TRUE ENABLED = TRUE;
Stellen Sie Anmeldeinformationen in einem Geheimnis der Basisauthentifizierung bereit.
Nachdem Sie erfolgreich eine Verbindung zum Git-Server über einen privaten Link hergestellt haben, müssen Sie sich weiterhin beim Repository authentifizieren, indem Sie ein weiteres Geheimnis erstellen, das Anmeldeinformationen für das Repository bereitstellt.
Um die Anmeldeinformationen bereitzustellen, die Snowflake für die Authentifizierung beim Repository verwendet, erstellen Sie ein Geheimnis, das Folgendes enthält:
Ein TYPE-Wert von
password
Ein Benutzername und ein Token, z. B. ein persönliches Zugriffstoken (PAT)
Bemerkung
Informationen zum Erstellen eines persönlichen Zugriffstokens in GitHub finden Sie in der `-Dokumentation unter <https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens>Verwalten der persönlichen Zugangstokens `_GitHub.
Weitere Informationen zum SQL-Befehl zum Erstellen eines Geheimnisses finden Sie unter CREATE SECRET.
Erstellen Sie einen Git-Repository-Klon wie unter Erstellen eines Snowflake-Git-Repository-Klons beschrieben.
Erstellen eines Snowflake-Git-Repository-Klons¶
Um Snowflake für die Arbeit mit einem externen Git-Repository einzurichten, erstellen Sie in Snowflake einen Git-Repository-Klon, der die aus dem externen Repository abgerufenen Dateien enthält.
Bemerkung
Bevor Sie mit den Schritten in diesem Abschnitt beginnen, sollten Sie zuerst Komponenten konfigurieren, die Sie möglicherweise benötigen, einschließlich eines Geheimnisses (wenn das externe Repository eine Authentifizierung erfordert), einer API-Integration und einer Private Link-Verbindung zwischen Snowflake und Ihrem Clouddienstanbieter.
Bemerkung
Weitere Informationen zum Erstellen eines Git-Arbeitsbereichs in Snowsight finden Sie unter Einen Git-Arbeitsbereich erstellen.
Ein Git-Repository-Klon in Snowflake gibt die folgenden Details an:
Ursprung des externen Repositorys
In Git ist
origin
die URL des externen Repositorys. Verwenden Sie diese URL, wenn Sie Snowflake für die Verwendung eines Git-Repositorys einrichten. Die URL muss HTTPS verwenden. Sie können die ursprüngliche URL auf folgende Weisen abrufen:In der GitHub-Benutzeroberfläche können Sie die ursprüngliche URL von der Startseite des Repositorys abrufen. Klicken Sie auf die Schaltfläche Code, und kopieren Sie dann die HTTPS-URL aus dem Feld, das unter der Schaltfläche angezeigt wird.
Über die Befehlszeile: Verwenden Sie von Ihrem lokalen Repository aus den Befehl
git config
, wie im folgenden Beispiel gezeigt:$ git config --get remote.origin.url
Der Befehl erzeugt eine Ausgabe wie die folgende:
https://github.com/my-account/snowflake-extensions.git
Referenzinformationen zu
git config
finden Sie in der Git-Dokumentation.
Anmeldeinformationen, falls erforderlich, die Snowflake bei der Authentifizierung am Repository verwenden soll
Geben Sie für den Parameter GIT_CREDENTIALS ein von Ihnen erstelltes Snowflake-Geheimnis an.
Eine API-Integration, die Details zur Interaktion von Snowflake mit der Repository-API angibt
Sie können einen Git-Repository-Klon erstellen, indem Sie entweder Snowsight oder SQL verwenden.
Bemerkung
Bevor Sie einen Git-Repository-Klon erstellen, müssen Sie ein Geheimnis (wenn das externe Repository eine Authentifizierung erfordert) und eine API-Integration erstellen.
Der Code im folgenden Beispiel erstellt einen Git-Repository-Klon namens snowflake_extensions
. Der Klon gibt die my_git_api_integration
API-Integration und das my_git_secret
-Geheimnis mit den Anmeldeinformationen für die Authentifizierung an.
USE ROLE ACCOUNTADMIN;
GRANT CREATE GIT REPOSITORY ON SCHEMA myco_db.integrations TO ROLE myco_git_admin;
USE ROLE myco_git_admin;
CREATE OR REPLACE GIT REPOSITORY snowflake_extensions
API_INTEGRATION = my_git_api_integration
GIT_CREDENTIALS = my_git_secret
ORIGIN = 'https://github.com/my-account/snowflake-extensions.git';
Bemerkung
Weitere Informationen zum Erstellen eines Git-Arbeitsbereichs in Snowsight finden Sie unter Einen Git-Arbeitsbereich erstellen.
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Data » Databases aus.
Wählen Sie im Objekt-Explorer die Datenbank und das Schema aus, die den Git-Repository-Klon enthalten sollen, den Sie erstellen.
Wählen Sie Create » Git Repository aus.
Geben Sie im Dialog Create Git Repository unter Repository Name einen Namen ein, der diesen Repository-Klon im Schema eindeutig identifiziert.
Richtlinien zur Namensgebung finden Sie unter Anforderungen an Bezeichner.
Origin: Geben Sie die ursprüngliche URL des externen Repositorys ein.
Wählen Sie aus dem Dropdown-Menü API Integration die API-Integration aus, auf die Sie beim Erstellen des Git-Repository-Klons verweisen möchten.
Wenn Sie keine API-Integration verwenden können, wählen Sie Create new API integration in Worksheets aus, um mit SQL eine zu erstellen. Weitere Informationen dazu finden Sie unter CREATE API INTEGRATION.
Optional: Geben Sie unter Comment einen Text ein, der diese Integration für andere beschreibt.
Optional: Wenn das externe Repository Authentifizierung erfordert, schalten Sie den Authentication-Schalter auf _on_.
Wenn Sie den Umschalter aktiviert haben, wählen Sie im Menü Secret das Geheimnis aus, das von der Git-Integration referenziert werden soll, um sich beim externen Repository zu authentifizieren.
Wenn Sie kein Geheimnis verwenden können, wählen Sie Create new secret in Worksheets aus, um eines mit SQL zu erstellen. Weitere Informationen dazu finden Sie unter CREATE SECRET.
Wählen Sie Create aus.
Wenn Sie die Integration erfolgreich erstellt haben, erscheint der Git-Repository-Klon unterhalb des Schemas in einem Verzeichnis Git Repositories. Sie werden auch eine Seite sehen, die die Verzeichnisse, Zweige und Tags des Repositorys auflistet.