CREATE SERVICE

Cria um novo serviço Snowpark Container Services no esquema atual. Se já existir um serviço com esse nome, use o comando DROP SERVICE para excluir o serviço criado anteriormente.

Você pode executar mais de uma instância do seu serviço. Cada instância de serviço é uma coleção de contêineres, conforme definido no arquivo de especificação de serviço, que são executados juntos em um nó no seu pool de computação. Se você executar várias instâncias de um serviço, um balanceador de carga gerenciará o tráfego de entrada.

Consulte também:

ALTER SERVICE , DESCRIBE SERVICE, DROP SERVICE , SHOW SERVICES

Sintaxe

CREATE SERVICE [ IF NOT EXISTS ] <name>
  IN COMPUTE POOL <compute_pool_name>
  {
    FROM @<stage>
    SPECIFICATION_FILE = '<yaml_file_stage_path>'
    |
    FROM SPECIFICATION <specification_text>
  }
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
  [ AUTO_RESUME = { TRUE | FALSE } ]
  [ MIN_INSTANCES = <num> ]
  [ MAX_INSTANCES = <num> ]
  [ QUERY_WAREHOUSE = <warehouse_name> ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
  [ COMMENT = '{string_literal}']
Copy

Parâmetros obrigatórios

name

Cadeia de caracteres que especifica o identificador (ou seja, o nome) do serviço; deve ser exclusivo para o esquema no qual o serviço é criado.

Nomes entre aspas para caracteres especiais ou nomes que diferenciam maiúsculas de minúsculas não são suportados. A mesma restrição também se aplica a nomes de bancos de dados e esquemas onde você cria um serviço. Ou seja, nomes de bancos de dados e esquemas sem aspas são válidos na criação de um serviço.

IN COMPUTE POOL compute_pool_name

Especifica o nome do pool de computação na sua conta no qual o serviço será executado.

FROM stage

Especifica o estágio interno do Snowflake onde o arquivo de especificação está armazenado; por exemplo, @tutorial_stage.

SPECIFICATION_FILE = 'yaml_file_stage_path'

Especifica o caminho para o arquivo de especificação de serviço no estágio; por exemplo, 'some-dir/echo_spec.yaml'.

FROM SPECIFICATION specification_text

Especifica a especificação de serviço. Você pode usar um par de cifrões ($$) para delimitar o início e o fim da cadeia de caracteres de especificação.

Parâmetros opcionais

EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )

Identifica destinos externos, na internet, que o serviço pode acessar. Por padrão, os contêineres de aplicativos não têm permissão para acessar a internet. Você precisa ativar o acesso à internet usando integrações de acesso externo (EAIs). Para obter mais informações, consulte Saída de rede.

AUTO_RESUME = { TRUE | FALSE }

Especifica se um serviço deve ser retomado automaticamente quando uma função de serviço ou entrada é chamada.

  • Se AUTO_RESUME for FALSE, você precisará retomar explicitamente o serviço (usando ALTER SERVICE … RESUME).

  • Se AUTO_RESUME for TRUE, o Snowflake retoma o serviço suspenso quando uma função de serviço é chamada ou quando uma solicitação é recebida (entrada).

MIN_INSTANCES = num

Especifica o número mínimo de instâncias de serviço a serem executadas.

Padrão: 1

MAX_INSTANCES = num

Especifica o número máximo de instâncias de serviço a serem executadas.

QUERY_WAREHOUSE = warehouse_name

Warehouse a ser usado se um contêiner de serviço se conectar ao Snowflake para executar uma consulta, mas não especificar explicitamente um warehouse a ser usado.

Padrão: nenhum.

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Especifica o nome da tag e o valor da cadeia de caracteres dela.

O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.

Para obter mais detalhes sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.

COMMENT = 'string_literal'

Especifica um comentário para o serviço.

Padrão: sem valor

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

CREATE SERVICE

Esquema

USAGE

Pool de computação

READ

Estágio

Este é o estágio onde a especificação é armazenada.

READ

Repositório de imagens

Repositório de imagens referenciadas pela especificação.

BIND SERVICE ENDPOINT

Conta

Uma função deve ter esse privilégio para criar um serviço com pontos de extremidade públicos. Isso permite o acesso ao serviço através dos pontos de extremidade públicos. Se a função de proprietário do serviço perder este privilégio, os pontos de extremidade públicos não estarão acessíveis.

Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

Exemplos

Crie um serviço com duas instâncias de serviço em execução:

CREATE SERVICE echo_service
  IN COMPUTE POOL tutorial_compute_pool
  FROM @tutorial_stage
  SPECIFICATION_FILE='echo_spec.yaml'
  MIN_INSTANCES=2
  MAX_INSTANCES=2
Copy