Account APIを使用してワークスペースを作成する

注:

これらの手順は、2023 年 11 月 8 日より前に作成されたアカウントに適用されます。 Databricks アカウントが 2023 年 11 月 8 日以降に作成された場合は、「 ワークスペース API の作成」を参照してください。

この記事では、Account APIを使用してワークスペースを作成する方法を説明します。AWS Quick StartテンプレートアカウントコンソールTerraformを使用してワークスペースを作成することもできます。

マネージドサービスまたは AWS PrivateLink に 顧客管理のキーを 使用する場合は、アカウント API を使用してワークスペースを作成する必要があります。

始める前に

  • アカウント ID にアクセスできることを確認します。

  • ワークスペースが以下の機能を有効にするかどうかを判断します。

    • 顧客管理VPC: 任意のタイプの接続に AWS PrivateLink を使用する場合は、独自の Amazon Virtual Public クラウド (VPC) を提供します。

    • 暗号化用の顧客管理キー:

      • コントロール プレーンのマネージド サービス用の顧客管理キー: Databricks が管理するコントロール プレーンでノートブックと機密データを暗号化するための KMS キーを提供します。

      • ワークスペース ストレージ用の顧客管理キー : ワークスペースのKMSS3 バケット (ワークスペースの DBFS ルート、ジョブの結果など) とオプションでクラスター ノードの EBS ボリュームを暗号化するための キーを提供します。

    • AWS PrivateLink: AWS PrivateLink は、トラフィックをパブリックネットワークに公開することなく、AWS VPC およびオンプレミスネットワークから AWS のサービスへのプライベート接続を提供します。

  • ワークスペースの コンピュートプレーン (VPC) に使用するリージョンを決定します。 コントロールプレーン領域は、コンピュート プレーン 領域によって決定される。

    ワークスペース コンピュートプレーン VPC は、 ap-northeast-1ap-northeast-2ap-south-1ap-southeast-1ap-southeast-2ca-central-1eu-west-1eu-west-2eu-central-1us-east-1us-east-2us-west-1us-west-2の AWS リージョンに配置できます。ただし、暗号化に顧客管理キーを使用する場合、us-west-1 で VPC を使用することはできません。

アカウントAPIの使い方

アカウント API に対して認証するには、サービスプリンシパル用の Databricks OAuth、ユーザー用の Databricks OAuth、または Databricks アカウント管理者のユーザー名とパスワードを使用できます。 Databricks では、ユーザーまたはサービスプリンシパルに Databricks OAuth を使用することを強くお勧めします。 サービスプリンシパルは、自動化ツール、ジョブ、アプリケーションで使用するために Databricks で作成する ID です。 「OAuth マシン間 (M2M) 認証」を参照してください。

次の例を使用して、Databricks アカウントに対して認証を行います。 サービスプリンシパルの OAuth、ユーザーの OAuth、またはユーザーのユーザー名とパスワード (レガシー) を使用できます。 背景については、以下を参照してください。

