Criar um workspace usando a API da conta

Observação

Estas instruções se aplicam a account criadas antes de 8 de novembro de 2023. Se a sua conta Databricks foi criada após 8 de novembro de 2023, consulte Criar API workspace .

Este artigo ensina como criar um workspace usando a API Account. Você também pode criar workspaces usando o modelo do AWS Quick Start, o console da conta ou o Terraform.

O senhor deve usar a API account para criar o espaço de trabalho se quiser usar a chave do cliente para gerenciar o serviço gerenciado ou o AWS PrivateLink.

Antes de começar

  • Certifique-se de ter acesso ao ID da sua conta.

  • Determine se o workspace ativará os seguintes recursos:

    • VPC gerenciado pelo cliente: forneça suas próprias clouds públicas virtuais (VPC) da Amazon se desejar usar o AWS PrivateLink para qualquer tipo de conexão.

    • Chave gerenciada pelo cliente para criptografia:

      • O cliente gerencia a chave para o serviço gerenciado no plano de controle: Fornece a chave KMS para criptografar Notebook e dados secretos no plano de controle do Databricks-gerenciar.

      • Chave gerenciada pelo cliente para o armazenamento workspace: Forneça a chave KMS para criptografar o bucket S3 do workspace(o DBFS raiz do workspace, os resultados do Job e outros) e, opcionalmente, os volumes EBS do nó do cluster.

    • AWS PrivateLink: O AWS PrivateLink fornece conectividade privada de VPCs AWS e redes locais para serviços AWS sem expor o tráfego à rede pública.

  • Determine as regiões a serem usadas para o workspace compute plano (VPC) do seu . A região do plano de controle é determinada pela região do plano compute .

    workspace compute Os VPCs do plano podem estar nas regiões da AW ap-northeast-1Sap-northeast-2 ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, eu-west-1, eu-west-2, eu-central-1, us-east-1, us-east-2, us-west-1, , us-west-2e . No entanto, você não poderá usar uma VPC em us-west-1 se quiser usar keygerenciada pelo cliente para criptografia.

Como usar a API da conta

Para se autenticar na API account, o senhor pode usar o Databricks OAuth para entidade de serviço, o Databricks OAuth para usuários ou o nome de usuário e a senha de um administrador do Databricks account. A Databricks recomenda enfaticamente que o senhor use o Databricks OAuth para usuários ou entidades de serviço. Uma entidade de serviço é uma identidade que o senhor cria no Databricks para uso com ferramentas automatizadas, trabalhos e aplicativos. Consulte a autenticação OAuth máquina a máquina (M2M).

Use os exemplos a seguir para autenticar uma account do Databricks. Você pode usar OAuth para entidade de serviço, OAuth para usuários ou um nome de usuário e senha de usuário (legado). Para obter informações básicas, consulte:

Para exemplos de autenticação, escolha uma das seguintes opções:

  1. Instale a CLI do Databricks versão 0.205 ou acima. Consulte Instalar ou atualizar a CLI do Databricks.

  2. Conclua os passos para configurar a autenticação OAuth M2M para entidade de serviço na account. Consulte Autenticação máquina a máquina (M2M) OAuth.

  3. Identifique ou crie manualmente um perfil de configuração do Databricks em seu arquivo .databrickscfg , com os campos do perfil definidos corretamente para o mapeamento host, account_id e client_id e client_secret relacionado para a entidade de serviço. Consulte Autenticação máquina a máquina (M2M) OAuth.

  4. Execute o comando Databricks CLI de destino, onde <profile-name> representa o nome do perfil de configuração no arquivo .databrickscfg:

    databricks account <command-name> <subcommand-name> -p <profile-name>
    

    Por exemplo, para listar todos os usuários na conta:

    databricks account users list -p MY-AWS-ACCOUNT
    
    • Para obter uma lista de comandos de conta disponíveis, execute o comando databricks account -h.

    • Para obter uma lista de subcomandos disponíveis para um comando de conta, execute o comando databricks account <command-name> -h.

  1. Instale a CLI do Databricks versão 0.205 ou acima. Consulte Instalar ou atualizar a CLI do Databricks.

  2. Conclua os passos para configurar a autenticação OAuth U2M para usuários na account. Consulte Autenticação usuário-máquina (U2M) OAuth.

  3. Inicie o processo de autenticação do usuário executando o seguinte comando Databricks CLI:

    databricks auth login --host <account-console-url> --account-id <account-id>
    

    Por exemplo:

    databricks auth login --host https://accounts.cloud.databricks.com --account-id 00000000-0000-0000-0000-000000000000
    

    Observação

    Se você tiver um perfil de configuração do Databricks existente com os campos host e account_id já definidos, poderá substituir --host <account-console-url> --account-id <account-id> por --profile <profile-name>.

  4. Siga as instruções na tela para que a CLI do Databricks crie automaticamente o perfil de configuração do Databricks relacionado em seu arquivo .databrickscfg.

  5. Continue seguindo as instruções que aparecem na tela para acessar a sua conta Databricks através do seu navegador da web.

  6. Execute o comando Databricks CLI de destino, onde <profile-name> representa o nome do perfil de configuração no arquivo .databrickscfg:

    databricks account <command-name> <subcommand-name> -p <profile-name>
    

    Por exemplo, para listar todos os usuários na conta:

    databricks account users list -p ACCOUNT-00000000-0000-0000-0000-000000000000
    
    • Para obter uma lista de comandos de conta disponíveis, execute o comando databricks account -h.

    • Para obter uma lista de subcomandos disponíveis para um comando de conta, execute o comando databricks account <command-name> -h.

  1. Instale a CLI do Databricks versão 0.205 ou acima. Consulte Instalar ou atualizar a CLI do Databricks.

  2. Identifique ou crie manualmente um perfil de configuração do Databricks em seu arquivo .databrickscfg, com os campos do perfil definidos corretamente para o mapeamento host, account_id e username e password relacionado à sua account de usuário do Databricks. Consulte Autenticação básica (herdada).

  3. Execute o comando Databricks CLI de destino, onde <profile-name> representa o nome do perfil de configuração no arquivo .databrickscfg:

    databricks account <command-name> <subcommand-name> -p <profile-name>
    

    Por exemplo, para listar todos os usuários na conta:

    databricks account users list -p MY-AWS-ACCOUNT
    
    • Para obter uma lista de comandos de conta disponíveis, execute o comando databricks account -h.

    • Para obter uma lista de subcomandos disponíveis para um comando de conta, execute o comando databricks account <command-name> -h.

Passo 1: configurar autenticação de conta cruzada

Os Databricks precisam ter acesso a uma função de IAM de serviço entre contas em sua conta AWS para que os Databricks possam implementar clusters no VPC apropriado para o novo workspace.

  1. Se esse papel ainda não existir, consulte Criar um papel IAM para implantação do workspace para criar um papel e política apropriados para seu tipo de implantação. Você fornece o ARN para sua nova função (o role_arn) posteriormente neste procedimento.

    Observação

    Você pode compartilhar uma IAM role entre contas com vários workspace. Você não é obrigado a criar uma nova IAM role entre contas para cada workspace. Se você já tiver uma IAM role entre contas, pode pular esta passo.

  2. Crie um ID de configuração de credencial do Databricks para sua função AWS. Chame a API de configuração Criar credencial (POST /accounts/<databricks-account-id>/credentials). Essa solicitação estabelece confiança entreaccount e retorna um ID de referência para usar ao criar um novo workspace.

    Observação

    Você pode compartilhar um ID de configuração de credenciais com vários workspace. Não é necessário criar um novo para cada workspace. Se você já tiver um, pode pular esta etapa.

    Substitua <databricks-account-id> pelo ID da sua account do Databricks. Para autenticação, consulte Como usar a API da conta. No corpo da solicitação:

    • Configure o credentials_name para um nome para estas credenciais. O nome deve ser exclusivo em sua conta.

    • aws_credentials Defina como um objeto que contém uma sts_role propriedade. Esse objeto deve conter uma role_arn propriedade que especifique o ARN da função da AWS para a função que você criou.

    O corpo da resposta incluirá um campo credentials_id, que é a ID de configuração de credenciais do Databricks que você precisa para criar o novo workspace. Copie e salve esse valor, que você usará em uma passo posterior para criar o workspace.

    Por exemplo:

     curl -X POST
       'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/credentials' \
      --header 'Authorization: Bearer $OAUTH_TOKEN'  \
       -d '{
       "credentials_name": "databricks-workspace-credentials-v1",
       "aws_credentials": {
         "sts_role": {
           "role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role"
         }
       }
     }'
    

    Resposta de exemplo:

     {
       "credentials_id": "<databricks-credentials-id>",
       "account_id": "<databricks-account-id>",
       "aws_credentials": {
         "sts_role": {
           "role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role",
           "external_id": "<databricks-account-id>"
         }
       },
       "credentials_name": "databricks-workspace-credentials-v1",
       "creation_time": 1579753556257
     }
    

    Copie o campo credentials_id da resposta para uso posterior.

