2016-07-14 10 views
0

Ich habe einen Azure Cloud-Dienst mit mehreren Webrollen in einem virtuellen Azure-Netzwerk. Ich möchte die privaten IP-Adressen der Rollen als statisch festlegen, damit die Webrollen über das Netzwerk kommunizieren können. Die privaten IP-Adressen ändern sich jedoch, wenn der Cloud-Dienst aktualisiert wird. Wie kann ich die private IP-Adresse als statisch festlegen, damit sie sich nicht bei jeder Bereitstellung ändert? Ich will das Gleiche tun ich mit virtuellen Maschinen können:Wie kann ich die private IP-Adresse einer Azure-Webrolle als statisch festlegen?

enter image description here

+0

__ "Ich möchte die privaten IP-Adressen der Rollen als statisch festlegen, damit die Webrollen über das Netzwerk kommunizieren können." __ - Können Sie etwas erweitern? Welche Art von Daten müssen Sie austauschen? Ich schätze, Sie schließen einen Shared-Key-Value-Store oder Pub-Sub wie Redis-Cache oder ein Queue-System wie Azure Storage Queues aus. Aber du sagst nicht warum. – evilSnobu

+0

__ "Wie kann ich die private IP-Adresse als statisch festlegen, so dass sie sich nicht mit jeder Bereitstellung ändert?" __ - Hier ist das Problem damit. Was ist, wenn Ihre Bereitstellung in einem Monat 5 Instanzen mehr hat (2 Web, 3 Worker)? Nun, welche IP ist welche? – evilSnobu

Antwort

0

Wenn Sie wirklich eine statische IP-Adresse für Ihre Rollen oder VMs haben wollen, müssen Sie die reservierte IP-Adressen verfügen verwenden. Maximal 20 reservierte IP-Adressen sind pro Abonnement verfügbar. https://azure.microsoft.com/en-in/documentation/articles/virtual-networks-reserved-public-ip/

In Powershell können Sie dies tun, um eine neue reservierte IP

$ReservedIP = New-AzureReservedIP -ReservedIPName "FirewallIP" -Label "WebAppFirewallIP" -Location "Japan West" 

In Service Konfiguration einer Rolle erstellen Sie so festlegen können,

<?xml version="1.0" encoding="utf-8"?> 
<ServiceConfiguration serviceName="ReservedIPSample" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2014-01.2.3"> 
    <Role name="WebRole1"> 
    <Instances count="1" /> 
    <ConfigurationSettings> 
     <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" /> 
    </ConfigurationSettings> 
    </Role> 
    <NetworkConfiguration> 
    <AddressAssignments> 
     <ReservedIPs> 
     <ReservedIP name="MyReservedIP"/> 
     </ReservedIPs> 
    </AddressAssignments> 
    </NetworkConfiguration> 
</ServiceConfiguration> 

Im Allgemeinen aber, wenn Sie Wenn Sie eine Bereitstellung nicht löschen, haben Sie dieselbe IP-Adresse für einen bestimmten Cloud-Dienst.

+0

Ist dies jedoch mit privaten IP-Adressen möglich? Ich möchte in der Lage sein, dasselbe mit virtuellen Maschinen zu tun (Ich habe meiner Frage einen Screenshot hinzugefügt) –

+0

in einem vnet kann eine statische private IP für VMs, Cloud-Dienste usw. eingestellt werden, während reservierte IP-Adressen behoben sind für eine bestimmte Cloud-Ressource und sie fungieren als VIP. Sie sind statisch, aber ich glaube, dass sie nicht privat sind. Ich schätze, meine Antwort hilft vielleicht nicht wirklich. – Aravind

+0

Es gibt immer 'RoleEnvironment.CurrentRoleInstance.Role.Instances', wenn das, was Sie suchen, die Sammlung aller aktiven Instanzen oder' Environment.MachineName' ist, um den Hostnamen abzurufen. Sie scheinen zu versuchen, den Zustand mit Ihren Instanzen zu verbinden, der ein wenig gegen die Natur des Dienstes kämpft (staatenlos). – evilSnobu

Verwandte Themen