認証の例については、次の中から選択します。

  1. Databricks CLI バージョン 0.205 以降をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。

  2. ステップを完了して、アカウント内のサービスプリンシパルのOAuth M2M認証を設定します。 OAuthマシン間(M2M)認証を参照してください。

  3. .databrickscfg ファイルで Databricks 構成プロファイルを特定するか、手動で作成し、関連する hostaccount_idclient_id 、およびサービスプリンシパルへのclient_secretマッピングに対してプロファイルのフィールドが正しく設定されます。OAuthマシン間(M2M)認証を参照してください。

  4. 対象のDatabricks CLIコマンドを実行します。ここで<profile-name>.databrickscfgファイルの構成プロファイル名を表します。

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

    たとえば、アカウント内のすべてのユーザーを一覧表示するには、次のようにします。

    databricks account users list -p MY-AWS-ACCOUNT
    
    • 使用可能なアカウントコマンドのリストを表示するには、コマンドdatabricks account -hを実行します。

    • アカウントコマンドで使用可能なサブコマンドのリストを表示するには、コマンドdatabricks account <command-name> -hを実行します。

  1. Databricks CLI バージョン 0.205 以降をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。

  2. ステップを完了して、アカウント内のユーザーのOAuth U2M認証を構成します。 OAuthユーザーからマシン(U2M)への認証を参照してください。

  3. 次のDatabricks CLIコマンドを実行して、ユーザー認証プロセスを開始します。

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

    例:

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

    注:

    host フィールドと account_id フィールドが既に設定されている既存の Databricks 構成プロファイルがある場合は、--host <account-console-url> --account-id <account-id>--profile <profile-name>に置き換えることができます。

  4. 画面の指示に従って、Databricks CLIが関連するDatabricks構成プロファイルをファイルに自動的に作成するようにします。 .databrickscfg

  5. 画面の指示に従って、WebブラウザからDatabricksアカウントにサインインします。

  6. 対象のDatabricks CLIコマンドを実行します。ここで<profile-name>.databrickscfgファイルの構成プロファイル名を表します。

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

    たとえば、アカウント内のすべてのユーザーを一覧表示するには、次のようにします。

    databricks account users list -p ACCOUNT-00000000-0000-0000-0000-000000000000
    
    • 使用可能なアカウントコマンドのリストを表示するには、コマンドdatabricks account -hを実行します。

    • アカウントコマンドで使用可能なサブコマンドのリストを表示するには、コマンドdatabricks account <command-name> -hを実行します。

  1. Databricks CLI バージョン 0.205 以降をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。

  2. .databrickscfg ファイルで Databricks 構成プロファイルを特定するか、手動で作成し、関連する hostaccount_idusername 、および Databricks ユーザー アカウントへのpasswordマッピング用にプロファイルのフィールドが正しく設定されます。「 基本認証 (レガシー)」を参照してください。

  3. 対象のDatabricks CLIコマンドを実行します。ここで<profile-name>.databrickscfgファイルの構成プロファイル名を表します。

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

    たとえば、アカウント内のすべてのユーザーを一覧表示するには、次のようにします。

    databricks account users list -p MY-AWS-ACCOUNT
    
    • 使用可能なアカウントコマンドのリストを表示するには、コマンドdatabricks account -hを実行します。

    • アカウントコマンドで使用可能なサブコマンドのリストを表示するには、コマンドdatabricks account <command-name> -hを実行します。

ステップ1:クロスアカウント認証を設定する

Databricksは、新しいワークスペースの適切なVPCにクラスターをデプロイできるように、AWSアカウントのクロスアカウントサービスのIAMロールにアクセスする必要があります。

  1. このようなロールがまだ存在しない場合は、「ワークスペースデプロイメント用のIAMロールを作成する 」を参照して、デプロイメントタイプに適したロールとポリシーを作成してください。この手順の後半で、新しいロール((role_arn)のARNを指定します。

    注:

    複数のワークスペースでクロスアカウントIAMロールを共有できます。ワークスペースごとに新しいクロスアカウントIAMロールを作成する必要はありません。すでにクロスアカウントIAMロールがある場合は、この手順をスキップできます。

  2. AWS ロールの Databricks 認証情報構成 ID を作成します。 資格情報構成の作成 API (POST /accounts/<databricks-account-id>/credentials) を呼び出します。このリクエストはクロスアカウント信頼を確立し、新しいワークスペースを作成するときに使用する参照 ID を返します。

    注:

    複数のワークスペースで資格情報構成IDを共有できます。ワークスペースごとに新しいワークスペースを作成する必要はありません。すでにお持ちの場合は、この手順をスキップできます。

    <databricks-account-id> を Databricks アカウント ID に置き換えます。認証については、「 アカウント API の使用方法」を参照してください。 要求本文で、次の操作を行います。

    • credentials_nameをこれらの認証情報の名前に設定します。名前はアカウント内で一意である必要があります。

    • aws_credentialssts_roleプロパティを含むオブジェクトに設定します。このオブジェクトには、作成したロールのAWSロールARNを指定するrole_arnプロパティを含める必要があります。

    応答本文には、新しいワークスペースを作成するために必要なDatabricks認証情報構成IDであるcredentials_idフィールドが含まれます。この値は後の手順でワークスペースを作成するために使用するので、コピーして保存してください。

    例:

     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"
         }
       }
     }'
    

    応答例:

     {
       "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
     }
    

    後で使用するために、応答からcredentials_idフィールドをコピーします。

ステップ2:root ストレージを構成する

アカウントのrootストレージS3バケットには、クラスターログ、ノートブックの修正箇所、ジョブの結果などのオブジェクトが保存されます。また、rootストレージのS3バケットを使用して、テストに必要なデータのような非本番データを保存することもできます。

注:

