Fournisseur Databricks TerraformDatabricks Terraform provider

HashiCorp Terraform est un outil open source populaire permettant de créer une infrastructure cloud sécurisée et prévisible sur plusieurs fournisseurs cloud.HashiCorp Terraform is a popular open source tool for creating safe and predictable cloud infrastructure across several cloud providers. Vous pouvez utiliser le fournisseur Databricks Terraform pour gérer vos espaces de travail Azure Databricks et l’infrastructure cloud associée à l’aide d’un outil flexible et puissant.You can use the Databricks Terraform provider to manage your Azure Databricks workspaces and the associated cloud infrastructure using a flexible, powerful tool. Le fournisseur Databricks Terraform a pour objectif de prendre en charge toutes les API REST Databricks, en supportant l’automatisation des aspects les plus complexes du déploiement et de la gestion de vos plateformes de données.The goal of the Databricks Terraform provider is to support all Databricks REST APIs, supporting automation of the most complicated aspects of deploying and managing your data platforms. Les clients Databricks utilisent le fournisseur Databricks Terraform pour déployer et gérer des clusters et des travaux, provisionner des espaces de travail Databricks et configurer l’accès aux données.Databricks customers are using the Databricks Terraform provider to deploy and manage clusters and jobs, provision Databricks workspaces, and configure data access.

Relation de ressources TerraformTerraform resource relationship

Important

Le fournisseur Databricks Terraform n’est pas officiellement pris en charge par Databricks ou Microsoft.The Databricks Terraform provider is not formally supported by Databricks or Microsoft. Il est géré par les équipes d’ingénierie de terrain Databricks et fourni tel quel.It is maintained by Databricks field engineering teams and provided as is. Pendant la période de préversion, il n’existe aucun contrat de niveau de service.There is no service level agreement (SLA). Databricks et Microsoft n’assurent aucune garantie de quelque nature que ce soit.Databricks and Microsoft make no guarantees of any kind. Si vous rencontrez un problème avec le fournisseur, mettez en file d’attente un problème GitHub pour qu’il soit examiné par les chargés de maintenance du projet dès que possible.If you discover an issue with the provider, file a GitHub Issue, and it will be reviewed by project maintainers as time permits.

Prise en mainGetting started

Effectuez les étapes suivantes pour installer et configurer les outils en ligne de commande dont Terraform a besoin pour fonctionner.Complete the following steps to install and configure the command line tools that Terraform needs to operate. Terraform CLI et Azure CLI font partie de ces outils.These tools include the Terraform CLI and the Azure CLI. Après avoir configuré ces outils, effectuez les étapes nécessaires pour créer une configuration Terraform de base que vous pourrez utiliser par la suite pour gérer vos espaces de travail Azure Databricks et l’infrastructure cloud Azure associée.After setting up these tools, complete the steps to create a base Terraform configuration that you can use later to manage your Azure Databricks workspaces and the associated Azure cloud infrastructure.

Notes