Etapa 2: Configurar o armazenamento raiz

O bucket de armazenamento raiz S3 em sua conta guarda objetos como logs de clusters, revisões de notebooks e resultados de trabalhos.Você também pode usar o bucket de armazenamento raiz S3 para armazenar dados que não sejam de produção, como os dados necessários para testes.

Observação

Você pode compartilhar um bucket raiz do S3 com vários workspace em uma única account. Você não precisa criar novos depósitos para cada workspace. Se você compartilhar um bucket raiz S3 para vários workspaces em uma conta, os dados no bucket raiz S3 serão particionados em diretórios separados por workspace. Se você já tiver um bucket e um ID de configuração de armazenamento associado gerado pela API da account , poderá pular esta passo. No entanto, não reutilize um bucket do workspace legacy. Por exemplo, se você estiver migrando para o E2, crie um novo bucket da AWS para sua configuração do E2.

  1. Crie o contêiner raiz S3 utilizando as instruções em Criar um contêiner S3 para implementação do workspace.

  2. Crie um registro de configuração de armazenamento que represente o bucket raiz do S3. Especifique o bucket raiz do S3 por nome chamando a API de configuração de criação de armazenamento (POST /accounts/<account-id>/storage-configurations).

    O pedido retorna uma ID de configuração de armazenamento que representa o seu bucket S3.

    Passe o seguinte:

    • storage_configuration_name: Novo nome de configuração de armazenamento exclusivo.

    • root_bucket_info: Um objeto JSON que contém um campo bucket_name que contém seu nome do bucket S3.

    O corpo da resposta inclui uma propriedade storage_configuration_id , que é o ID de configuração de armazenamento do bloco. Copie esse valor para uso posterior.

    Por exemplo:

    curl -X POST
        'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/storage-configurations' \
      --header 'Authorization: Bearer $OAUTH_TOKEN'  \
      -d '{
        "storage_configuration_name": "databricks-workspace-storageconf-v1",
        "root_bucket_info": {
          "bucket_name": "my-company-example-bucket"
        }
      }'
    

    Resposta:

    {
      "storage_configuration_id": "<databricks-storage-config-id>",
      "account_id": "<databricks-account-id>",
      "root_bucket_info": {
        "bucket_name": "my-company-example-bucket"
      },
      "storage_configuration_name": "databricks-workspace-storageconf-v1",
      "creation_time": 1579754875555
    }
    

Etapa 5: configurar chaves gerenciadas pelo cliente (opcional)

Importante

  • Este recurso exige que sua conta esteja no nível de preço Enterprise.

  • workspace compute Os VPCs do plano podem estar nas regiões da AW ap-northeast-1Sap-northeast-2 ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, eu-west-1, eu-west-2, eu-central-1, us-east-1, us-east-2, us-west-1, , us-west-2e . No entanto, você não poderá usar uma VPC em us-west-1 se quiser usar keygerenciada pelo cliente para criptografia.

Há dois casos de uso para a chave de criptografia gerenciada pelo cliente:

  • Criptografar o serviço gerenciado, que inclui Notebook e dados secretos no plano de controle.

  • Criptografar o armazenamento do workspace, que inclui o bucket S3 raiz do workspace e, opcionalmente, os volumes EBS dos clusters.