root S3バケットは、1つのアカウントで複数のワークスペースと共有できます。ワークスペースごとに新しいバケットを作成する必要はありません。アカウント内の複数のワークスペースでroot S3バケットを共有する場合、root S3バケット上のデータはワークスペースごとに個別のディレクトリに分割されます。すでにバケットと、アカウントAPIによって生成された関連するストレージ構成IDがある場合は、この手順をスキップできます。ただし、レガシーワークスペースのバケットを再利用しないでください。たとえば、E2に移行する場合は、E2環境用に新しいAWSバケットを作成します。

  1. ワークスペースデプロイメント用のS3バケットを作成する」の手順に従って、root S3バケットを作成します。

  2. ルート S3 バケットを表すストレージ設定レコードを作成します。 ストレージ設定の作成 API (POST /accounts/<account-id>/storage-configurations) を呼び出して、ルート S3 バケットを名前で指定します。

    リクエストは、S3バケットを表すストレージ構成IDを返します。

    以下を渡します。

    • storage_configuration_name:新しい一意のストレージ構成名。

    • root_bucket_info:S3バケット名を含むbucket_nameフィールドを含むJSONオブジェクト。

    応答本文には、バケットのストレージ構成IDであるstorage_configuration_idプロパティが含まれています。後で使用するためにその値をコピーします。

    例:

    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"
        }
      }'
    

    応答:

    {
      "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
    }
    

ステップ5:カスタマーマネージドキーを構成する(オプション)

重要

  • この機能を使用するには、アカウントがEnterprise価格プランである必要があります。

  • ワークスペース コンピュートプレーン VPC は、 ap-northeast-1ap-northeast-2ap-south-1ap-southeast-1ap-southeast-2ca-central-1eu-west-1eu-west-2eu-central-1us-east-1us-east-2us-west-1us-west-2の AWS リージョンに配置できます。ただし、暗号化に顧客管理キーを使用する場合、us-west-1 で VPC を使用することはできません。

顧客管理の暗号化キーには 2 つの使用例があります。

  • ノートブックと機密データを含むマネージド サービスをコントロール プレーンで暗号化します。

  • ワークスペースストレージを暗号化します。これには、ワークスペースのルート S3 バケットと、オプションでクラスター EBS ボリュームが含まれます。

これらのどちらも設定しないことも、一方を設定することも、両方を設定することもできます。両方のユースケースで暗号化を実装することを選択した場合、オプションでキーを共有したり、オプションでこれらのユースケースで同じ設定オブジェクトを共有したりすることもできます。

どちらの使用例でも、ワークスペースの作成時に構成することも、実行中のワークスペースにキーを追加することもできます。 マネージドサービスの顧客管理キーの場合は、後でキーをローテーション (更新) できます。 ストレージ用の顧客管理キーの場合、後でキーをローテーションすることはできません

顧客管理キーまたはそのキー設定オブジェクトは、ワークスペース間で共有できます。新しいワークスペースを作成するとき、キー設定はuse_casesフィールドに両方の列挙値を含めるように設定することで、両方の暗号化使用例を表すことができます。

注:

すでにノートブック暗号化を使用している既存のワークスペースにワークスペース ストレージ キーを追加するには、ワークスペース ストレージ用の新しいキー構成オブジェクトを作成する必要があります。 「顧客管理キーの暗号化の構成」を参照してください。

