Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:Azure SQL Database
Het maken van één database is de snelste en eenvoudigste optie om een database te maken in Azure SQL Database. In deze quickstart ziet u hoe u een individuele database maakt met behulp van Terraform.
Terraform maakt de definitie, preview en implementatie van de cloudinfrastructuur mogelijk. Met Behulp van Terraform maakt u configuratiebestanden met behulp van de HCL-syntaxis. Met de HCL-syntaxis kunt u de cloudprovider opgeven, zoals Azure, en de elementen waaruit uw cloudinfrastructuur bestaat. Nadat u uw configuratiebestanden hebt gemaakt, maakt u een uitvoeringsplan waarmee u een voorbeeld van uw infrastructuurwijzigingen kunt bekijken voordat ze worden geïmplementeerd. Zodra u de wijzigingen hebt gecontroleerd, past u het uitvoeringsplan toe om de infrastructuur te implementeren.
In dit artikel leert u het volgende:
- Maak een willekeurige waarde voor de naam van de Azure-resourcegroep met behulp van random_pet.
- Maak een Azure-resourcegroep met behulp van azurerm_resource_group.
- Maak een willekeurige waarde voor de logische server in Azure met behulp van random_pet.
- Maak een willekeurig wachtwoord voor de logische server in Azure met behulp van random_password.
- Maak een logische server in Azure met behulp van azurerm_mssql_server.
- Maak een database in Azure SQL Database met behulp van azurerm_mssql_database.
Vereiste voorwaarden
Machtigingen
Om databases te maken via Transact-SQL: CREATE DATABASE machtigingen zijn nodig. Als u een database wilt maken, moet de aanmelding ofwel van de serverbeheerder zijn (gemaakt toen de logische server van Azure SQL Database werd ingericht), de Microsoft Entra-beheerder van de server zijn, of moet het een lid zijn van de databaserol dbmanager in master. Zie CREATE DATABASE voor meer informatie.
Als u databases wilt maken via Azure Portal, PowerShell, Azure CLI of REST API: Azure RBAC-machtigingen zijn nodig, met name de rol Inzender, SQL DB-inzender of SQL Server-inzender voor Azure RBAC. Zie ingebouwde Rollen van Azure RBAC voor meer informatie.
De Terraform-code implementeren
Opmerking
De voorbeeldcode voor dit artikel bevindt zich in de Azure Terraform GitHub-opslagplaats. U kunt het logboekbestand met de testresultaten van de huidige en vorige versies van Terraform bekijken.
Maak een map waarin u de Terraform-voorbeeldcode wilt testen en uitvoeren en deze de huidige map wilt maken.
Maak een bestand met de naam
providers.tfen voeg de volgende code in:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Maak een bestand met de naam
main.tfen voeg de volgende code in:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { name = random_pet.rg_name.id location = var.resource_group_location } resource "random_pet" "azurerm_mssql_server_name" { prefix = "sql" } resource "random_password" "admin_password" { count = var.admin_password == null ? 1 : 0 length = 20 special = true min_numeric = 1 min_upper = 1 min_lower = 1 min_special = 1 } locals { admin_password = try(random_password.admin_password[0].result, var.admin_password) } resource "azurerm_mssql_server" "server" { name = random_pet.azurerm_mssql_server_name.id resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location administrator_login = var.admin_username administrator_login_password = local.admin_password version = "12.0" } resource "azurerm_mssql_database" "db" { name = var.sql_db_name server_id = azurerm_mssql_server.server.id }Maak een bestand met de naam
variables.tfen voeg de volgende code in:variable "resource_group_location" { type = string description = "Location for all resources." default = "eastus" } variable "resource_group_name_prefix" { type = string description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." default = "rg" } variable "sql_db_name" { type = string description = "The name of the SQL Database." default = "SampleDB" } variable "admin_username" { type = string description = "The administrator username of the SQL logical server." default = "azureadmin" } variable "admin_password" { type = string description = "The administrator password of the SQL logical server." sensitive = true default = null }Maak een bestand met de naam
outputs.tfen voeg de volgende code in:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "sql_server_name" { value = azurerm_mssql_server.server.name } output "admin_password" { sensitive = true value = local.admin_password }
Terraform initialiseren
Voer terraform init uit om de Terraform-implementatie te initialiseren. Met deze opdracht wordt de Azure-provider gedownload die is vereist voor het beheren van uw Azure-resources.
terraform init -upgrade
Belangrijkste punten:
- Met
-upgradede parameter worden de benodigde providerinvoegtoepassingen bijgewerkt naar de nieuwste versie die voldoet aan de versiebeperkingen van de configuratie.
Een Terraform-uitvoeringsplan maken
Voer terraform-plan uit om een uitvoeringsplan te maken.
terraform plan -out main.tfplan
Belangrijkste punten:
- De
terraform planopdracht maakt een uitvoeringsplan, maar voert het niet uit. In plaats daarvan wordt bepaald welke acties nodig zijn om de configuratie te maken die is opgegeven in uw configuratiebestanden. Met dit patroon kunt u controleren of het uitvoeringsplan aan uw verwachtingen voldoet voordat u wijzigingen aanbrengt in de werkelijke resources. - Met de optionele
-outparameter kunt u een uitvoerbestand voor het plan opgeven. Door de-outparameter te gebruiken, zorgt u ervoor dat het plan dat u hebt gecontroleerd precies wordt toegepast.
Een Terraform-uitvoeringsplan toepassen
Voer terraform apply uit om het uitvoeringsplan op uw cloudinfrastructuur toe te passen.
terraform apply main.tfplan
Belangrijkste punten:
- In het voorbeeld
terraform applyopdracht wordt ervan uitgegaan dat u eerderterraform plan -out main.tfplanhebt uitgevoerd. - Als u een andere bestandsnaam voor de
-outparameter hebt opgegeven, gebruikt u diezelfde bestandsnaam in de aanroep naarterraform apply. - Als u de
-out-parameter niet hebt gebruikt, roepterraform applydan zonder parameters aan.
De resultaten controleren
Haal de naam van de Azure-resourcegroep op.
resource_group_name=$(terraform output -raw resource_group_name)Haal de naam van de nieuwe logische server op.
sql_server_name=$(terraform output -raw sql_server_name)Voer az sql db list uit om de namen van alle databases op uw server weer te geven.
az sql db list \ --resource-group $resource_group_name \ --server $sql_server_name \ --output table
De hulpbronnen opschonen
Voer de volgende stappen uit wanneer u de resources die zijn gemaakt via Terraform niet meer nodig hebt:
Voer terraform-plan uit en geef de
destroyvlag op.terraform plan -destroy -out main.destroy.tfplanBelangrijkste punten:
- De
terraform planopdracht maakt een uitvoeringsplan, maar voert het niet uit. In plaats daarvan wordt bepaald welke acties nodig zijn om de configuratie te maken die is opgegeven in uw configuratiebestanden. Met dit patroon kunt u controleren of het uitvoeringsplan aan uw verwachtingen voldoet voordat u wijzigingen aanbrengt in de werkelijke resources. - Met de optionele
-outparameter kunt u een uitvoerbestand voor het plan opgeven. Door de-outparameter te gebruiken, zorgt u ervoor dat het plan dat u hebt gecontroleerd precies wordt toegepast.
- De
Voer terraform apply uit om het uitvoeringsplan toe te passen.
terraform apply main.destroy.tfplan
Problemen met Terraform in Azure oplossen
Veelvoorkomende problemen oplossen bij het gebruik van Terraform in Azure