Configuration de Snowflake pour utiliser Git¶
Lorsque vous intégrez un référentiel Git distant et que vous clonez le référentiel, Snowflake crée un clone de référentiel Git qui spécifie l’emplacement du référentiel distant, les identifiants de connexion (si nécessaire) et les 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 distant avec Snowflake, procédez comme suit :
Créez un secret, si nécessaire, pour conserver les identifiants de connexion avec le référentiel distant.
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 un clone de référentiel Git vers lequel vous pouvez synchroniser les fichiers du référentiel distant.
Créer un secret avec des identifiants de connexion pour l’authentification¶
Si votre référentiel Git distant 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 distant.
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 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';
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écifiez, si l’authentification est requise, un secret qui contient les identifiants de connexion du référentiel distant 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.
all
(Non sensible à la casse) pour spécifier que n’importe quel secret peut être utilisé.none
(Non sensible à 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 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;
Créez un clone de référentiel Git Snowflake à partir du référentiel distant¶
Pour configurer Snowflake afin qu’il fonctionne avec un référentiel Git distant, créez un clone de référentiel Git dans Snowflake qui contiendra les fichiers récupérés du référentiel distant.
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.
Le clone du référentiel Git spécifie les éléments suivants :
L’origine du référentiel distant
Dans Git,
origin
est l’abréviation de l’URL du référentiel distant. Utilisez cette URL lorsque vous configurez Snowflake pour qu’il utilise un référentiel Git distant. 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
La commande génère une sortie telle que la suivante :
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 un clone de référentiel Git dans Snowflake, vous devez utiliser un rôle auquel les privilèges suivants ont été accordés :
Privilège CREATE GIT REPOSITORY pour le schéma qui contient le clone du référentiel Git
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
Privilège USAGE pour l’intégration de l’API à laquelle le clone du référentiel Git fait référence
Vous pouvez créer un clone de référentiel Git en utilisant Snowsight ou SQL.
Note
Avant de créer un clone de référentiel Git, vous devrez créer un secret (si le référentiel distant requiert une authentification) et une intégration API.
Le code de l’exemple suivant crée un clone de référentiel Git appelé snowflake_extensions
. Le clone spécifie git_api_integration
l’intégration API et le secret myco_git_secret
avec les identifiants de connexion pour l’authentification.
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';
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 le clone 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, saisissez un nom qui identifiera de manière unique ce clone de 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 API à laquelle il faut faire référence lors de la création du clone du référentiel Git.
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.
Facultatif : Si le référentiel distant requiert une authentification, définissez l’option Authentication sur la position _on_.
Si vous avez activé le bouton bascule, dans le menu Secret, sélectionnez le secret qui doit être référencé par l’intégration Git 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 avez réussi à créer l’intégration, le clone du référentiel Git 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.