1つの暗号化使用例または両方の暗号化使用例を同じキーで実装するには、次の手順を1回だけ実行します。異なるキーで両方の暗号化使用例に暗号化を追加するには、各ユースケースについて1回ずつ、この手順を2回実行します。

  1. AWS KMS キーを作成します。 次のセクションのいずれかの手順に従ってください。ポリシー内の人間が判読できる説明フィールド ( sid ) のみが異なり、ユースケースを特定します。 「ステップ 1: AWS KMS でキーを作成または選択する」を参照してください。 両方のユースケースでキーと設定を共有するには、それに応じて sid フィールドを更新します。

  2. KMS キーを Databricks に登録するには、 カスタマー マネージド キー構成の作成 API (POST /accounts/<account-id>/customer-managed-keys) を呼び出します。

    次のパラメーターを渡します。

    • use_cases — キーを使用する使用例を指定する配列。次のいずれかまたは両方を指定します。

      • MANAGED_SERVICES: このキーは、コントロール プレーンのマネージド サービスを暗号化します。これには、コントロール プレーンのノートブックと機密データが含まれます。

      • STORAGE: このキーは、ワークスペースの DBFS ルートおよびクラスター EBS ボリュームを含むワークスペース ストレージを暗号化します。

    • aws_key_info:次のプロパティを持つJSONオブジェクト。

      • key_arn: AWS KMSキーARN。DatabricksはキーARNからAWSリージョンを推測することに注意してください。

      • key_alias:(オプション)AWS KMSキーのエイリアス。

      • reuse_key_for_cluster_volumesオプションuse_casesアレイにSTORAGEが含まれている場合にのみ使用され、クラスターEBSボリュームの暗号化にもキーを使用するかどうかを指定します。デフォルト値はtrueで、Databricksもクラスターボリュームのキーを使用することを意味します。これをfalseに設定すると、Databricksは指定されたキーでEBSボリュームを暗号化しません。その場合、DatabricksのEBSボリュームはデフォルトのAWS SSE暗号化で暗号化されるか、AWSのアカウントレベルのEBS暗号化をデフォルトで有効にしている場合は、AWSがアカウントレベルの EBS 暗号化を実行します。reuse_key_for_cluster_volumestrueで、キーの権限を取り消すと、実行中のクラスターには影響しませんが、新規クラスターと再起動されたクラスターには影響することに注意してください。

    リクエストの例:

    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
      }
    }'
    

    応答例:

    {
      "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. 応答JSON から、customer_managed_key_idをコピーします。次のステップでそのIDを使用して、このオブジェクトが表す暗号化使用例に応じて、ワークスペース構成オブジェクトのプロパティmanaged_services_customer_managed_key_idstorage_customer_managed_key_id、またはその両方を設定します。

ステップ6:ワークスペースを作成する

新しいワークスペースを作成するには、 ワークスペース作成 API (POST /accounts/<account-id>/workspaces) を呼び出します。

次のパラメーターを渡します。これらのパラメーターは、前の手順でコピーした値です。

  • aws_region: ワークスペースのコンピュートプレーンの AWS リージョン。

  • workspace_name:人間にとってわかりやすいワークスペースの名前。これは、Databricks UIでユーザーに表示されるワークスペース名です。

  • deployment_name: (推奨ですが省略可能) ワークスペースの一意のデプロイ名。 詳細については、 デプロイ名に関する注意事項を参照してください。

  • credentials_id: クロスアカウントロールの資格情報を表す資格情報ID。これは、資格情報構成オブジェクトのIDです。

  • storage_configuration_id:お客様のroot S3バケットを表すストレージ構成ID。これは、ストレージ構成オブジェクトのIDです。

  • network_id:(オプション)顧客管理VPCにのみ使用されます。これはネットワーク設定オブジェクトのIDです。

  • managed_services_customer_managed_key_id: (オプション) ノートブックや秘密データなどのマネージド サービスをコントロール プレーンで暗号化するためにのみ使用されます。 マネージドサービスの顧客管理キーを参照してください。 これは、ワークスペース ストレージのキー構成 ID であり、キー構成オブジェクトのcustomer_managed_key_idフィールドです。 この暗号化の使用例をサポートする場合は、ワークスペースの作成時に構成する必要があります。

  • storage_customer_managed_key_id: (オプション) ワークスペースストレージを暗号化するためにのみ使用されます。 これは、ワークスペース ストレージのキー構成 ID であり、キー構成オブジェクトのcustomer_managed_key_idフィールドです。 この暗号化の使用例をサポートする場合は、ワークスペースの作成時に構成できますが、後で実行中のワークスペースに追加することもできます。

  • private_access_settings_id: (オプション) AWS PrivateLink にのみ使用されます。 これは、このワークスペース用に作成したプライベート アクセス設定オブジェクトの ID です。 PrivateLink の記事の「 アカウント API を使用してプライベート アクセス設定の構成を作成する 」を参照してください。 これは、すべての接続タイプ(フロントエンド、バックエンド、またはその両方)のPrivateLinkアクセスの必須フィールドです。

  • custom_tags:(オプション)リソースを整理するためのメタデータとして機能するキーと値のペアです。タグは、リソースの管理、識別、整理、検索、フィルタリングに加だけでなく、コストや属性の使用状況のモニタリングにも役立ちます。

デプロイメント名に関する注意事項:

  • deployment_nameの値は慎重に選択してください。デプロイメント名は、ワークスペースのサブドメインの一部を定義します。ウェブアプリケーションとREST APIのワークスペースURLは<deployment-name>.cloud.databricks.comです。たとえば、デプロイメント名がABCSalesの場合、ワークスペースURLはhttps://abcsales.cloud.databricks.comになります。このプロパティは、文字a ~zおよび0~9をサポートします。ハイフンも使用できますが、最初または最後の文字として使用することはできません。

  • アカウントには、デプロイ名のプレフィックスを付けることができます。 Databricks アカウント チームに連絡して、アカウントにアカウント デプロイ名のプレフィックスを追加します。 ワークスペースの作成時にアカウントに空でないデプロイ名のプレフィックスがある場合、ワークスペースのデプロイ名は、アカウント プレフィックスとハイフンで始まるように更新されます。 たとえば、アカウントのデプロイプレフィックスが acme で、ワークスペースのデプロイ名が workspace-1の場合、[ deployment_name ] フィールドは acme-workspace-1になります。 この例では、ワークスペースの URL は acme-workspace-1.cloud.databricks.comです。

  • このアカウントプレフィックスの変更後、新しい値は、このワークスペースのdeployment_nameフィールドのJSON応答で返されるものです。

  • アカウントに空ではないデプロイメント名プレフィックスがあり、deployment_nameを予約キーワードEMPTYに設定した場合、deployment_nameはアカウントプレフィックスのみです。たとえば、アカウントのデプロイメントプレフィックスがacmeで、ワークスペースのデプロイメント名がEMPTYの場合、deployment_nameacmeのみになり、ワークスペースのURLは acme.cloud.databricks.comになります。アカウントにデプロイメント名プレフィックスがまだない場合、特別なデプロイメント名の値EMPTYは無効です。

JSON応答には、プロパティworkspace_idが含まれます。後で使用するために、この値をコピーします。

例:

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"
  }
}'

