Terraform est un outil open source qui permet de provisionner et de gérer l'infrastructure cloud sous forme de code. Tablestore s'intègre à Terraform, ce qui vous permet de créer et de gérer des instances Tablestore via des fichiers de configuration.
Exécutez l'exemple de code en un seul clic. Exécuter maintenant
Prérequis
-
Par mesure de sécurité, utilisez un utilisateur RAM disposant des autorisations minimales (Créer un utilisateur RAM, Accorder des autorisations à un utilisateur RAM). Stratégie minimale requise :
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ots:GetInstance", "ots:BindInstance2Vpc", "ots:ListVpcInfoByInstance", "ots:UnbindInstance2Vpc", "ots:DeleteInstance", "ots:InsertInstance", "ots:UpdateInstance", "ots:ListInstance" ], "Resource": "*" } ] } -
Préparez un environnement Terraform en utilisant l'une des méthodes suivantes :
Explorer : environnement Terraform en ligne. Aucune installation n'est requise. Gratuit.
Utiliser Terraform pour créer rapidement des ressources : Terraform est préinstallé dans Cloud Shell avec des identifiants préconfigurés. Exécutez les commandes directement sans configuration préalable.
Installer et configurer Terraform : idéal pour les réseaux restreints ou les environnements de développement personnalisés.
Ressources utilisées
alicloud_ots_instance : une instance Tablestore.
Créer une instance Tablestore
-
Créez un répertoire de travail contenant un fichier nommé main.tf, puis ajoutez le code suivant au fichier main.tf.
variable "name" { default = "tf-example" } variable "region" { default = "cn-hangzhou" } provider "alicloud" { region = var.region } resource "random_integer" "default" { min = 10000 max = 99999 } # Tablestore instance resource "alicloud_ots_instance" "default" { name = "${var.name}-${random_integer.default.result}" # Instance name description = var.name # Instance description accessed_by = "Vpc" # Network type for instance access tags = { # Instance tags Created = "TF" For = "Building table" } } -
Initialisez Terraform.
terraform initRésultat attendu en cas de succès :
Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. -
Appliquez la configuration.
terraform applySaisissez
yeslorsque vous y êtes invité, puis appuyez sur Entrée. Résultat attendu en cas de succès :You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes Apply complete! Resources: 2 added, 0 changed, 0 destroyed. -
Vérifiez le résultat.
Terraform show
Exécutez cette commande pour afficher les ressources créées :
terraform showshell@Alicloud:~/ots$ terraform show # alicloud_ots_instance.default: resource "alicloud_ots_instance" "default" { accessed_by = "Vpc" description = "tf-example" id = "tf-example-xxx" instance_type = "HighPerformance" name = "tf-example-xxx" network_source_acl = [] network_type_acl = [ "VPC", ] resource_group_id = "rg-xxx" tags = { "Created" = "TF" "For" = "Building table" } } # random_integer.default: resource "random_integer" "default" { id = "xxx" max = 99999 min = 10000 result = xxx } shell@Alicloud:~/ots$Console Tablestore
Connectez-vous à la console Tablestore. Sur la page , vérifiez que votre instance apparaît.
Libérer les ressources
Pour supprimer les ressources dont vous n'avez plus besoin, exécutez la commande terraform destroy (Commandes courantes).
terraform destroy
Saisissez yes lorsque vous y êtes invité, puis appuyez sur Entrée. Résultat attendu en cas de succès :
Plan: 0 to add, 0 to change, 2 to destroy.
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
...
Destroy complete! Resources: 2 destroyed.
Exemple complet
Exécutez l'exemple de code en un seul clic. Exécuter maintenant
Exemple de code
Consultez d'autres exemples dans le dépôt More Complete Examples.
FAQ
Comment améliorer l'efficacité de la création et de la suppression d'instances Tablestore lors du provisionnement de plusieurs services cloud avec Terraform ?
Cas d'utilisation : un workflow crée une instance Tablestore, mais échoue sur une ressource suivante. Lors du rollback et de la nouvelle tentative, le nom de l'instance reste occupé, car la suppression prend du temps et les noms doivent être uniques au sein d'une région.
Solution : ajoutez un suffixe aléatoire ou un ID auto-incrémentiel au nom de l'instance. Chaque exécution utilise un nom unique, ce qui permet aux nouvelles tentatives de se dérouler immédiatement sans attendre la suppression.