Você pode optar por não configurar nenhum, um ou ambos. Se você optar por implementar criptografia para ambos os casos de uso, é possível compartilhar opcionalmente uma chave e, até mesmo, opcionalmente, o mesmo objeto de configuração para esses casos de uso.

Para ambos os casos de uso, o senhor pode configurá-lo durante a criação do workspace ou adicionar o key a um workspace em execução. Para um cliente gerenciar key para serviço gerenciado, o senhor pode girar (atualizar) o key posteriormente. Para um cliente gerenciar key para armazenamento, o senhor não pode girar o key posteriormente.

Você pode compartilhar uma chave gerenciada pelo cliente ou seu objeto de configuração de chave entre workspaces. Ao criar um novo workspace, uma configuração de chave pode representar ambos os casos de uso de criptografia, definindo seu campo use_cases para incluir ambos os valores de enumeração.

Observação

Para adicionar um armazenamento workspace key a um workspace existente que já usa a criptografia Notebook, o senhor deve criar um novo objeto de configuração key para o armazenamento workspace. Consulte Configurar chave gerenciadora de clientes para criptografia.

Para implementar um caso de uso de criptografia ou ambos os casos de uso de criptografia com a mesma chave, execute o procedimento a seguir exatamente uma vez. Para adicionar criptografia para ambos os casos de uso de criptografia com chaves diferentes, execute o procedimento duas vezes, uma para cada caso de uso.

  1. Crie o AWS KMS key. Siga as instruções em qualquer uma das seções a seguir, que diferem apenas no campo de descrição legível por humanos (sid) na política para identificar o caso de uso. Veja o passo 1: Criar ou selecionar uma chave no AWS KMS. Para compartilhar o key e a configuração de ambos os casos de uso, atualize o campo sid adequadamente.

  2. Para registrar sua key KMS com Databricks, chame a API de configuração key de gerenciamento de cliente (POST /accounts/<account-id>/customer-managed-keys).

    Passe os seguintes parâmetros:

    • use_cases — Uma matriz que especifica os casos de uso para os quais utilizar a chave, especifique um ou ambos os seguintes:

      • MANAGED_SERVICES: Este key criptografa o serviço gerenciado no plano de controle, que inclui Notebook e dados secretos no plano de controle.

      • STORAGE: Este key criptografa workspace o armazenamento , que inclui o workspacedo DBFS root e os volumes EBS dos clusters.

    • aws_key_info: Um objeto JSON com as seguintes propriedades:

      • key_arn: Chave ARN do AWS KMS. Observe que o Databricks infere a região da AWS a partir da chave ARN.

      • key_alias: (Opcional) pseudônimo da chave AWS KMS.

      • reuse_key_for_cluster_volumes: (Opcional) Usado somente se a matriz use_cases contiver STORAGE, especifica se a chave também deve ser usada para criptografar volumes EBS do cluster. O valor padrão é true, o que significa que o Databricks também usa a chave para volumes de cluster. Se você definir isso como false, o Databricks não criptografará os volumes EBS com a chave especificada. Nesse caso, seus volumes EBS do Databricks são criptografados com a criptografia SSE padrão da AWS ou se você habilitou a criptografia EBS no nível da conta da AWS por padrão, a AWS impõe a criptografia EBS no nível da conta usando uma chave separada que você forneceu a eles. Observe que se reuse_key_for_cluster_volumes for true e você revogar a permissão da chave, isso não afetará os clusters em execução, mas afetará os clusters novos e reiniciados.

    Exemplo de solicitação:

    curl -X POST
      'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/customer-managed-keys' \
      --header 'Authorization: Bearer $OAUTH_TOKEN'  \
      -d '{
      "use_cases": ["MANAGED_SERVICES", "STORAGE"],
      "aws_key_info": {
        "key_arn": "arn:aws:kms:us-west-2:<aws-account-id>:key/<key-id>",
        "key_alias": "my-example-key",
        "reuse_key_for_cluster_volumes": true
      }
    }'
    

    Resposta de exemplo:

    {
      "use_cases": ["MANAGED_SERVICES", "STORAGE"],
      "customer_managed_key_id": "<aws-kms-key-id>",
      "creation_time": 1586447506984,
      "account_id": "<databricks-account-id>",
      "aws_key_info": {
          "key_arn": "arn:aws:kms:us-west-2:<aws-account-id>:key/<key-id>",
          "key_alias": "my-example-key",
          "reuse_key_for_cluster_volumes": true,
          "key_region": "us-west-2"
      }
    }
    
  3. No JSON de resposta, copie o customer_managed_key_id. Você usa esse ID na próxima passo para definir a propriedade managed_services_customer_managed_key_id, storage_customer_managed_key_id ou ambas do objeto de configuração workspace, dependendo de quais casos de uso de criptografia esse objeto representa.