応答例:

{
  "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"
}

顧客管理 VPC を指定し、ワークスペース作成ステップでネットワーク関連のエラーが返された場合は、 ネットワーク設定の取得 API (エンドポイント /networks/<network-id>) を呼び出してネットワーク設定を検証できます。 「 ワークスペース作成エラーのトラブルシューティング」を参照してください。

ステップ 7: 新しいワークスペース を確認する

ワークスペースの状態を確認するには、 ワークスペースの取得 API (GET /accounts/<account-id>/workspaces/<workspace-id>) を呼び出します。

ワークスペースの作成時に返されたJSON応答のworkspace_id値を使用します。

応答では、可能なworkspace_status値は次のとおりです。

  • NOT_PROVISIONED:まだプロビジョニングされていません。

  • PROVISIONING:まだプロビジョニング中です。数分待ってから、このAPIリクエストを繰り返します。

  • RUNNING:デプロイメントが正常に完了し、現在実行されています。

  • FAILED:デプロイメントに失敗しました。

  • BANNED:禁止されています。

  • CANCELLING:キャンセル処理中。

失敗した状態値を処理する方法については、「 ワークスペース作成エラーのトラブルシューティング 」を参照してください。

例:

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

応答:

{
  "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"
}

この例では、ワークスペースのステータス(workspace_status)がRUNNINGに設定されているため、成功しました。PROVISIONINGの場合は、成功するまでこのAPIリクエストを繰り返します。

価格は、デフォルトでアカウントに関連付けられているプランになります。AWSプラットフォーム層を参照してください。

新しいワークスペースのステータスがRUNNINGになったら、新しいワークスペースをテストします。

  • 新しいワークスペースでのユーザーインターフェースログイン - URL https://<deployment-name>.cloud.databricks.comでWebアプリケーションにログインできることを確認します。たとえば、ワークスペースの作成時に指定したデプロイメント名がABCSalesの場合、ワークスペースのURLはhttps://abcsales.cloud.databricks.comです。アカウントのユーザー名とパスワードを使用してください。

  • 新しいワークスペースでのREST APIログイン — REST APIにアクセスできることを確認します。次の例では、ワークスペースユーザーAPIを呼び出してユーザーのリストを取得します。

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

    その他の認証オプションなど、Databricks REST APIsの使用の詳細については、 ワークスペース API に関するページを参照してください。

ステップ8:デプロイメント後のPrivateLink構成(オプション)

このステップは、AWS PrivateLinkを構成する場合にのみ必要です。

ワークスペースの作成後:

  1. フロントエンドの PrivateLink 接続を実装する場合は、「ステップ 4: ユーザー要求を Web アプリケーションにリダイレクトするように内部 DNS を構成する (フロントエンド用)」の説明に従って、関連する DNS 構成の変更を実装します。

  2. 必要に応じて、「 ステップ 5: 他の AWS サービスの VPC エンドポイントを追加する」の説明に従って、他の VPC エンドポイントを作成します。

ステップ9:その他のオプションのデプロイメント後の構成

新しいワークスペースに対して、次のオプションの構成手順を検討することをお勧めします。

