Ejemplos de Terraform/OpenTofu para Autonomous Database Services for Azure
Con HashiCorp Terraform, puede aprovisionar y gestionar recursos para Oracle Database@Azure mediante la herramienta Terraform que permite aprovisionar y gestionar infraestructura en Oracle Cloud Infrastructure (OCI).
Para obtener más información sobre implantaciones de referencia para módulos Terraform o OpenTofu, consulte los siguientes enlaces:
Nota
- En este documento se describen ejemplos de aprovisionamiento y gestión de recursos de Oracle Database@Azure a través de dos (2) proveedores de Terraform,
AzureRM
yAzAPI
. Compruebe el ejemplo que está utilizando para la API adecuada.- Para obtener documentación detallada sobre el proveedor
AzureRM
y el origen de datos, consulte https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs - Para obtener documentación detallada sobre el proveedor
AzAPI
y el origen de datos, consulte https://registry.terraform.io/providers/Azure/azapi/latest/docs
- Para obtener documentación detallada sobre el proveedor
- Las muestras utilizan valores de ejemplo con fines ilustrativos. Debe sustituirlos por su propia configuración.
- Los ejemplos de
AzAPI
utilizan Propiedades dinámicas de AzAPI en lugar deJSONEncode
para obtener un comportamiento de Terraform más nativo.
Servicios de Oracle Autonomous Database
Crear una instancia de Oracle Autonomous Database mediante
AzureRM
resource "azurerm_oracle_autonomous_database" "example" {
name = "TestName"
display_name = "TestName"
resource_group_name = azurerm_resource_group.example.name
location = "eastus"
compute_model = "ECPU"
compute_count = "2"
license_model = "BringYourOwnLicense"
backup_retention_period_in_days = 12
auto_scaling_enabled = false
auto_scaling_for_storage_enabled = false
mtls_connection_required = false
data_storage_size_in_tbs = "1"
db_workload = "OLTP"
admin_password = "TestPass#2024#"
db_version = "19c"
character_set = "AL32UTF8"
ncharacter_set = "AL16UTF16"
subnet_id = azurerm_subnet.virtual_network_subnet.id
vnet_id = azurerm_virtual_network.virtual_network.id
lifecycle {
ignore_changes = [
admin_password
]
}
}
Recuperar una instancia de Oracle Autonomous Database mediante
AzureRM
data "azurerm_oracle_autonomous_database" "example" {
name = azurerm_oracle_autonomous_database.example.name
resource_group_name = azurerm_oracle_autonomous_database.example.resource_group_name
}
Recuperar un juego de caracteres de Oracle Autonomous Database mediante
AzureRM
data "azurerm_oracle_adbs_character_sets" "example" {
location = "eastus"
}
Recuperar un juego de caracteres nacional de Oracle Autonomous Database mediante
AzureRM
data "azurerm_oracle_adbs_national_character_sets" "example" {
location = "eastus"
}
Cree una subred delegada para Oracle Database@Azure mediante
AzAPI
resource "azurerm_resource_group" "resource_group" {
location = "eastus"
name = "ExampleRG"
}
module "avm_odbas_network" {
source = "Azure/avm-res-network-virtualnetwork/azurerm"
version = "0.2.4"
address_space = ["10.1.0.0/16"]
location = "eastus"
name = "vnet"
resource_group_name = azurerm_resource_group.resource_group.name
subnets = {
delegated = {
name = delegated
address_prefixes = ["10.1.1.0/24"]
delegation = [{
name = "Oracle.Database/networkAttachments"
service_delegation = {
name = "Oracle.Database/networkAttachments"
actions = ["Microsoft.Network/networkinterfaces/*", "Microsoft.Network/virtualNetworks/subnets/join/action"]
}
}]
}
}
}
Crear una instancia de Oracle Autonomous Database mediante
AzAPI
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
azurerm = {
source = "hashicorp/azurerm"
}
}
}
data "azurerm_resource_group" "resource_group" {
name = "ExampleRG"
}
data "azurerm_virtual_network" "virtual_network" {
name = "ExampleRG_vnet"
resource_group_name = "ExampleRG"
}
data "azurerm_subnet" "subnet" {
name = "delegated"
virtual_network_name = "ExampleRG_vnet"
resource_group_name = "ExampleRG"
}
resource "azapi_resource" "autonomous_db" {
type = "Oracle.Database/autonomousDatabases@2023-09-01"
parent_id = data.azurerm_resource_group.resource_group.id
name = "demodb"
schema_validation_enabled = false
timeouts {
create = "3h"
update = "2h"
delete = "1h"
}
body = {
"location" : "eastus",
"properties" : {
"displayName" : "demodb",
"computeCount" : 2,
"dataStorageSizeInTbs" : 1,
"adminPassword" : "TestPass#2024#",
"dbVersion" : "19c",
"licenseModel" : "LicenseIncluded",
"dataBaseType" : "Regular",
"computeModel" : "ECPU",
"dbWorkload" : "DW",
"permissionLevel" : "Restricted",
"characterSet" : "AL32UTF8",
"ncharacterSet" : "AL16UTF16",
"isAutoScalingEnabled" : true,
"isAutoScalingForStorageEnabled" : false,
"vnetId" : data.azurerm_virtual_network.virtual_network.id
"subnetId" : data.azurerm_subnet.subnet.id
}
response_export_values = ["id", "properties.ocid", "properties"]
}