Etapa 6: criar o workspace

Para criar o novo espaço de trabalho, chame a API create workspace (POST /accounts/<account-id>/workspaces).

Passe os seguintes parâmetros, que são valores que você copiou nas etapas anteriores:

  • aws_region: a região AWS do workspace compute plano do .

  • workspace_nameNome legível por humanos para seu workspace. Este é o nome do workspace que os usuários veem na interface do usuário do Databricks.

  • deployment_name: (recomendado, mas opcional) Nome de implantação exclusivo para seu workspace. Para obter detalhes, consulte as notas sobre o nome da implantação.

  • credentials_id: sua ID de credencial, que representa suas credenciais de função de conta cruzada. Este é o ID do objeto de configuração de credenciais.

  • storage_configuration_id: seu ID de configuração de armazenamento, que representa seu bucket raiz S3. Esta é a ID do objeto de configuração de armazenamento.

  • network_id: (Opcional) usado apenas para VPC gerenciado pelo cliente. Esta é a ID do objeto de configuração de rede.

  • managed_services_customer_managed_key_id(Opcional) Usado apenas para criptografar o serviço gerenciado, como Notebook e dados secretos no plano de controle. Veja a chave Customer-gerenciar para serviço gerenciado. Esse é seu ID de configuração key para o armazenamento workspace, que é o campo customer_managed_key_id de um objeto de configuração key. Se quiser oferecer suporte a esse caso de uso de criptografia, o senhor deve configurá-lo no momento da criação do site workspace.

  • storage_customer_managed_key_id(Opcional) Usado somente para criptografar o armazenamento workspace. Esse é seu ID de configuração key para o armazenamento workspace, que é o campo customer_managed_key_id do objeto de configuração key. Se quiser oferecer suporte a esse caso de uso de criptografia, o senhor pode configurá-lo no momento da criação do site workspace, mas também pode adicioná-lo posteriormente a um site em execução workspace.

  • private_access_settings_id: (Opcional) Usado apenas para AWS PrivateLink. Este é o ID do objeto de configurações de acesso privado que você criou para esta workspace. Consulte Criar uma configuração de configurações de acesso privado usando a API account nos artigos do PrivateLink. Este é um campo obrigatório para acesso ao PrivateLink para todos os tipos de conexão (front-end, back-end ou ambos).

  • custom_tags: (Opcional) Pares key-value que atuam como metadados para organizar recursos. As tags podem ajudar a gerenciar, identificar, organizar, pesquisar e filtrar recursos, além de monitorar o custo e o uso de atributos.

Observações sobre o nome da implantação:

  • Escolha seu valor deployment_name com cuidado. O nome da implementação define parte do subdomínio do workspace. A URL do workspace para aplicativo da web e REST APIs é <deployment-name>.cloud.databricks.com. Por exemplo, se o nome da implementação for ABCSales, a URL da suo workspace será https://abcsales.cloud.databricks.com. Esta propriedade suporta caracteres a-z e 0-9. Hifens também são permitidos, mas não como o primeiro ou último caractere.

  • account pode ter um prefixo de nome de implantação. Entre em contato com sua equipe account do Databricks para adicionar um prefixo de nome de implantação account à sua account. Se a sua account tiver um prefixo de nome de implementação não vazio no momento da criação workspace , o nome de implementação workspace será atualizado para que comece com o prefixo da account e um hífen. Por exemplo, se o prefixo de implementação da sua accountfor acme e o nome de implementação workspace for workspace-1, o campo deployment_name se tornará acme-workspace-1. Neste exemplo, a URL workspace é acme-workspace-1.cloud.databricks.com.

  • Após essa modificação com o prefixo da conta, o novo valor é o que é retornado nas respostas JSON para o campo deployment_name deste workspace.

  • Se a sua conta tiver um prefixo de nome de implementação não vazio e você definir deployment_name para a palavra-chave reservada EMPTY, deployment_name será o prefixo da conta somente. Por exemplo, se o prefixo de implementação da sua conta for acme e o nome de implementação do área de trabalho for EMPTY, o deployment_name se tornará acme somente, e a URL do workspace for acme.cloud.databricks.com. Se a sua conta ainda não tiver um prefixo de nome de implementação, o valor de nome de implementação especial EMPTY será inválido.

