Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Database for MySQL je spravovaná služba, která slouží k provozu, správě a škálování vysoce dostupných databází MySQL v cloudu. V tomto rychlém startu pomocí Bicep vytvoříte server Azure Database for MySQL s integrací virtuální sítě. Server můžete vytvořit na webu Azure Portal, v Azure CLI nebo v Azure PowerShellu.
Bicep je jazyk specifický pro doménu (DSL), který k nasazování prostředků Azure používá deklarativní syntaxi. Poskytuje stručnou syntaxi, spolehlivou bezpečnost typů a podporu pro opakované použití kódu. Bicep nabízí nejlepší prostředí pro vytváření obsahu pro řešení infrastruktury jako kódu v Azure.
Požadavky
Potřebujete účet Azure s aktivním předplatným. Vytvořte si ho zdarma.
- Pokud chcete kód spustit místně, Azure PowerShell.
Kontrola souboru Bicep
Server Azure Database for MySQL vytvoříte s definovanou sadou výpočetních prostředků a prostředků úložiště. Další informace najdete v cenových úrovních Služby Azure Database for MySQL. Server vytvoříte v rámci skupiny prostředků Azure.
Soubor Bicep použitý v tomto rychlém startu pochází ze šablon Azure Pro rychlý start.
@description('Server Name for Azure database for MySQL')
param serverName string
@description('Database administrator login name')
@minLength(1)
param administratorLogin string
@description('Database administrator password')
@minLength(8)
@secure()
param administratorLoginPassword string
@description('Azure database for MySQL compute capacity in vCores (2,4,8,16,32)')
param skuCapacity int = 2
@description('Azure database for MySQL sku name ')
param skuName string = 'GP_Gen5_2'
@description('Azure database for MySQL Sku Size ')
param SkuSizeMB int = 5120
@description('Azure database for MySQL pricing tier')
@allowed([
'Basic'
'GeneralPurpose'
'MemoryOptimized'
])
param SkuTier string = 'GeneralPurpose'
@description('Azure database for MySQL sku family')
param skuFamily string = 'Gen5'
@description('MySQL version')
@allowed([
'5.6'
'5.7'
'8.0'
])
param mysqlVersion string = '8.0'
@description('Location for all resources.')
param location string = resourceGroup().location
@description('MySQL Server backup retention days')
param backupRetentionDays int = 7
@description('Geo-Redundant Backup setting')
param geoRedundantBackup string = 'Disabled'
@description('Virtual Network Name')
param virtualNetworkName string = 'azure_mysql_vnet'
@description('Subnet Name')
param subnetName string = 'azure_mysql_subnet'
@description('Virtual Network RuleName')
param virtualNetworkRuleName string = 'AllowSubnet'
@description('Virtual Network Address Prefix')
param vnetAddressPrefix string = '10.0.0.0/16'
@description('Subnet Address Prefix')
param subnetPrefix string = '10.0.0.0/16'
var firewallrules = [
{
Name: 'rule1'
StartIpAddress: '0.0.0.0'
EndIpAddress: '255.255.255.255'
}
{
Name: 'rule2'
StartIpAddress: '0.0.0.0'
EndIpAddress: '255.255.255.255'
}
]
resource vnet 'Microsoft.Network/virtualNetworks@2023-09-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
vnetAddressPrefix
]
}
}
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2023-09-01' = {
parent: vnet
name: subnetName
properties: {
addressPrefix: subnetPrefix
}
}
resource mysqlDbServer 'Microsoft.DBforMySQL/servers@2017-12-01' = {
name: serverName
location: location
sku: {
name: skuName
tier: SkuTier
capacity: skuCapacity
size: '${SkuSizeMB}' //a string is expected here but a int for the storageProfile...
family: skuFamily
}
properties: {
createMode: 'Default'
version: mysqlVersion
administratorLogin: administratorLogin
administratorLoginPassword: administratorLoginPassword
storageProfile: {
storageMB: SkuSizeMB
backupRetentionDays: backupRetentionDays
geoRedundantBackup: geoRedundantBackup
}
minimalTlsVersion: 'TLS1_2'
sslEnforcement: 'Enabled'
}
resource virtualNetworkRule 'virtualNetworkRules@2017-12-01' = {
name: virtualNetworkRuleName
properties: {
virtualNetworkSubnetId: subnet.id
ignoreMissingVnetServiceEndpoint: true
}
}
}
@batchSize(1)
resource firewallRules 'Microsoft.DBforMySQL/servers/firewallRules@2017-12-01' = [for rule in firewallrules: {
parent: mysqlDbServer
name: rule.Name
properties: {
startIpAddress: rule.StartIpAddress
endIpAddress: rule.EndIpAddress
}
}]
output location string = location
output name string = mysqlDbServer.name
output resourceGroupName string = resourceGroup().name
output resourceId string = mysqlDbServer.id
Soubor Bicep definuje pět prostředků Azure:
- Microsoft.Network/virtualNetworks
- Microsoft.Network/virtualNetworks/subnets
- Microsoft.DBforMySQL/servery
- Microsoft.DBforMySQL/servers/virtualNetworkRules
- Microsoft.DBforMySQL/servers/firewallRules
Nasazení souboru Bicep
Uložte soubor Bicep jako main.bicep do místního počítače.
Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu.
New-AzResourceGroup -Name exampleRG -Location eastus New-AzResourceGroupDeployment -ResourceGroupName exampleRG -TemplateFile ./main.bicep -serverName "<server-name>" -administratorLogin "<admin-login>"Poznámka:
Nahraďte <název> serveru názvem serveru pro Azure Database for MySQL. Nahraďte <přihlašovací jméno> správce databáze. Zobrazí se také výzva k zadání administratorLoginPassword. Minimální délka hesla je osm znaků.
Po dokončení nasazení by se měla zobrazit zpráva, že nasazení bylo úspěšné.
Kontrola nasazených prostředků
Pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu můžete zobrazit seznam nasazených prostředků ve skupině prostředků.
Get-AzResource -ResourceGroupName exampleRG
Vyčištění prostředků
Pokud už ji nepotřebujete, odstraňte skupinu prostředků a její prostředky pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.
Remove-AzResourceGroup -Name exampleRG