IPアクセスリストの有効化

Web アプリケーション、REST APIs、JDBC/ODBC エンドポイント、および DBConnect に接続できる IP アドレスを構成します。 許可リストとブロックリストを IP アドレスまたは範囲として指定できます。 「ワークスペースの IP アクセス リストの構成」を参照してください。

監査ログシステムテーブルを有効にする

Databricks では、監査ログ システム テーブルを有効にして、Databricks ユーザーが実行したアクティビティと発生した使用状況を監視することを強くお勧めします。 ワークスペースで Unity Catalog が有効になっている必要があります。 手順については、「 システム テーブルを使用した使用状況の監視 」を参照してください。

ワークスペース作成エラーのトラブルシューティング

次のセクションでは、一般的なワークスペース作成エラーの解決策を説明します。

アドレスの最大数に達しました

Databricksがお客様に代わってVPCを作成する際には、少なくとも1つの未使用のElastic IPが必要です。それ以外の場合、VPCは作成されず、次のエラーが発生します。

The maximum number of addresses has been reached.

Elastic IPの数を増やして、う一度お試しください。

一般的なトラブルシューティング手順

すべてのワークスペース作成エラーについては、次のトラブルシューティング手順を記載された順序で試してください。

ネットワークを検証する

ワークスペースの作成またはステータスチェックステップがネットワーク関連のエラーを示している場合は、 ネットワーク構成の取得 API を呼び出して、ネットワーク設定が正しいことを確認します。 この API エンドポイントの形式は次のとおりです。

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

例:

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

応答で、warning_messages error_messagesフィールドを表示します。両方の配列が空の場合、警告やエラーはありません。

そうでない場合は、警告とエラーのJSONオブジェクトを注意深く確認してください。

  • 警告の場合、warning_typeの列挙は、問題がサブネットかセキュリティグループのどちらかにあったことを示します。warning_messageには、追加の詳細が記載されています。(NATゲートウェイではなく)ファイアウォールまたはNATインスタンスがある場合、ネットワーク検証によって常に警告が発行されることに注意してください。

  • エラーの場合、error_typeの列挙は認証情報、VPC、サブネット、セキュリティグループ、ネットワークACLのいずれかに問題があったことを示します。error_messageには、追加の詳細が記載されています。

インフラの問題を修正する

ネットワーク構成の取得 API API 要求に対する応答のエラーに応じて、次のことを確認します。

失敗したワークスペースを更新する

失敗したワークスペースを更新するには、更新ワークスペースを呼び出し、 API を再デプロイ します (PATCH /accounts/<account-id>/workspaces/<workspace-id>)。

ワークスペースの更新API は、ワークスペースの作成時に失敗したワークスペース構成の更新をサポートし、資格情報、ストレージ、ネットワーク(顧客管理VPCの場合)、およびキー(ノートブックの暗号化の場合)の構成を変更します。

注:

同じAPIを使用して、実行中の(正常にデプロイされた)ワークスペースを更新できますが、変更できるのは資格情報とネットワーク設定のみです。

これらのワークスペース構成フィールドを渡して変更できます:credentials_idstorage_configuration_idnetwork_idmanaged_services_customer_managed_key_id、およびstorage_customer_managed_key_id

workspace_status 値が PROVISIONINGを返す場合は、 ワークスペースの取得 API を使用して RUNNING 状態の確認を続けます。

例:

  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>"
}'

応答:

{
  "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"
}

ワークスペースの更新に失敗した場合に、ネットワークとワークスペースを再作成する

ワークスペースの更新APIが機能しない場合は、以下の順序でネットワーク(独自のVPCを提供した場合)と失敗したワークスペースを削除して再作成する必要があります。

  1. ワークスペースの削除 API を使用してワークスペースを削除します (DELETE /accounts/<account-id>/workspaces/<workspace-id>)。

    例:

    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. 独自の VPC を指定した場合は、ネットワーク構成の削除 API (DELETE /accounts/<account-id>/networks/<network-id>) を使用して Databricks ネットワーク構成を削除します。

    例:

    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. vpc_idsubnet_ids 、および security_group_idsの正しい値を使用してネットワークを再作成します

  4. credentials_idstorage_configuration_idnetwork_idmanaged_services_customer_managed_key_id、および storage_customer_managed_key_idの正しい値を使用してワークスペースを再作成します

    workspace_statusPROVISIONINGを取得した場合は、 ワークスペースの取得 API を使用して RUNNING 状態の確認を続けます。