A resposta JSON inclui a propriedade workspace_id. Copie este valor para uso posterior.

Por exemplo:

curl -X POST
  'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces' \
  --header 'Authorization: Bearer $OAUTH_TOKEN'  \
  -d '{
  "workspace_name": "my-company-example",
  "deployment_name": "my-company-example",
  "aws_region": "us-west-2",
  "credentials_id": "<aws-credentials-id>",
  "storage_configuration_id": "<databricks-storage-config-id>",
  "network_id": "<databricks-network-id>",
  "managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
  "storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
  "private_access_settings_id": "<private-access-settings-id>",
  "custom_tags": {
    "Organization": "Marketing",
    "Env": "Prod"
  }
}'

Resposta de exemplo:

{
  "workspace_id": 123456789,
  "workspace_name": "my-company-example",
  "aws_region": "us-west-2",
  "creation_time": 1579768294842,
  "deployment_name": "my-company-example",
  "workspace_status": "PROVISIONING",
  "account_id": "<databricks-account-id>",
  "credentials_id": "<aws-credentials-id>",
  "storage_configuration_id": "<databricks-storage-config-id>",
  "workspace_status_message": "Workspace resources are being set up.",
  "network_id": "<databricks-network-id>",
  "managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
  "storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
  "private_access_settings_id": "<private-access-settings-id>",
  "pricing_tier": "ENTERPRISE",
  "custom_tags": {
    "Organization": "Marketing",
    "Env": "Prod"
  }
}
{
  "workspace_id": 123456789,
  "workspace_name": "my-company-example",
  "aws_region": "us-west-2",
  "creation_time": 1579768294842,
  "deployment_name": "my-company-example",
  "workspace_status": "PROVISIONING",
  "account_id": "<databricks-account-id>",
  "credentials_id": "<aws-credentials-id>",
  "storage_configuration_id": "<databricks-storage-config-id>",
  "workspace_status_message": "Workspace resources are being set up.",
  "network_id": "<databricks-network-id>",
  "managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
  "storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
  "private_access_settings_id": "<private-access-settings-id>",
  "pricing_tier": "ENTERPRISE"
}

Se você especificou uma VPC gerenciada pelo cliente e a criação workspace o passo retornar um erro relacionado à rede, você poderá chamar a API de configuração de rede (endpoint /networks/<network-id>) para validar as configurações de rede. Consulte Solucionar problemas de erros de criação workspace .

o passo 7: Confirme a nova área de trabalho

Para verificar o status do espaço de trabalho, chame a API get workspace (GET /accounts/<account-id>/workspaces/<workspace-id>).

Utilize o valor workspace_id da resposta JSON retornada quando você criou o workspace.

Na resposta, os valores workspace_status possíveis são:

  • NOT_PROVISIONED: Ainda não provisionado.

  • PROVISIONING: Ainda em provisionamento. Aguarde alguns minutos e repita essa solicitação de API.

  • RUNNING: implementação bem-sucedida e agora em execução.

  • FAILED: Falha na implementação.

  • BANNED: Banido.

  • CANCELLING: Em processo de cancelamento.

Consulte Solucionar erros de criação workspace para saber como lidar com valores de status malsucedidos.

Por exemplo:

curl -X GET
'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
  --header 'Authorization: Bearer $OAUTH_TOKEN'

