Configuração do Snowflake para usar o Git

Quando você integra um repositório Git e clona o repositório, o Snowflake cria um estágio de repositório Git que especifica o local do repositório, credenciais (se necessário) e detalhes sobre como o Snowflake deve interagir com a API do repositório Git.

Para usar um repositório Git com o Snowflake, siga estas etapas:

  1. Crie um segredo, se necessário, para conter credenciais para autenticação no repositório.

  2. Crie uma integração da API para especificar detalhes sobre a interação do Snowflake com a API do repositório Git.

  3. Crie um estágio de repositório Git do Snowflake para o qual você pode sincronizar arquivos do repositório.

Criação de um segredo com credenciais para autenticação

Se seu repositório Git exigir autenticação, você precisará criar um segredo que contém credenciais que o Snowflake pode usar para autenticar no repositório.

Você usará o segredo de várias maneiras. Se alguém criar uma integração de API que especifique a interação do Snowflake com a API do repositório Git, deve especificar este segredo como um valor do parâmetro ALLOWED_AUTHENTICATION_SECRETS. Além disso, se alguém configurar o Snowflake para usar o Git, deverá especificar o segredo.

Para criar um segredo, você deve usar uma função que tenha recebido os seguintes privilégios:

Como prática recomendada, use um token de acesso pessoal para o valor PASSWORD do segredo. Para obter informações sobre como criar um token de acesso pessoal em GitHub, consulte Como gerenciar seus tokens de acesso pessoal na documentação do GitHub.

SQL:

Você pode usar o comando CREATE SECRET para criar um segredo que contém credenciais do repositório Git.

O código no exemplo a seguir cria um segredo chamado myco_git_secret com um nome de usuário e o token de acesso pessoal do usuário para usar como credenciais:

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';
Copy

Criação de uma integração da API para interagir com a API do repositório

Para especificar detalhes sobre como o Snowflake interage com a API do repositório Git, você precisará criar uma integração da API.

Alguém configurando uma conta Snowflake para usar o Git irá especificar a integração de API a ser usada.

Para criar uma integração de API, você deve usar uma função que tenha recebido os seguintes privilégios:

Ao criar uma integração da API para uma API do repositório Git, você deve:

  • Especificar git_https_api como o valor do parâmetro API_PROVIDER.

  • Especifique, se a autenticação for necessária, um segredo que contém as credenciais do repositório como um valor do parâmetro ALLOWED_AUTHENTICATION_SECRETS. Você pode especificar uma das seguintes opções:

    • Um ou mais segredos do Snowflake (em uma lista separada por vírgulas) que o Snowflake pode usar ao autenticar com o repositório

    • A cadeia de caracteres 'all' (sem distinção entre maiúsculas e minúsculas) para especificar que qualquer segredo pode ser usado

    • A cadeia de caracteres 'none' (sem distinção entre maiúsculas e minúsculas) para especificar que nenhum segredo pode ser usado

SQL:

Você pode usar o comando CREATE API INTEGRATION para criar uma integração da API que especifica detalhes para a interação do Snowflake com a API do repositório Git.

O código no exemplo a seguir cria uma integração de API chamada 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;
Copy

Criação de um estágio de repositório Git e clonagem do repositório

Para configurar o Snowflake para funcionar com um repositório Git, crie um estágio de repositório Git para conter arquivos obtidos do repositório.

Nota

Antes de iniciar as etapas desta seção, considere primeiro criar um segredo (se o repositório remoto exigir autenticação) e uma integração de API. Você pode precisar de ambos.

O estágio do repositório Git especifica o seguinte:

  • A origem do repositório

    No Git, origin é uma abreviação para o URL do repositório remoto. Use este URL ao configurar o Snowflake para usar um repositório Git. O URL deve usar HTTPS. Você pode recuperar o URL de origem das seguintes maneiras:

    • Na interface do usuário do GitHub, para obter o URL de origem na página inicial do repositório, selecione o botão Code e, em seguida, copie o URL HTTPS na caixa exibida abaixo do botão.

    • Na linha de comando, use o comando git config de dentro do seu repositório local, como no exemplo a seguir:

      $ git config --get remote.origin.url
      https://github.com/my-account/snowflake-extensions.git
      
      Copy

      Para obter informações de referência sobre git config, veja a documentação do git.

  • Credenciais, se necessário, para o Snowflake usar ao autenticar com o repositório

  • Uma integração da API especificando detalhes para interação do Snowflake com a API do repositório

Para criar um estágio de repositório Git, você deve usar uma função que tenha recebido os seguintes privilégios:

  • CREATE GIT REPOSITORY no esquema que contém o repositório

    Para obter mais informações, consulte requisitos de controle de acesso do CREATE GIT REPOSITORY.

  • USAGE no segredo que contém credenciais para autenticação com o Git

  • USAGE na integração de API ao qual o estágio do repositório Git faz referência

Você pode criar um estágio de repositório Git usando Snowsight ou SQL.

Você pode usar o comando CREATE GIT REPOSITORY para criar um estágio de repositório Git.

Nota

Antes de criar um repositório local, você precisará criar um segredo (se o repositório remoto exigir autenticação) e uma integração de API.

O código no exemplo a seguir cria um estágio de repositório Git chamado snowflake_extensions. O estágio especifica a git_api_integration integração da API e o segredo myco_git_secret com credenciais para autenticação.

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';
Copy