Cette procédure part du principe que vous avez accès en tant qu’administrateur Databricks à un espace de travail Azure Databricks déployé et à l’abonnement Azure correspondant, et que vous disposez des autorisations nécessaires pour que Terraform puisse effectuer les actions désirées dans cet abonnement Azure.This procedure assumes that you have access to a deployed Azure Databricks workspace as a Databricks admin, access to the corresponding Azure subscription, and the appropriate permissions for the actions you want Terraform to perform in that Azure subscription. Pour plus d’informations, consultez les rubriques suivantes :For more information, see the following:

  1. Installez Terraform CLI.Install the Terraform CLI. Pour plus d’informations, consultez Télécharger Terraform sur le site web de Terraform.For details, see Download Terraform on the Terraform website.

  2. Installez Azure CLI, puis utilisez cette interface pour vous connecter à Azure en exécutant la commande az login.Install the Azure CLI, and then use the Azure CLI to login to Azure by running the az login command. Pour plus d’informations, consultez Installer l’interface de ligne de commande Azure sur le site web de Microsoft Azure et Azure Provider: Authenticating using the Azure CLI (Fournisseur Azure : authentification à l’aide de l’interface Azure CLI) sur le site web de Terraform.For details, see Install the Azure CLI on the Microsoft Azure website and Azure Provider: Authenticating using the Azure CLI on the Terraform website.

    az login
    

    Conseil

    Pour que Terraform s’exécute dans le contexte d’une autre connexion, réexécutez la commande az login.To have Terraform run within the context of a different login, run the az login command again. Vous pouvez configurer Terraform pour qu’il utilise un abonnement Azure autre que celui listé comme "isDefault": true dans la sortie de la commande az login.You can switch to have Terraform use an Azure subscription other than the one listed as "isDefault": true in the output of running az login. Pour cela, exécutez la commande az account set --subscription="<subscription ID>" en remplaçant <subscription ID> par la valeur de la propriété id de l’abonnement souhaité dans la sortie de la commande az login.To do this, run the command az account set --subscription="<subscription ID>", replacing <subscription ID> with the value of the id property of the desired subscription in the output of running az login.

    Cette procédure utilise l’interface Azure CLI, ainsi que l’abonnement par défaut, pour l’authentification.This procedure uses the Azure CLI, along with the default subscription, to authenticate. Pour obtenir d’autres options d’authentification, consultez Authenticating to Azure (Authentification auprès d’Azure) sur le site web de Terraform.For alternative authentication options, see Authenticating to Azure on the Terraform website.

  3. Dans votre terminal, créez un répertoire vide, puis basculez vers celui-ci.In your terminal, create an empty directory and then switch to it. (Chaque ensemble distinct de fichiers de configuration Terraform doit se trouver dans son propre répertoire.) Par exemple : mkdir terraform_demo && cd terraform_demo.(Each separate set of Terraform configuration files must be in its own directory.) For example: mkdir terraform_demo && cd terraform_demo.

    mkdir terraform_demo && cd terraform_demo
    
  4. Dans ce répertoire vide, créez un fichier nommé main.tf.In this empty directory, create a file named main.tf. Ajoutez le contenu suivant à ce fichier, puis enregistrez le fichier :Add the following content to this file, and then save the file:

    terraform {
      required_providers {
        azurerm = {
          source = "hashicorp/azurerm"
          version = ">= 2.26"
        }
    
        databricks = {
          source = "databrickslabs/databricks"
          version = "0.3.2"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    provider "databricks" {}
    
  5. Initialisez le répertoire de travail contenant le fichier main.tf en exécutant la commande terraform init.Initialize the working directory containing the main.tf file by running the terraform init command. Pour plus d’informations, consultez Command: init sur le site web de Terraform.For more information, see Command: init on the Terraform website.

    terraform init
    

    Terraform télécharge les fournisseurs azurerm et databricks, puis les installe dans un sous-répertoire caché de votre répertoire de travail actuel (nommé .terraform).Terraform downloads the azurerm and databricks providers and installs them in a hidden subdirectory of your current working directory, named .terraform. La commande terraform init indique la version des fournisseurs qui ont été installés.The terraform init command prints out which version of the providers were installed. Terraform crée également un fichier de verrouillage nommé .terraform.lock.hcl qui spécifie les versions exactes des fournisseurs, ce qui vous permet de contrôler à quel moment mettre à jour les fournisseurs utilisés pour votre projet.Terraform also creates a lock file named .terraform.lock.hcl which specifies the exact provider versions used, so that you can control when you want to update the providers used for your project.

  6. Appliquez les modifications nécessaires pour atteindre l’état souhaité de la configuration en exécutant la commande terraform apply.Apply the changes required to reach the desired state of the configuration by running the terraform apply command. Pour plus d’informations, consultez Command: apply sur le site web de Terraform.For more information, see Command: apply on the Terraform website.

    terraform apply
    

    Aucune ressource n’ayant encore été spécifiée dans le fichier main.tf, la sortie est Apply complete! Resources: 0 added, 0 changed, 0 destroyed.. Terraform écrit également des données dans un fichier appelé terraform.tfstate.Because no resources have yet been specified in the main.tf file, the output is Apply complete! Resources: 0 added, 0 changed, 0 destroyed. Also, Terraform writes data into a file called terraform.tfstate. Pour créer des ressources, passez à l’exemple de configuration, aux étapes suivantes ou aux deux pour spécifier les ressources à créer, puis réexécutez la commande terraform apply.To create resources, continue with Sample configuration, Next steps, or both to specify the desired resources to create, and then run the terraform apply command again. Terraform stocke les ID et les propriétés des ressources qu’il gère dans ce fichier terraform.tfstate pour pouvoir les mettre à jour ou les détruire à l’avenir.Terraform stores the IDs and properties of the resources it manages in this terraform.tfstate file, so that it can update or destroy those resources going forward.

Exemple de configurationSample configuration

Effectuez la procédure suivante pour créer un exemple de configuration Terraform qui crée un notebook et un travail pour exécuter ce notebook dans un espace de travail Azure Databricks existant.Complete the following procedure to create a sample Terraform configuration that creates a notebook and a job to run that notebook, in an existing Azure Databricks workspace.

  1. Dans le fichier main.tf que vous avez créé au moment du démarrage, modifiez le fournisseur databricks pour qu’il fasse référence à un espace de travail Azure Databricks existant :In the main.tf file that you created in Getting started, change the databricks provider to reference an existing Azure Databricks workspace:

    provider "databricks" {
      host = var.databricks_workspace_url
    }
    
  2. Ajoutez le code suivant à la fin du fichier main.tf :At the end of the main.tf file, add the following code:

    variable "databricks_workspace_url" {
      description = "The URL to the Azure Databricks workspace (must start with https://)"
      type = string
      default = "<Azure Databricks workspace URL>"
    }
    
    variable "resource_prefix" {
      description = "The prefix to use when naming the notebook and job"
      type = string
      default = "terraform-demo"
    }
    
    variable "email_notifier" {
      description = "The email address to send job status to"
      type = list(string)
      default = ["<Your email address>"]
    }
    
    // Get information about the Databricks user that is calling
    // the Databricks API (the one associated with "databricks_connection_profile").
    data "databricks_current_user" "me" {}
    
    // Create a simple, sample notebook. Store it in a subfolder within
    // the Databricks current user's folder. The notebook contains the
    // following basic Spark code in Python.
    resource "databricks_notebook" "this" {
      path     = "${data.databricks_current_user.me.home}/Terraform/${var.resource_prefix}-notebook.ipynb"
      language = "PYTHON"
      content_base64 = base64encode(<<-EOT
        # created from ${abspath(path.module)}
        display(spark.range(10))
        EOT
      )
    }
    
    // Create a job to run the sample notebook. The job will create
    // a cluster to run on. The cluster will use the smallest available
    // node type and run the latest version of Spark.
    
    // Get the smallest available node type to use for the cluster. Choose
    // only from among available node types with local storage.
    data "databricks_node_type" "smallest" {
      local_disk = true
    }
    
    // Get the latest Spark version to use for the cluster.
    data "databricks_spark_version" "latest" {}
    
    // Create the job, emailing notifiers about job success or failure.
    resource "databricks_job" "this" {
      name = "${var.resource_prefix}-job-${data.databricks_current_user.me.alphanumeric}"
      new_cluster {
        num_workers   = 1
        spark_version = data.databricks_spark_version.latest.id
        node_type_id  = data.databricks_node_type.smallest.id
      }
      notebook_task {
        notebook_path = databricks_notebook.this.path
      }
      email_notifications {
        on_success = var.email_notifier
        on_failure = var.email_notifier
      }
    }
    
    // Print the URL to the notebook.
    output "notebook_url" {
      value = databricks_notebook.this.url
    }
    
    // Print the URL to the job.
    output "job_url" {
      value = databricks_job.this.url
    }
    
  3. Remplacez les valeurs suivantes, puis enregistrez le fichier :Replace the following values, and then save the file:

    • Remplacez <Azure Databricks workspace URL> par l’URL de l’espace de travail Azure Databricks.Replace <Azure Databricks workspace URL> with the URL to the Azure Databricks workspace.
    • Remplacez <Your email address> par votre adresse e-mail.Replace <Your email address> with your email address.
  4. Exécutez terraform apply.Run terraform apply.

  5. Vérifiez que le notebook et le travail ont été créés : dans la sortie de la commande terraform apply, recherchez les URL pour notebook_url et job_url, puis accédez à celles-ci.Verify that the notebook and job were created: in the output of the terraform apply command, find the URLs for notebook_url and job_url and go to them.

  6. Exécutez le travail : dans la page Jobs, cliquez sur Run Now.Run the job: on the Jobs page, click Run Now. Une fois le travail terminé, consultez votre messagerie.After the job finishes, check your email inbox.

  7. Quand vous avez fini d’utiliser cet exemple, exécutez terraform destroy pour supprimer le notebook et le travail de l’espace de travail Azure Databricks.When you are done with this sample, delete the notebook and job from the Azure Databricks workspace by running terraform destroy.

  8. Vérifiez que le notebook et le travail ont été supprimés : actualisez le notebook et les pages Jobs pour afficher un message indiquant que les ressources sont introuvables.Verify that the notebook and job were deleted: refresh the notebook and Jobs pages to display a message that the reources cannot be found.

Étapes suivantesNext steps

  1. Créez un espace de travail Azure Databricks.Create an Azure Databricks workspace.
  2. Gérez les ressources d’espace de travail pour un espace de travail Azure Databricks.Manage workspace resources for an Azure Databricks workspace.

DépannageTroubleshooting

Pour un support spécifique à Terraform, consultez les dernières rubriques sur Terraform sur le site web Discuss de HashiCorp.For Terraform-specific support, see the Latest Terraform topics on the HashiCorp Discuss website. Pour les problèmes spécifiques au fournisseur Databricks Terraform, consultez les problèmes dans le dépôt GitHub databrickslabs/terraform-provider-databricks.For issues specific to the Databricks Terraform Provider, see Issues in the databrickslabs/terraform-provider-databricks GitHub repository.

Ressources supplémentairesAdditional resources