Resposta:

{
  "workspace_id": 123456789,
  "workspace_name": "my-company-example",
  "aws_region": "us-west-2",
  "creation_time": 1579768294842,
  "deployment_name": "my-company-example",
  "workspace_status": "RUNNING",
  "account_id": "<databricks-account-id>",
  "credentials_id": "<aws-credentials-id>",
  "storage_configuration_id": "<databricks-storage-config-id>",
  "workspace_status_message": "Workspace is running.",
  "network_id": "339f16b9-b8a3-4d50-9d1b-7e29e49448c3",
  "managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
  "storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
  "pricing_tier": "ENTERPRISE"
}

Neste exemplo, o status do workspace (workspace_status) é definido como RUNNING, portanto, foi bem-sucedido. Se estiver PROVISIONING, repita essa solicitação de API até que ela seja bem-sucedida.

O nível de preços é padronizado com o plano associado à sua conta. Consulte Níveis da plataforma AWS.

Teste seu novo workspace depois que seu status for RUNNING:

  • Login da interface do usuário no novo workspace — Confirme que você pode fazer login no aplicativo da web na URL https://<deployment-name>.cloud.databricks.com. Por exemplo, se o nome de implementação especificado durante a criação do workspace for ABCSales, a URL do seu workspace será https://abcsales.cloud.databricks.com. Use o nome de usuário e a senha da sua conta.

  • Login API REST no novo workspace — Confirme se você consegue acessar a API REST. O exemplo a seguir chama a API de usuários do workspace para obter uma lista de usuários.

    curl  -u <user-name> -X GET 'https://<deployment-name>.cloud.databricks.com/api/2.0/scim/v2/Users' \
    --header 'Authorization: Bearer $OAUTH_TOKEN'
    

    Para obter mais informações sobre a utilização de APIs REST do Databricks, incluindo outras opções de autenticação, consulte a API do Workspace.

Etapa 8: Configuração do PrivateLink pós-implementação (opcional)

Essa etapa é necessária somente se você estiver configurando o AWS PrivateLink.

Após a criação do workspace:

  1. Se você estiver implementando uma conexão PrivateLink front-end , implemente alterações relevantes na configuração de DNS conforme descrito na etapa 4: Configurar DNS interno para redirecionar solicitações do usuário para o aplicativo Web (para front-end).

  2. Opcionalmente, crie outro VPC endpoint, conforme descrito na etapa 5: Adicionar VPC endpoint para outro serviço AWS.

Etapa 9: Outras configurações opcionais pós-implementação

Você pode considerar estas etapas de configuração opcionais para seu novo workspace.

Habilitar listas de acesso IP

Configure quais endereços IP podem se conectar ao aplicativo Web, APIs REST, endpoint JDBC/ODBC e DBConnect. Você pode especificar listas de permissões e listas de bloqueios como endereços IP ou intervalos. Consulte Configurar listas de acesso IP para áreas de trabalho.

Habilitar tabela do sistema logs de auditoria

A Databricks recomenda fortemente que você habilite a tabela do sistema logs de auditoria para monitorar as atividades executadas e o uso incorrido pelos usuários do Databricks. Seu workspace deve ter o Unity Catalog habilitado. Consulte Monitorar o uso com tabelas do sistema para obter instruções.

Solucionar erros de criação do workspace

As seções a seguir fornecem soluções para erros comuns de criação de workspaces.

O número máximo de endereços foi atingido

Quando o Databricks cria um VPC em seu nome, você deve ter pelo menos um IP elástico não utilizado. Caso contrário, o VPC não será criada e ocorrerá o seguinte erro:

The maximum number of addresses has been reached.

Aumente o número de IPs elásticos e tente novamente.

Etapas gerais de solução de problemas

Para todos os erros de criação workspace, tente as seguintes etapas de solução de problemas na ordem fornecida.

Validar a rede

Se a criação workspace ou as passos de verificação de status indicarem um erro relacionado à rede, chame a API obter configuração de rede para garantir que as configurações de rede estejam corretas. Este endpoint da API tem o formato:

/accounts/<databricks-account-id>/networks/<databricks-network-id>

