5

Ich versuche, eine Diagnoseerweiterung über API in einem vorhandenen Azure-Clouddienst zu installieren. Cloud Service hat eine reservierte IP zugewiesen. Ich erhalte "Eine reservierte IP-Adresse kann nicht während des Bereitstellungsupdates hinzugefügt oder entfernt oder geändert werden.", Wenn Sie ChangeConfigurationBySlot verwenden. Kennt jemand den Trick, um das zum Laufen zu bringen? Ist das ein Fehler in der API oder mache ich etwas falsch?Azure-Bereitstellung kann nicht aktualisiert werden, wenn reservierte IPs verwendet werden

Hier ist ein entsprechender Code-Schnipsel:

var dep = client.Deployments.GetBySlot(resource.ServiceName, DeploymentSlot.Production); 
var serviceConfig = XElement.Parse(dep.Configuration, LoadOptions.SetBaseUri); 

var config = new DeploymentChangeConfigurationParameters(serviceConfig.ToString()) 
      { 
       ExtendedProperties = dep.ExtendedProperties, 
       Mode = DeploymentChangeConfigurationMode.Auto, 
       TreatWarningsAsError = false, 
       Configuration = serviceConfig.ToString(), 
       ExtensionConfiguration = new ExtensionConfiguration 
              { 
               AllRoles = new List<ExtensionConfiguration.Extension>(), 
               NamedRoles = extensionConfig 
              } 
      }; 
var result = client.Deployments.ChangeConfigurationBySlot(resource.ServiceName, DeploymentSlot.Production, config); 

Hier ist der relevante Abschnitt von Cloud-Service-Konfigurations

<ServiceConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" serviceName="IS.Admin.Azure" osFamily="4" osVersion="*" schemaVersion="2014-06.2.4" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"> 
    <Role name="IS.Admin"> 
… 
    </Role> 
    <NetworkConfiguration> 
    <VirtualNetworkSite name="is-prod" /> 
    <AddressAssignments> 
     <InstanceAddress roleName="IS.Admin"> 
     <Subnets> 
      <Subnet name="Subnet-1" /> 
     </Subnets> 
     </InstanceAddress> 
     <ReservedIPs> 
     <ReservedIP name="is-admin-rip" /> 
     </ReservedIPs> 
    </AddressAssignments> 
    </NetworkConfiguration> 
</ServiceConfiguration> 

Mein Update nichts mit Ändern/Löschen/Hinzufügen Reservierten IP-Adressen zu tun hat. Irgendwelche Ideen, wie man die Service-Konfiguration aktualisiert?

+3

Sehr geehrte anonymer: danke für den Downvote, kümmern sich um zu erklären, warum? Frage bietet viele Details und ich konnte keine Duplikate der zuvor gestellten Frage für dieses Problem finden – Igorek

+0

In der neuen Konfiguration Update, weisen Sie dann die gleiche reservierte IP und Subnetz? Der relevante Abschnitt aus der Cloud-Service-Konfiguration, ist das Update oder die erste Service-Konfiguration? – Peter

+0

im Konfigurationsupdate wird die alte Konfiguration erneut angewendet, und sie hat den Verweis auf reservierte IP, wie in der Frage – Igorek

Antwort

0

Versuchen Sie, die Bereitstellung auf Staging und einen VIP-Swap durchzuführen. Die reservierten ips sind sticky für den Slot, also sollte es nicht stören Ihre IPs in prod.

+0

per XML gezeigt. Leider ist dies keine Option. Ich versuche nur, eine vorhandene Bereitstellung zu ändern. Dies ist eine Funktion unseres Produkts, um Diagnosen für eine vorhandene Bereitstellung zu ermöglichen. Kein Zugriff auf die Codebasis des Kunden zum erneuten Bereitstellen auf die Bereitstellung – Igorek

+0

Sie können sich den DeploymentDiagnosticManager ansehen: https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.diagnostics.management.deploymentdiagnosticmanager.aspx – tripdubroot

+0

@Devian DeploymentDiagnosticManager ist seit SDK 2.5 veraltet. Wenn möglich, vermeiden Sie es, Diagnoseänderungen über den Code vorzunehmen. –

Verwandte Themen