Terraform est un outil open source qui permet de provisionner et de gérer l'infrastructure cloud de manière sécurisée et efficace. Vous pouvez utiliser Terraform pour gérer les ressources ENS (Edge Node Service). Ce tutoriel vous explique comment créer une ressource EIP ENS à l'aide de Terraform.
L'exemple de code prend en charge le déploiement en un clic. Exécuter dans Terraform Explorer pour déployer l'exemple de code en ligne sans installer Terraform.
Prérequis
Préparez les éléments suivants avant d'exécuter l'exemple de code. L'environnement d'exécution que vous choisissez détermine si vous devez configurer vous-même les identifiants :
Utilisateur RAM et paire AccessKey — Un compte Alibaba Cloud dispose d'autorisations sur toutes les ressources, et la divulgation de ses identifiants entraîne des risques importants. (Recommandé) Utilisez un utilisateur Resource Access Management (RAM) et créez une paire AccessKey pour cet utilisateur. Pour plus d'informations, consultez Créer un utilisateur RAM et Créer une AccessKey.
-
Autorisations ENS — Accordez à l'utilisateur RAM l'autorisation AliyunENSFullAccess, qui lui permet de gérer les ressources ENS. Pour plus d'informations, consultez Gérer les autorisations des utilisateurs RAM. Le document de stratégie suivant décrit les autorisations requises par l'exemple de code :
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ens:*", "Resource": "*" } ] } -
Environnement d'exécution Terraform — Préparez un environnement d'exécution Terraform en suivant l'une des méthodes suivantes :
(Recommandé) Utilisez Terraform dans Terraform Explorer : Alibaba Cloud fournit un environnement d'exécution Terraform en ligne. Vous n'avez pas besoin d'installer Terraform. Connectez-vous et utilisez Terraform en ligne. Cette option convient aux scénarios où vous souhaitez tester et déboguer rapidement Terraform sans frais. Le lien de déploiement en un clic de cette rubrique ouvre l'exemple de code dans cet environnement.
Créer des ressources avec Terraform : Alibaba Cloud Cloud Shell est livré avec les composants Terraform préinstallés et les identifiants préconfigurés, ce qui vous permet d'exécuter directement les commandes Terraform dans Cloud Shell. Cette option convient aux scénarios nécessitant un accès rapide et peu coûteux à Terraform.
-
Installer et configurer Terraform : Cette option convient aux scénarios où la connectivité réseau est médiocre ou si vous avez besoin d'un environnement de développement personnalisé.
Quelle que soit l'option choisie, assurez-vous que la version de Terraform est la v0.12.28 ou ultérieure. Pour vérifier la version installée, exécutez la commande
terraform --version.
Certaines ressources de cet exemple entraînent des frais. Libérez les ressources dès que vous n'en avez plus besoin. Pour obtenir des instructions, consultez la section Nettoyage des ressources de cette rubrique.
Ressources utilisées
alicloud_ens_eip : crée une ressource EIP ENS.
Intégrer des ressources à l'aide de Terraform
Dans cette section, vous définissez la ressource EIP ENS dans un fichier de configuration Terraform, puis vous appliquez la configuration.
-
Créez un répertoire de travail, puis créez-y un fichier de configuration nommé
main.tf. main.tf est le fichier principal Terraform, qui définit les ressources à déployer.variable "name" { default = "terraform-example" } # Create an ENS EIP resource. resource "alicloud_ens_eip" "default" { # (Optional) The description of the EIP. description = "EipDescription_autotest" # (Optional, computed) The peak bandwidth of the EIP. Default value: 5. Valid values: 5 to 10000. bandwidth = "5" # (Optional, forces new resource) The Internet service provider. isp = "cmcc" # (Required, forces new resource) The billing method of the EIP. Valid value: PayAsYouGo (pay-as-you-go). payment_type = "PayAsYouGo" # (Required, forces new resource) The ID of the ENS edge zone. ens_region_id = "cn-chenzhou-telecom_unicom_cmcc" # (Optional) The name of the EIP. eip_name = var.name # (Required, forces new resource) Valid value: 95BandwidthByMonth. internet_charge_type = "95BandwidthByMonth" } -
Exécutez la commande suivante pour initialiser l'environnement d'exécution Terraform :
terraform initInitializing the backend... Initializing provider plugins... - Reusing previous version of hashicorp/alicloud from the dependency lock file - Using previously-installed hashicorp/alicloud v1.231.0 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. -
Exécutez la commande suivante pour créer un plan d'exécution et prévisualiser les modifications :
terraform plan -
Exécutez la commande suivante pour créer la ressource EIP ENS :
terraform applySaisissez
yeset appuyez sur la touche Entrée. Attendez la fin de la commande. La sortie suivante indique que la ressource EIP ENS est créée.
Vérifier le résultat
Confirmez l'existence de la ressource EIP ENS en suivant l'une des méthodes suivantes.
Exécuter la commande terraform show
Exécutez la commande suivante pour interroger les détails des ressources créées par Terraform :
terraform show
Se connecter à la console ENS
Une fois la ressource créée, connectez-vous à la console ENS pour afficher la ressource EIP ENS que vous avez créée.

Nettoyer les ressources
Lorsque vous n'avez plus besoin des ressources que vous avez créées ou gérées à l'aide de Terraform, exécutez la commande suivante pour les libérer :
terraform destroy
Pour plus d'informations sur terraform destroy, consultez Commandes courantes.
Exemple complet
La configuration suivante correspond au code d'exemple complet pour la création d'une ressource EIP ENS. Exécuter dans Terraform Explorer pour le déployer sans préparer d'environnement d'exécution local.
Code d'exemple
variable "name" {
default = "terraform-example"
}
# Create an ENS EIP resource.
resource "alicloud_ens_eip" "default" {
# (Optional) The description of the EIP.
description = "EipDescription_autotest"
# (Optional, computed) The peak bandwidth of the EIP. Default value: 5. Valid values: 5 to 10000.
bandwidth = "5"
# (Optional, forces new resource) The Internet service provider.
isp = "cmcc"
# (Required, forces new resource) The billing method of the EIP. Valid value: PayAsYouGo (pay-as-you-go).
payment_type = "PayAsYouGo"
# (Required, forces new resource) The ID of the ENS edge zone.
ens_region_id = "cn-chenzhou-telecom_unicom_cmcc"
# (Optional) The name of the EIP.
eip_name = var.name
# (Required, forces new resource) Valid value: 95BandwidthByMonth.
internet_charge_type = "95BandwidthByMonth"
}
Pour plus d'exemples, accédez à Plus d'exemples complets et ouvrez le dossier du service correspondant.