Por exemplo:

  curl -X GET
  'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks/<databricks-network-id>' \
  --header 'Authorization: Bearer $OAUTH_TOKEN'

Na resposta, visualize os warning_messages error_messages campos. Se as duas matrizes estiverem vazias, não haverá avisos ou erros.

Caso contrário, reveja cuidadosamente os avisos e os objetos JSON de erro:

  • Para avisos, a enumeração warning_type indica que o problema era com uma sub-rede ou grupo de segurança. O(A) warning_message fornece detalhes adicionais. Esteja ciente de que, se você tiver uma instância de NAT ou firewall (em vez de um gateway NAT), a validação de rede sempre emitirá um aviso.

  • Para erros, a enumeração error_type indica que o problema ocorreu com credenciais, VPC, sub-rede, grupo de segurança ou ACL de rede. O error_message fornece detalhes adicionais.

Corrigir problemas de infraestrutura

Dependendo dos erros na resposta à solicitação de API de configuração de rede , confirme se:

Atualizar o workspace com falha

Para atualizar o workspace com falha, chame o workspace de atualização e reimplante a API (PATCH /accounts/<account-id>/workspaces/<workspace-id>).

A API de atualização do workspace permite atualizações nas configurações do workspace que falharam durante a criação do workspace, somente para alterar as configurações de credenciais, armazenamento, rede (para VPC gerenciado pelo cliente) e chaves (para criptografar notebooks).

Observação

Você pode usar a mesma API para atualizar um workspace em execução (implantado com sucesso), mas só pode alterar as configurações de credencial e de rede.

Você pode passar esses campos de configuração do workspace para alterá-los: credentials_id, storage_configuration_id, network_id, managed_services_customer_managed_key_id e storage_customer_managed_key_id.

Se o valor workspace_status retornar PROVISIONING, continue verificando o estado RUNNING usando a API get workspace.

Por exemplo:

  curl -X PATCH 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
  --header 'Authorization: Bearer $OAUTH_TOKEN'  \
  -d '{
  "aws_region": "us-west-2",
  "credentials_id": "<aws-credentials-id>",
  "storage_configuration_id": "<databricks-storage-config-id>",
  "network_id": "<databricks-network-id>",
  "managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
  "storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>"
}'

Resposta:

{
  "workspace_id": 123456789,
  "workspace_name": "my-company-example",
  "aws_region": "us-west-2",
  "creation_time": 1579768294842,
  "deployment_name": "my-company-example",
  "workspace_status": "PROVISIONING",
  "account_id": "<databricks-account-id>",
  "credentials_id": "<aws-credentials-id>",
  "storage_configuration_id": "<databricks-storage-config-id>",
  "workspace_status_message": "Workspace resources are being set up.",
  "network_id": "<databricks-network-id>",
  "managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
  "storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
  "pricing_tier": "ENTERPRISE"
}

Se a atualização do workspace falhar, recrie a rede e o workspace

Se a API de atualização do workspace não funcionar, você deve excluir e recriar a rede (se tiver fornecido sua própria VPC) e o workspace com falha na seguinte ordem.

  1. Exclua o espaço de trabalho usando a API delete workspace (DELETE /accounts/<account-id>/workspaces/<workspace-id>).

    Por exemplo:

    curl -X DELETE
    'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
     --header 'Authorization: Bearer $OAUTH_TOKEN'
    
  2. Se você forneceu sua própria VPC, exclua a configuração de rede do Databricks usando a API de exclusão de configuração de rede (DELETE /accounts/<account-id>/networks/<network-id>).

    Por exemplo:

    curl -X DELETE
    'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks/<databricks-network-id>'
     --header 'Authorization: Bearer $OAUTH_TOKEN'
    
  3. Recrie a rede usando os valores corretos para vpc_id, subnet_ids e security_group_ids.

  4. Recrie a área de trabalho usando os valores corretos para credentials_id, storage_configuration_id, network_id, managed_services_customer_managed_key_id e storage_customer_managed_key_id.

    Se você obtiver o valor workspace_status PROVISIONING, continue verificando o estado RUNNING usando a API get workspace.