Ich versuche, mehrere virtuelle Maschinen in einem Cloud-Service hinzuzufügen.Mehrere virtuelle Maschinen mit unterschiedlichen URLs in einem azure Cloud-Dienst?
Momentan kann ich in diesem Cloud-Service einen Cloud-Service und eine virtuelle Maschine erstellen. Danach versuche ich, demselben Sloud-Dienst in derselben Implementierung eine weitere virtuelle Maschine hinzuzufügen, und dieser Prozess ist ebenfalls erfolgreich, aber was ich nicht verstehen kann, ist, wie man eine andere URL für diese neue virtuelle Maschine setzt !?
Weil jetzt, URL für erste virtuelle Maschine ist myservicename.cloudapp.net, und für die zweite virtuelle Maschine ist das gleiche! Und sie haben dieselbe IP. Wie kann das sein? Wie kann ich auf die zweite virtuelle Maschine zugreifen, wenn sie dieselbe URL hat?
Hafen für erste vm ist: 80 und für die zweite vm ist 81.
Fragen:
Wie individuell vm acces?
Gibt es eine Möglichkeit, URLs wie: myservicename.vmname.cloudapp.net? Damit ersten vm URL ist: myservicename.vmname1.cloudapp.net und URL für die zweite Maschine: myservicename.vmname2.cloudapp.net
Code:
privat async Aufgabe CreateVirtualMachine() { DeploymentGetResponse deploymentResponse = erwarten _computeManagementClient.Deployments.GetBySlotAsync ("myservicename", DeploymentSlot.Production);
if (deploymentResponse == null)
{
var parameters = new VirtualMachineCreateDeploymentParameters
{
DeploymentSlot = DeploymentSlot.Production,
Name = "mservicename",
Label = "myservicename"
};
parameters.Roles.Add(new Role
{
OSVirtualHardDisk = new OSVirtualHardDisk
{
HostCaching = VirtualHardDiskHostCaching.ReadWrite,
SourceImageName = "imagename"
},
RoleName = "vmname",
RoleType = VirtualMachineRoleType.PersistentVMRole.ToString(),
RoleSize = VirtualMachineRoleSize.Small,
ProvisionGuestAgent = true
});
parameters.Roles[0].ConfigurationSets.Add(new ConfigurationSet
{
ComputerName = "vmname",
ConfigurationSetType = ConfigurationSetTypes.LinuxProvisioningConfiguration,
HostName = "vmname",
AdminUserName = "adminusername",
AdminPassword = "adminpass",
UserName = "username",
UserPassword = "userpass",
DisableSshPasswordAuthentication = false,
});
parameters.Roles[0].ConfigurationSets.Add(new ConfigurationSet
{
ConfigurationSetType = ConfigurationSetTypes.NetworkConfiguration,
InputEndpoints = new List<InputEndpoint>()
{
new InputEndpoint()
{
Name = "HTTP",
Protocol = InputEndpointTransportProtocol.Tcp,
LocalPort = 80,
Port = 80
}
}
});
var response = await _computeManagementClient.VirtualMachines.CreateDeploymentAsync("mservicename", parameters);
}
else
{
var createParameters = new VirtualMachineCreateParameters
{
OSVirtualHardDisk = new OSVirtualHardDisk
{
HostCaching = VirtualHardDiskHostCaching.ReadWrite,
SourceImageName = "imagename"
},
RoleName = "vmname",
RoleSize = VirtualMachineRoleSize.Small,
ProvisionGuestAgent = true,
ConfigurationSets = new List<ConfigurationSet>
{
new ConfigurationSet
{
ComputerName = "vmname",
ConfigurationSetType = ConfigurationSetTypes.LinuxProvisioningConfiguration,
HostName = "vmname",
AdminUserName = "adminusername",
AdminPassword = "adminpass",
UserName = "username",
UserPassword = "userpass",
DisableSshPasswordAuthentication = false
},
new ConfigurationSet
{
ConfigurationSetType = ConfigurationSetTypes.NetworkConfiguration,
InputEndpoints = new List<InputEndpoint>()
{
new InputEndpoint()
{
Name = "HTTP",
Protocol = InputEndpointTransportProtocol.Tcp,
LocalPort = 81,
Port = 81
}
}
}
}
};
var responseCreate = await _computeManagementClient.VirtualMachines.CreateAsync("mservicename", deploymentResponse.Name, createParameters);
}
}
Vielen Dank für Ihre Antwort. – gomila
@gomila Erstens: Sie sollten eine "Upvote" und/oder akzeptieren eine Antwort als die richtige Art zu sagen "Danke" - kein Kommentar. Zweitens: Bitte stellen Sie keine zusätzlichen Fragen, in den Bearbeitungen. Stellen Sie eine andere Frage. Drei: Diese Fragen sind wirklich für ServerFault, nicht StackOverflow. VIER: Aufgrund Ihrer Bearbeitungen haben Sie einige Begriffe verwirrt (z. B. Speicherkonten haben nichts mit VM-Limits zu tun). –