Configuration de Snowflake pour utiliser Git¶
Lorsque vous intégrez un référentiel Git et que vous clonez le référentiel, Snowflake crée une zone de préparation du référentiel Git qui spécifie l’emplacement du référentiel, les identifiants de connexion (si nécessaire) et des détails sur la façon dont Snowflake doit interagir avec l’API du référentiel Git.
Pour utiliser un référentiel Git avec Snowflake, suivez les étapes suivantes :
Créez un secret, si nécessaire, pour contenir les identifiants de connexion avec le référentiel.
Créez une intégration d’API pour spécifier les détails de l’interaction de Snowflake avec l’API du référentiel Git.
Créez une zone de préparation du référentiel Git Snowflake vers laquelle vous pouvez synchroniser les fichiers du référentiel.
Créer un secret avec des identifiants de connexion pour l’authentification¶
Si votre référentiel Git nécessite une authentification, vous devrez créer un secret qui contient les identifiants de connexion que Snowflake peut utiliser pour s’authentifier auprès du référentiel.
Vous utiliserez le secret de multiples façons. Une personne créant une intégration d’API qui spécifie l’interaction de Snowflake avec l’API du référentiel Git doit spécifier ce secret comme valeur du paramètre ALLOWED_AUTHENTICATION_SECRETS. De plus, une personne qui configure Snowflake pour utiliser Git précise le secret.
Pour créer un secret, vous devez utiliser un rôle qui vous a été attribué avec les privilèges suivants :
CREATE SECRET sur le schéma où vous stockerez le secret
Pour plus d’informations, voir les exigences de contrôle d’accès CREATE SECRET.
USAGE sur la base de données et le schéma qui contiendront l’intégration
Une bonne pratique consiste à utiliser un jeton d’accès personnel pour la valeur PASSWORD du secret. Pour plus d’informations sur la création d’un jeton d’accès personnel dans GitHub, voir Gestion de vos jetons d’accès personnels dans la documentation GitHub.
- SQL:
Vous pouvez utiliser la commande CREATE SECRET pour créer un secret contenant les identifiants de connexion du référentiel Git.
Le code de l’exemple suivant crée un secret appelé
myco_git_secret
avec un nom d’utilisateur et le jeton d’accès personnel de l’utilisateur à utiliser comme identifiants de connexion :USE ROLE securityadmin; 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';
Créer une API d’intégration pour interagir avec l’API du référentiel¶
Pour spécifier les détails de l’interaction de Snowflake avec l’API du référentiel Git, vous devez créer une intégration d’API.
Une personne qui crée un compte Snowflake pour utiliser Git spécifiera l’intégration d’API à utiliser.
Pour créer une intégration d’API, vous devez utiliser un rôle qui a les privilèges suivants :
CREATE INTEGRATION sur le compte
Pour plus d’informations, voir les exigences de contrôle d’accès CREATE API INTEGRATION.
USAGE sur la base de données et le schéma qui contiennent le secret
USAGE sur le secret auquel l’intégration fait référence
Lorsque vous créez une intégration d’API pour une API de référentiel Git, vous devez :
Indiquer
git_https_api
comme valeur du paramètre API_PROVIDER.Spécifier, si l’authentification est requise, un secret qui contient les identifiants de connexion du référentiel en tant que valeur du paramètre ALLOWED_AUTHENTICATION_SECRETS. Vous pouvez spécifier l’une des valeurs suivantes :
Un ou plusieurs secrets Snowflake (dans une liste séparée par des virgules) que Snowflake peut utiliser lors de l’authentification avec le référentiel
La chaîne
'all'
(insensible à la casse) pour spécifier que n’importe quel secret peut être utiliséLa chaîne
'none'
(insensible à la casse) pour spécifier qu’aucun secret ne peut être utilisé
- SQL:
Vous pouvez utiliser la commande CREATE API INTEGRATION pour créer une intégration d’API qui spécifie les détails de l’interaction de Snowflake avec l’API du référentiel Git.
Le code de l’exemple suivant crée une intégration d’API appelée
git_api_integration
:USE ROLE securityadmin; 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;
Créer une zone de préparation du référentiel Git et cloner le référentiel¶
Pour configurer Snowflake afin de fonctionner avec un référentiel Git, créez une zone de préparation du référentiel Git qui contiendra les fichiers extraits du référentiel.
Note
Avant de commencer les étapes de cette section, pensez d’abord à créer un secret (si le référentiel distant nécessite une authentification) et une intégration d’API. Vous pourriez avoir besoin des deux.
La zone de préparation du référentiel Git spécifie les éléments suivants :
L’origine du référentiel
Dans Git,
origin
est l’abréviation de l’URL du référentiel distant. Utilisez cette URL lorsque vous configurez Snowflake pour utiliser un référentiel Git. L’URL doit utiliser HTTPS. Vous pouvez récupérer l’URL d’origine de la manière suivante :Dans l’interface utilisateur GitHub, pour obtenir l’URL d’origine à partir de la page d’accueil du référentiel, sélectionnez le bouton Code, puis copiez l’URL HTTPS dans la zone affichée sous le bouton.
À partir de la ligne de commande, utilisez la commande
git config
dans votre référentiel local, comme dans l’exemple suivant :$ git config --get remote.origin.url https://github.com/my-account/snowflake-extensions.git
Pour obtenir des informations de référence sur
git config
, consultez la documentation git.
Les identifiants de connexion, si nécessaire, que Snowflake doit utiliser lors de l’authentification avec le référentiel
Une intégration d’API spécifiant les détails de l’interaction de Snowflake avec l’API du référentiel
Pour créer une zone de préparation d’un référentiel Git, vous devez utiliser un rôle auquel ont été accordés les privilèges suivants :
CREATE GIT REPOSITORY sur le schéma contenant le référentiel
Pour plus d’informations, voir les exigences de contrôle d’accès CREATE GIT REPOSITORY.
USAGE sur le secret qui contient les identifiants de connexion pour s’authentifier avec Git
USAGE sur l’intégration d’API à laquelle la zone de préparation du référentiel Git fait référence
Vous pouvez créer une zone de préparation de référentiel Git en utilisant Snowsight ou SQL.
Vous pouvez utiliser la commande CREATE GIT REPOSITORY pour créer une zone de préparation du référentiel Git.
Note
Avant de créer un référentiel local, vous devrez créer un secret (si le référentiel distant nécessite une authentification) et une intégration d’API.
Le code de l’exemple suivant crée une zone de préparation du référentiel Git appelée snowflake_extensions
. La zone de préparation spécifie l’intégration d’API git_api_integration
et le secret myco_git_secret
avec les identifiants de connexion pour l’authentification.
USE ROLE securityadmin;
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';
Vous pouvez utiliser Snowsight pour intégrer un référentiel Git à Snowflake.
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Data » Databases.
Dans l’explorateur d’objets, sélectionnez la base de données et le schéma qui doivent contenir la zone de préparation du référentiel Git que vous êtes en train de créer.
Sélectionnez Create » Git Repository.
Dans la boîte de dialogue Create Git Repository, pour Repository Name, entrez un nom qui identifiera de manière unique ce référentiel dans le schéma.
Pour connaître les règles d’attribution des noms, voir Exigences relatives à l’identificateur.
Pour Origin, entrez l’URL d’origine du référentiel distant.
Dans le menu déroulant API Integration, sélectionnez l’intégration d’API à laquelle il faut faire référence lors de la création de la zone de préparation du référentiel.
Si vous n’avez pas d’intégration d’API à utiliser, sélectionnez Create new API integration in Worksheets pour utiliser SQL afin d’en créer une. Pour plus d’informations, voir Créer une API d’intégration pour interagir avec l’API du référentiel et CREATE API INTEGRATION.
Facultatif : pour Comment, saisissez un texte décrivant cette intégration pour les autres.
Pour Authentication, si le référentiel distant requiert une authentification, activez la bascule.
Si vous activez la bascule, dans le menu déroulant Secret, sélectionnez le secret auquel l’intégration Git doit faire référence pour s’authentifier auprès du référentiel distant.
Si vous n’avez pas de secret à utiliser, sélectionnez Create new secret in Worksheets pour utiliser SQL afin d’en créer un. Pour plus d’informations, voir Créer un secret avec des identifiants de connexion pour l’authentification et CREATE SECRET.
Sélectionnez Create.
Lorsque vous créez avec succès l’intégration, le référentiel apparaît sous le schéma, dans un répertoire Git Repositories. Vous verrez également une page qui dresse la liste des répertoires, des branches et des balises du référentiel.