Criação de uma definição de projeto Snowpark

O arquivo snowflake.yml contém as declarações de funções e procedimentos para um projeto Snowpark.

Nota

Atualmente, o arquivo de definição do projeto Snowpark deve ser nomeado snowflake.yml.

O snippet a seguir mostra um arquivo de definição de projeto Snowpark de exemplo: com duas funções e dois procedimentos. A função hello_function usa recursos externos do Snowpark.

definition_version: '2'

mixins:
  snowpark_shared:
    artifacts:
      - dest: my_snowpark_project
        src: app/
    stage: dev_deployment

entities:

  hello_function:
    type: function
    identifier:
      name: hello_function
    handler: functions.hello_function
    signature:
      - name: name
        type: string
    returns: string
    external_access_integrations:
      - my_external_access
    secrets:
        cred: my_cred_name
    meta:
      use_mixins:
        - snowpark_shared

  hello_procedure:
    type: procedure
    identifier:
      name: hello_procedure
    handler: procedures.hello_procedure
    signature:
      - name: name
        type: string
    returns: string
    meta:
      use_mixins:
        - snowpark_shared

  test_procedure:
    type: procedure
    identifier:
      name: test_procedure
    handler: procedures.test_procedure
    signature: ''
    returns: string
    meta:
      use_mixins:
        - snowpark_shared
Copy

Cuidado

Os arquivos dentro de um diretório de projeto são processados por Snowflake CLI e podem ser carregados no Snowflake ao executar outros comandos snow snowpark. Você deve ter cuidado ao colocar qualquer informação confidencial dentro de arquivos em um diretório de projeto.

Propriedades de objetos de função e procedimento

A tabela a seguir descreve as propriedades usadas por funções e procedimentos.

Propriedades de objetos de função e procedimento

Propriedade

Definição

identifier

opcional, cadeia de caracteres

Identificador Snowflake opcional para a entidade. O valor pode ter as seguintes formas:

  • Texto identificador de cadeia de caracteres

    identifer: my-snowpark-id
    
    Copy

    Identificadores entre aspas e sem aspas são suportados. Para usar identificadores entre aspas, inclua as aspas ao redor no valor YAML (por exemplo, ‘“Minha função Snowpark”’).

  • Objeto

    identifer:
      name: my-snowpark-id
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    Nota

    Ocorrerá um erro se você especificar um schema ou database e usar um nome totalmente qualificado na propriedade name (como mydb.schema1.my-app).

tipo

opcional, cadeia de caracteres

Deve ser um dos seguintes: function ou procedure.

artifacts

obrigatório, sequência de cadeias de caracteres

Lista de recursos necessários.

manipulador

obrigatório, cadeia de caracteres

Implementação da função ou procedimento do objeto dentro do módulo definido em snowpark.src. Por exemplo functions.hello_function refere-se à função hello_function do arquivo <src>/functions.py.

retorna

obrigatório, cadeia de caracteres

Tipo SQL do resultado. Confira a lista de tipos disponíveis.

assinatura

obrigatório, sequência

O parâmetro signature descreve argumentos consecutivos passados ao objeto. Cada um deve especificar seu nome e tipo, por exemplo:

signature:
  - name: "first_argument"
    type: int
  - name: "second_argument"
    default: "default value"
    type: string
Copy

Se uma função ou procedimento não aceitar argumentos, defina este valor como uma cadeia de caracteres vazia (signature: "").

Verifique a coluna Tipo de SQL de tipos disponíveis. Para saber mais sobre a sintaxe de argumentos nomeados e opcionais, consulte Como chamar uma UDF que tem argumentos opcionais.

tempo de execução

opcional, cadeia de caracteres

Versão do Python a ser usada ao executar o procedimento ou função. Padrão: «3.8».

external_access_integrations

opcional, sequência de cadeias de caracteres

Nomes das integrações de acesso externo para que este código do manipulador do procedimento acesse redes externas. Consulte CREATE PROCEDURE para obter mais detalhes.

segredos

opcional, dicionário

Atribui os nomes dos segredos às variáveis para que você possa usar as variáveis para fazer referência aos segredos ao recuperar informações dos segredos no código do manipulador. Consulte CREATE PROCEDURE para obter mais detalhes.

importações

opcional, sequência de cadeias de caracteres

Estágio e caminho para os arquivos enviados anteriormente que você deseja importar. Consulte CREATE PROCEDURE para obter mais detalhes.

execute_as_caller

opcional, booleano

Disponível apenas para procedimentos. Determine se o procedimento é executado com os privilégios do proprietário (você) ou com os privilégios do chamador. Padrão: falso (privilégios do proprietário).