Hızlı Başlangıç: Bicep kullanarak özel uç nokta oluşturma
Bu hızlı başlangıçta, özel uç nokta oluşturmak için Bicep'i kullanacaksınız.
Bicep, Azure kaynaklarını dağıtmak için bildirim temelli söz dizimi kullanan, etki alanına özgü bir dildir (DSL). Kısa sözdizimi, güvenilir tür güvenliği ve kod yeniden kullanımı için destek sağlar. Bicep, Azure'daki kod olarak altyapı çözümleriniz için en iyi yazma deneyimini sunar.
Ayrıca Azure portalını, Azure PowerShell'i, Azure CLI'yı veya Azure Resource Manager Şablonunu kullanarak da özel uç nokta oluşturabilirsiniz.
Önkoşullar
Etkin aboneliği olan bir Azure hesabına ihtiyacınız vardır. Henüz bir Azure hesabınız yoksa ücretsiz olarak bir hesap oluşturun.
Bicep dosyasını gözden geçirme
Bu Bicep dosyası, Azure SQL Veritabanı örneği için özel bir uç nokta oluşturur.
Bu hızlı başlangıcın kullandığı Bicep dosyası Azure Hızlı Başlangıç Şablonları'ndan alınmıştı.
@description('The administrator username of the SQL logical server')
param sqlAdministratorLogin string
@description('The administrator password of the SQL logical server.')
@secure()
param sqlAdministratorLoginPassword string
@description('Username for the Virtual Machine.')
param vmAdminUsername string
@description('Password for the Virtual Machine. The password must be at least 12 characters long and have lower case, upper characters, digit and a special character (Regex match)')
@secure()
param vmAdminPassword string
@description('The size of the VM')
param VmSize string = 'Standard_D2_v3'
@description('Location for all resources.')
param location string = resourceGroup().location
var vnetName = 'myVirtualNetwork'
var vnetAddressPrefix = '10.0.0.0/16'
var subnet1Prefix = '10.0.0.0/24'
var subnet1Name = 'mySubnet'
var sqlServerName = 'sqlserver${uniqueString(resourceGroup().id)}'
var databaseName = '${sqlServerName}/sample-db'
var privateEndpointName = 'myPrivateEndpoint'
var privateDnsZoneName = 'privatelink${environment().suffixes.sqlServerHostname}'
var pvtEndpointDnsGroupName = '${privateEndpointName}/mydnsgroupname'
var vmName = take('myVm${uniqueString(resourceGroup().id)}', 15)
var publicIpAddressName = '${vmName}PublicIP'
var networkInterfaceName = '${vmName}NetInt'
var osDiskType = 'StandardSSD_LRS'
resource sqlServer 'Microsoft.Sql/servers@2021-11-01-preview' = {
name: sqlServerName
location: location
tags: {
displayName: sqlServerName
}
properties: {
administratorLogin: sqlAdministratorLogin
administratorLoginPassword: sqlAdministratorLoginPassword
version: '12.0'
publicNetworkAccess: 'Disabled'
}
}
resource database 'Microsoft.Sql/servers/databases@2021-11-01-preview' = {
name: databaseName
location: location
sku: {
name: 'Basic'
tier: 'Basic'
capacity: 5
}
tags: {
displayName: databaseName
}
properties: {
collation: 'SQL_Latin1_General_CP1_CI_AS'
maxSizeBytes: 104857600
sampleName: 'AdventureWorksLT'
}
dependsOn: [
sqlServer
]
}
resource vnet 'Microsoft.Network/virtualNetworks@2021-05-01' = {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: [
vnetAddressPrefix
]
}
}
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2021-05-01' = {
parent: vnet
name: subnet1Name
properties: {
addressPrefix: subnet1Prefix
privateEndpointNetworkPolicies: 'Disabled'
}
}
resource privateEndpoint 'Microsoft.Network/privateEndpoints@2021-05-01' = {
name: privateEndpointName
location: location
properties: {
subnet: {
id: subnet.id
}
privateLinkServiceConnections: [
{
name: privateEndpointName
properties: {
privateLinkServiceId: sqlServer.id
groupIds: [
'sqlServer'
]
}
}
]
}
dependsOn: [
vnet
]
}
resource privateDnsZone 'Microsoft.Network/privateDnsZones@2020-06-01' = {
name: privateDnsZoneName
location: 'global'
properties: {}
dependsOn: [
vnet
]
}
resource privateDnsZoneLink 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = {
parent: privateDnsZone
name: '${privateDnsZoneName}-link'
location: 'global'
properties: {
registrationEnabled: false
virtualNetwork: {
id: vnet.id
}
}
}
resource pvtEndpointDnsGroup 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2021-05-01' = {
name: pvtEndpointDnsGroupName
properties: {
privateDnsZoneConfigs: [
{
name: 'config1'
properties: {
privateDnsZoneId: privateDnsZone.id
}
}
]
}
dependsOn: [
privateEndpoint
]
}
resource publicIpAddress 'Microsoft.Network/publicIPAddresses@2021-05-01' = {
name: publicIpAddressName
location: location
tags: {
displayName: publicIpAddressName
}
properties: {
publicIPAllocationMethod: 'Dynamic'
}
}
resource networkInterface 'Microsoft.Network/networkInterfaces@2021-05-01' = {
name: networkInterfaceName
location: location
tags: {
displayName: networkInterfaceName
}
properties: {
ipConfigurations: [
{
name: 'ipConfig1'
properties: {
privateIPAllocationMethod: 'Dynamic'
publicIPAddress: {
id: publicIpAddress.id
}
subnet: {
id: subnet.id
}
}
}
]
}
dependsOn: [
vnet
]
}
resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
name: vmName
location: location
tags: {
displayName: vmName
}
properties: {
hardwareProfile: {
vmSize: VmSize
}
osProfile: {
computerName: vmName
adminUsername: vmAdminUsername
adminPassword: vmAdminPassword
}
storageProfile: {
imageReference: {
publisher: 'MicrosoftWindowsServer'
offer: 'WindowsServer'
sku: '2019-Datacenter'
version: 'latest'
}
osDisk: {
name: '${vmName}OsDisk'
caching: 'ReadWrite'
createOption: 'FromImage'
managedDisk: {
storageAccountType: osDiskType
}
diskSizeGB: 128
}
}
networkProfile: {
networkInterfaces: [
{
id: networkInterface.id
}
]
}
}
}
Bicep dosyası birden çok Azure kaynağını tanımlar:
- Microsoft.Sql/servers: Örnek veritabanıyla SQL Veritabanı örneği.
- Microsoft.Sql/servers/databases: Örnek veritabanı.
- Microsoft.Network/virtualNetworks: Özel uç noktanın dağıtıldığı sanal ağ.
- Microsoft.Network/privateEndpoints: SQL Veritabanı örneğine erişmek için kullandığınız özel uç nokta.
- Microsoft.Network/privateDnsZones: Özel uç nokta IP adresini çözümlemek için kullandığınız bölge.
- Microsoft.Network/privateDnsZones/virtualNetworkLinks
- Microsoft.Network/privateEndpoints/privateDnsZoneGroups: Özel uç noktayı özel dns bölgesiyle ilişkilendirmek için kullandığınız bölge grubu.
- Microsoft.Network/publicIpAddresses: Sanal makineye erişmek için kullandığınız genel IP adresi.
- Microsoft.Network/networkInterfaces: Sanal makine için ağ arabirimi.
- Microsoft.Compute/virtualMachines: Özel uç noktanın SQL Veritabanı örneğine bağlantısını test etmek için kullandığınız sanal makine.
Bicep dosyasını dağıtma
Bicep dosyasını main.bicep olarak yerel bilgisayarınıza kaydedin.
Azure CLI veya Azure PowerShell kullanarak Bicep dosyasını dağıtın.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters sqlAdministratorLogin=<admin-login> vmAdminUsername=<vm-login>
Not
admin-login değerini SQL mantıksal sunucusunun kullanıcı adıyla değiştirin<.> vm-login değerini sanal makinenin kullanıcı adıyla değiştirin<.> sqlAdministratorLoginPassword girmeniz istenir. Ayrıca en az 12 karakter uzunluğunda olması ve en az bir küçük ve büyük harf karakter ile bir özel karakter içermesi gereken vmAdminPassword girmeniz de istenir.
Dağıtım tamamlandığında, dağıtımın başarılı olduğunu belirten bir ileti görmeniz gerekir.
Dağıtımı doğrulama
Not
Bicep dosyası myVm{uniqueid} sanal makinesi kaynağı ve SQL Veritabanı sqlserver{uniqueid} kaynağı için benzersiz bir ad oluşturur. Oluşturduğunuz değeri {uniqueid} ile değiştir.
İnternet'ten bir sanal makineye bağlanma
Aşağıdakileri yaparak İnternet'ten myVm{uniqueid} vm'sine bağlanın:
Azure portalı arama çubuğuna myVm{uniqueid} girin.
Bağlan'ı seçin. Sanal makineye bağlan açılır.
RDP Dosyasını İndir’i seçin. Azure bir Uzak Masaüstü Protokolü (RDP) dosyası oluşturur ve dosyayı bilgisayarınıza indirir.
İndirilen RDP dosyasını açın.
a. İstendiğinde Bağlan’ı seçin.
b. VM'yi oluştururken belirttiğiniz kullanıcı adını ve parolayı girin.Not
Vm'yi oluştururken girdiğiniz kimlik bilgilerini belirtmek için Diğer seçenekler>Farklı bir hesap kullan'ı seçmeniz gerekebilir.
Tamam'ı seçin.
Oturum açma işlemi sırasında bir sertifika uyarısı alabilirsiniz. Bunu yaparsanız Evet'i veya Devam'ı seçin.
VM masaüstü göründükten sonra yerel masaüstünüze geri dönmek için simge durumuna küçültün.
vm'den özel olarak SQL Veritabanı sunucusuna erişme
Özel uç noktayı kullanarak VM'den SQL Veritabanı sunucusuna bağlanmak için aşağıdakileri yapın:
myVM{uniqueid} uygulamasının Uzak Masaüstünde PowerShell'i açın.
Şu komutu çalıştırın:
nslookup sqlserver{uniqueid}.database.windows.net
Şuna benzer bir ileti alırsınız:
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: sqlserver.privatelink.database.windows.net Address: 10.0.0.5 Aliases: sqlserver.database.windows.net
SQL Server Management Studio'yu yükleyin.
Sunucuya bağlan bölmesinde aşağıdakileri yapın:
- Sunucu türü için Veritabanı Altyapısı'nu seçin.
- Sunucu adı için sqlserver{uniqueid}.database.windows.net öğesini seçin.
- Kullanıcı Adı için, daha önce sağlanan kullanıcı adını girin.
- Parola için daha önce sağlanan parolayı girin.
- Parolayı anımsa için Evet'i seçin.
Bağlan'ı seçin.
Sol bölmede Veritabanları'nı seçin. İsteğe bağlı olarak, sample-db'den bilgi oluşturabilir veya sorgulayabilirsiniz.
myVm{uniqueid} ile Uzak Masaüstü bağlantısını kapatın.
Kaynakları temizleme
Özel bağlantı hizmetiyle oluşturduğunuz kaynaklara artık ihtiyacınız kalmadığında kaynak grubunu silin. Bu, özel bağlantı hizmetini ve ilgili tüm kaynakları kaldırır.
az group delete --name exampleRG
Sonraki adımlar
Özel uç noktaları destekleyen hizmetler hakkında daha fazla bilgi için bkz: