Megosztás a következőn keresztül:


Rövid útmutató: Privát végpont létrehozása a Bicep használatával

Ebben a rövid útmutatóban a Bicep használatával hoz létre privát végpontot.

A Bicep tartományspecifikus nyelv (DSL), amely deklaratív szintaxist használ az Azure-erőforrások üzembe helyezéséhez. Tömör szintaxist és megbízható típusbiztonságot kínál, valamint biztosítja a kódok újrafelhasználhatóságát. A Bicep a legjobb szerzői élményt nyújtja az Azure-beli infrastruktúra-kódmegoldásokhoz.

Privát végpontot is létrehozhat az Azure Portal, az Azure PowerShell, az Azure CLI vagy egy Azure Resource Manager-sablon használatával.

A privát végpont gyorsútmutatójában létrehozott erőforrások diagramja.

Előfeltételek

Aktív előfizetéssel rendelkező Azure-fiókra van szüksége. Ha még nem rendelkezik Azure-fiókkal, hozzon létre ingyenes fiókot.

A Bicep-fájl áttekintése

Ez a Bicep-fájl létrehoz egy privát végpontot az Azure SQL Database egy példányához.

A rövid útmutató által használt Bicep-fájl az Azure Gyorsindítási sablonokból származik.

@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
        }
      ]
    }
  }
}

A Bicep-fájl több Azure-erőforrást határoz meg:

A Bicep-fájl üzembe helyezése

  1. Mentse a Bicep-fájlt main.bicep néven a helyi számítógépre.

  2. Telepítse a Bicep-fájlt az Azure CLI vagy az Azure PowerShell használatával.

    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>
    

    Feljegyzés

    Cserélje le <a rendszergazdai bejelentkezést> az SQL logikai kiszolgáló felhasználónevére. Cserélje le <a virtuális gép bejelentkezési adatait> a virtuális gép felhasználónevére. A rendszer kérni fogja, hogy adja meg az sqlAdministratorLoginPassword parancsot. A rendszer kérni fogja a vmAdminPassword beírását is, amelynek legalább 12 karakter hosszúnak kell lennie, és legalább egy kis- és nagybetűt, valamint egy speciális karaktert kell tartalmaznia.

    Amikor az üzembe helyezés befejeződött, egy üzenetnek kell megjelennie, amely jelzi, hogy az üzembe helyezés sikeres volt.

Az üzembe helyezés ellenőrzése

Feljegyzés

A Bicep-fájl létrehoz egy egyedi nevet a virtuális gép myVm{uniqueid} erőforrásának és az SQL Database sqlserver{uniqueid} erőforrásának. Cserélje le a létrehozott értéket a következőre : {uniqueid}.

Kapcsolódás virtuális géphez az internetről

Csatlakozzon a virtuális gép myVm{uniqueid} virtuális gépéhez az internetről az alábbi módon:

  1. Az Azure Portal keresősávján adja meg a myVm{uniqueid} kifejezést.

  2. Válassza a Kapcsolódás lehetőséget. Megnyílik a virtuális géphez való csatlakozás.

  3. Válassza az RDP-fájl letöltése lehetőséget. Az Azure létrehoz egy RDP-fájlt, és letölti azt a számítógépre.

  4. Nyissa meg a letöltött RDP-fájlt.

    a. Ha a rendszer kéri, válassza a Csatlakozás lehetőséget.
    b. Adja meg a virtuális gép létrehozásakor megadott felhasználónevet és jelszót.

    Feljegyzés

    Előfordulhat, hogy a További lehetőségek lehetőséget>kell választania: A virtuális gép létrehozásakor megadott hitelesítő adatok megadásához használjon másik fiókot.

  5. Kattintson az OK gombra.

    A bejelentkezés során egy figyelmeztetés jelenhet meg a tanúsítvánnyal kapcsolatban. Ha igen, válassza az Igen vagy a Folytatás lehetőséget.

  6. Miután megjelenik a virtuális gép asztala, kis méretűre kell csökkenteni, hogy visszalépjen a helyi asztalra.

Az SQL Database-kiszolgáló privát elérése a virtuális gépről

Ha a virtuális gépről szeretne csatlakozni az SQL Database-kiszolgálóhoz a privát végpont használatával, tegye a következőket:

  1. Nyissa meg a PowerShellt a myVM{uniqueid} távoli asztalán.

  2. Futtassa az alábbi parancsot:

    nslookup sqlserver{uniqueid}.database.windows.net

    A következőhöz hasonló üzenet jelenik meg:

      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
    
  3. Telepítse az SQL Server Management Studiót.

  4. A Csatlakozás kiszolgálóhoz panelen tegye a következőket:

    • Kiszolgálótípus esetén válassza az Adatbázismotor lehetőséget.
    • Kiszolgálónév esetén válassza az sqlserver{uniqueid}.database.windows.net lehetőséget.
    • Felhasználónévként adja meg a korábban megadott felhasználónevet.
    • A Jelszó mezőbe írja be a korábban megadott jelszót.
    • A jelszó megjegyzéséhez válassza az Igen lehetőséget.
  5. Válassza a Kapcsolódás lehetőséget.

  6. A bal oldali panelen válassza az Adatbázisok lehetőséget. Igény szerint létrehozhat vagy lekérdezhet adatokat a mintaadatbázisból.

  7. Zárja be a távoli asztali kapcsolatot a myVm{uniqueid} szolgáltatással.

Az erőforrások eltávolítása

Ha már nincs szüksége a privát kapcsolat szolgáltatással létrehozott erőforrásokra, törölje az erőforráscsoportot. Ezzel eltávolítja a privát kapcsolat szolgáltatást és az összes kapcsolódó erőforrást.

az group delete --name exampleRG

Következő lépések

A privát végpontokat támogató szolgáltatásokkal kapcsolatos további információkért lásd: