Einrichten von Snowflake für Verwendung von Git¶
Wenn Sie ein externes Git-Repository integrieren und das Repository klonen, erstellt Snowflake einen Git-Repository-Klon, der den Speicherort des externen Repositorys, die Anmeldeinformationen (falls erforderlich) und Details zur Interaktion von Snowflake mit dem Git-Repository-API angibt.
Um ein externes Git-Repository mit Snowflake zu verwenden, gehen Sie folgendermaßen vor:
Erstellen eines Geheimnisses bei Bedarf, um die Anmeldeinformationen für die Authentifizierung mit dem externen Repository zu speichern.
Erstellen einer API-Integration, um Details zur Interaktion von Snowflake mit dem Git-Repository-API festzulegen.
Erstellen einesn Git-Repository-Klos, mit dem Sie Dateien aus dem externen Repository synchronisieren können.
Geheimnis mit Anmeldeinformationen für Authentifizierung erstellen¶
Wenn Ihr externes Git-Repository eine Authentifizierung erfordert, müssen Sie unter ein Geheimnis erstellen, das Anmeldeinformationen enthält, die Snowflake zur Authentifizierung beim externen Repository verwenden kann.
Sie werden das Geheimnis in mehreren Fällen verwenden. Beim Erstellen einer API-Integration, die die Interaktion von Snowflake mit der Git-Repository-API spezifiziert, muss dieses Geheimnis als Wert des Parameters ALLOWED_AUTHENTICATION_SECRETS angegeben werden. Zudem muss beim Einrichten von Snowflake für die Git-Verwendung das Geheimnis angegeben werden.
Um ein Geheimnis zu erstellen, müssen Sie eine Rolle verwenden, der folgende Berechtigungen erteilt wurden:
CREATE SECRET für das Schema, in dem das Geheimnis gespeichert werden soll.
Weitere Informationen dazu finden Sie unter Anforderungen an die CREATE SECRET-Zugriffssteuerung.
USAGE für Datenbank und Schema, die die Integration enthalten werden.
Verwenden Sie am besten ein persönliches Zugriffstoken für den PASSWORD-Wert des Geheimnisses. Informationen zum Erstellen eines persönlichen Zugriffstokens in GitHub finden Sie in der GitHub-Dokumentation unter Verwalten der persönlichen Zugangstokens.
- SQL:
Sie können den Befehl CREATE SECRET verwenden, um ein Geheimnis zu erstellen, das die Zugangsdaten für das Git-Repository enthält.
Der Code im folgenden Beispiel erstellt ein Geheimnis namens
myco_git_secret
mit einem Benutzernamen und dem persönlichen Zugriffstoken des Benutzers, das als Anmeldeinformation verwendet wird:USE ROLE ACCOUNTADMIN; CREATE ROLE myco_secrets_admin; GRANT CREATE SECRET ON SCHEMA myco_db.integrations TO ROLE myco_secrets_admin; USE ROLE myco_db_owner; GRANT USAGE ON DATABASE myco_db TO ROLE myco_secrets_admin; GRANT USAGE ON SCHEMA myco_db.integrations TO ROLE myco_secrets_admin; USE ROLE myco_secrets_admin; USE DATABASE myco_db; USE SCHEMA myco_db.integrations; CREATE OR REPLACE SECRET myco_git_secret TYPE = password USERNAME = 'gladyskravitz' PASSWORD = 'ghp_token';
API-Integration für Interaktion mit der Repository-API erstellen¶
Um festzulegen, wie Snowflake mit der Git-Repository-API interagieren soll, müssen Sie eine API-Integration erstellen.
Beim Einrichten eines Snowflake-Kontos zur Git-Verwendung wird die zu verwendende API-Integration angegeben.
Um eine API-Integration zu erstellen, müssen Sie eine Rolle verwenden, der folgende Berechtigungen erteilt wurden:
CREATE INTEGRATION für das Konto
Weitere Informationen dazu finden Sie unter Anforderungen an die CREATE API INTEGRATION-Zugriffssteuerung.
USAGE für Datenbank und Schema, die das Geheimnis enthalten
USAGE für das Geheimnis, dass die Integration referenziert
Wenn Sie eine API-Integration für eine Git-Repository-API erstellen, müssen Sie Folgendes tun:
Geben Sie
git_https_api
als Wert für den Parameter API_PROVIDER an.Geben Sie, falls eine Authentifizierung erforderlich ist, ein Geheimnis an, das die Anmeldeinformationen für das externe Repository als Wert des Parameters ALLOWED_AUTHENTICATION_SECRETS enthält. Sie können einen der folgenden Werte angeben:
Ein oder mehrere Snowflake-Geheimnisse (in einer kommagetrennten Liste), die Snowflake bei der Authentifizierung mit dem Repository verwenden kann.
all
(Groß- und Kleinschreibung wird nicht berücksichtigt), um anzugeben, dass jedes beliebige Geheimnis verwendet werden kann.none
(Groß- und Kleinschreibung wird nicht berücksichtigt), um anzugeben, dass keine Geheimnisse verwendet werden können.
- SQL:
Sie können den Befehl CREATE API INTEGRATION verwenden, um eine API-Integration zu erstellen, die Details für die Interaktion von Snowflake mit dem Git-Repository-API festlegt.
Der Code im folgenden Beispiel erstellt eine API-Integration namens
git_api_integration
:USE ROLE ACCOUNTADMIN; CREATE ROLE myco_git_admin; GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE myco_git_admin; USE ROLE myco_db_owner; GRANT USAGE ON DATABASE myco_db TO ROLE myco_git_admin; GRANT USAGE ON SCHEMA myco_db.integrations TO ROLE myco_git_admin; USE ROLE myco_secrets_admin; GRANT USAGE ON SECRET myco_git_secret TO ROLE myco_git_admin; USE ROLE myco_git_admin; USE DATABASE myco_db; USE SCHEMA myco_db.integrations; CREATE OR REPLACE API INTEGRATION git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = (myco_git_secret) ENABLED = TRUE;
Erstellen Sie einen Snowflake Git-Repository-Klon aus dem externen Repository¶
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 die in diesem Abschnitt beschriebenen Schritte ausführen, sollten Sie ggf. zuerst ein Geheimnis (wenn das externe Repository eine Authentifizierung erfordert) sowie eine API-Integration erstellen. Möglicherweise benötigen Sie beides.
Der Git-Repository-Klon gibt Folgendes an:
Ursprung des externen Repositorys
In Git ist
origin
die Kurzform für die URL des externen Repositorys. Verwenden Sie diese URL, wenn Sie Snowflake für die Verwendung eines externen Git-Repositorys einrichten. Die URL muss HTTPS verwenden. Sie können die ursprüngliche URL auf folgende Weise abrufen:Über die GitHub-Benutzeroberfläche: Um die ursprüngliche URL der Startseite des Repositorys zu erhalten, wählen Sie die Schaltfläche Code aus, 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 mit dem Repository verwenden soll
Eine API-Integration, die Details zur Interaktion von Snowflake mit der Repository-API angibt
Um einen Git-Repository-Klon in Snowflake zu erstellen, müssen Sie eine Rolle verwenden, die über die folgenden Berechtigungen verfügt:
CREATE GIT REPOSITORY für das Schema, das den Git-Repository-Klon enthält
Weitere Informationen dazu finden Sie unter Anforderungen an die CREATE GIT REPOSITORY-Zugriffssteuerung.
USAGE für das Geheimnis, das die Anmeldeinformationen für die Authentifizierung mit Git enthält
USAGE für die API-Integration, auf die der Git-Repository-Klon verweist
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 git_api_integration
API-Integration und das myco_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 = git_api_integration
GIT_CREDENTIALS = myco_git_secret
ORIGIN = 'https://github.com/my-account/snowflake-extensions.git';
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 API-Integration für Interaktion mit der Repository-API erstellen und 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 Geheimnis mit Anmeldeinformationen für Authentifizierung erstellen und 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.