Exportieren (0) Drucken
Alle erweitern

Einrichten eines Cloud-Diensts für Azure

Letzte Aktualisierung: Oktober 2014

Um einen Cloud-Dienst einzurichten, müssen Sie das Dienstmodell erstellen. Das Dienstmodell stellt Definitionseinstellungen für den Cloud-Dienst und die Konfigurationswerte für diese Einstellungen bereit. Sie können die Definition eines Cloud-Diensts nicht ändern, während der Dienst in Windows Azure ausgeführt wird. Sie können zwar die Konfiguration des Dienstmodells für einen derzeit ausgeführten Cloud-Dienst ändern, um jedoch die Definitionseinstellungen eines Dienstmodells zu ändern, müssen Sie den Cloud-Dienst mithilfe eines VIP-Swaps aktualisieren.

noteHinweis
Sie können die Dienstmodelldateien in Visual Studio erstellen und konfigurieren. Weitere Informationen finden Sie unter Konfigurieren einer Windows Azure-Anwendung mit Visual Studio.

Sie können die folgenden Informationen für die ersten Schritte zum Erstellen, Konfigurieren und Ändern des Dienstmodells für einen Cloud-Dienst nutzen:

Das Dienstmodell besteht aus der Datei ServiceDefinition.csdef und der Datei ServiceConfiguration.cscfg. Die Definitionsdatei wird mit den Rollenbinärdateien verpackt, wenn die Bereitstellung der Anwendung für den Cloud-Dienst vorbereitet wird. Die Datei "ServiceConfiguration.cscfg" wird mit dem Anwendungspaket bereitgestellt und von Windows Azure verwendet, um zu bestimmen, wie die Anwendung ausgeführt werden soll.

Die Datei "ServiceDefinition.csdef" gibt die Einstellungen an, die von Windows Azure zum Konfigurieren eines Cloud-Diensts verwendet werden. Das Azure-Dienstdefinitionsschema (.csdef-Datei) stellt das zulässige Format für eine Dienstdefinitionsdatei bereit. Im folgenden Beispiel werden die Einstellungen veranschaulicht, die für die Webrolle und die Workerrolle definiert werden können:


<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyServiceName" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="WebRole1" vmsize="Medium"> 
   <Sites>
      <Site name="Web">
         <Bindings>
            <Binding name="HttpIn" endpointName="HttpIn" />
         </Bindings>
      </Site>
   </Sites>
   <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InternalEndpoint name="InternalHttpIn" protocol="http" />
   </Endpoints>
   <Certificates> 
      <Certificate name="Certificate1" storeLocation="LocalMachine" storeName="My" />
   </Certificates>
   <Imports>
      <Import moduleName="Connect" />
      <Import moduleName="Diagnostics" />
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
   </Imports>
   <LocalResources>
      <LocalStorage name="localStoreOne" sizeInMB="10" />
      <LocalStorage name="localStoreTwo" sizeInMB="10" cleanOnRoleRecycle="false" />
   </LocalResources>
   <Startup>
      <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple" />
   </Startup>
</WebRole>

<WorkerRole name="WorkerRole1">
   <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" />
   </ConfigurationSettings>
   <Imports>
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
   </Imports>
   <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="tcp" port="10000" />
      <InternalEndpoint name="Endpoint2" protocol="tcp" />
   </Endpoints>
</WorkerRole>
</ServiceDefinition>

Sie können für das Format eines Elements das Dienstdefinitionsschema und zum Verwenden dieser Elemente die folgenden Informationen zurate ziehen:

  • Sites – Enthält die Definitionen für Websites oder Webanwendungen, die in IIS 7gehostet werden.

  • InputEndpoints – Enthält die Definitionen für Endpunkte, die für die Verbindung mit dem Cloud-Dienst verwendet werden.

  • InternalEndpoints – Enthält die Definitionen für Endpunkte, die von Rolleninstanzen für die Kommunikation miteinander verwendet werden.

  • ConfigurationSettings – Enthält die Einstellungsdefinitionen für Funktionen einer bestimmten Rolle.

  • Certificates – Enthält die Definitionen für Zertifikate, die für eine Rolle erforderlich sind. Im vorangehenden Codebeispiel wird ein Zertifikat gezeigt, das für die Konfiguration von Connect von Azure verwendet wird.

  • LocalResources – Enthält die Definitionen für lokale Speicherressourcen. Eine lokale Speicherressource ist ein reserviertes Verzeichnis im Dateisystem des virtuellen Computers, auf dem eine Instanz einer Rolle ausgeführt wird.

  • Imports – Enthält die Definitionen für importierte Module. Im vorangehenden Codebeispiel werden die Module für die Remotedesktopverbindung und Connect von Azure gezeigt.

  • Startup – Enthält Tasks, die beim Starten der Rolle ausgeführt werden. Diese Tasks sind in einer CMD- oder EXE-Datei definiert.

Die Konfiguration der Einstellungen für den Cloud-Dienst wird durch die Werte in der Datei ServiceConfiguration.cscfg bestimmt. In dieser Datei geben Sie die Anzahl der Instanzen an, die für jede Rolle bereitgestellt werden sollen. Der Dienstkonfigurationsdatei werden die Werte für die Konfigurationseinstellungen, die Sie in der Dienstdefinitionsdatei definiert haben, hinzugefügt. Die Fingerabdrücke für alle Verwaltungszertifikate, die dem Cloud-Dienst zugeordnet sind, werden ebenfalls der Datei hinzugefügt. Das Azure-Dienstkonfigurationsschema (.cscfg-Datei) stellt das zulässige Format für eine Dienstkonfigurationsdatei bereit.

Die Dienstkonfigurationsdatei wird nicht mit der Anwendung verpackt, sondern als eigene Datei in Windows Azure hochgeladen und zum Konfigurieren des Cloud-Diensts verwendet. Sie können eine neue Dienstkonfigurationsdatei hochladen, ohne den Cloud-Dienst erneut bereitzustellen. Die Konfigurationswerte für den Cloud-Dienst können geändert werden, während der Cloud-Dienst ausgeführt wird. Im folgenden Beispiel werden die Konfigurationseinstellungen veranschaulicht, die für die Webrolle und die Workerrolle definiert werden können:


<?xml version="1.0"?>
<ServiceConfiguration serviceName="MyServiceName" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="WebRole1">
   <Instances count="2" />
   <ConfigurationSettings>
      <Setting name="SettingName" value="SettingValue" />
   </ConfigurationSettings>
    
   <Certificates>
      <Certificate name="CertificateName" thumbprint="CertThumbprint" thumbprintAlgorithm="sha1" />
      <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" 
         thumbprint="CertThumbprint" thumbprintAlgorithm="sha1" />
    </Certificates>  
</Role>
</ServiceConfiguration>

Sie können für das Format eines Elements das Dienstkonfigurationsschema und zum Verwenden dieser Elemente die folgenden Informationen zurate ziehen:

  • Instances – Konfiguriert die Anzahl der für die Rolle ausgeführten Instanzen. Um sicherzustellen, dass der Cloud-Dienst während Upgrades verfügbar ist, wird empfohlen, mehrere Instanzen der Rollen mit Webzugriff bereitzustellen. So befolgen Sie die Richtlinien in der Vereinbarung zum Servicelevel (Service Level Agreement, SLA) für Windows Azure-Server, die 99,95 % externe Konnektivität für Rollen mit Internetzugriff gewährleistet, wenn mehrere Rolleninstanzen für einen Dienst bereitgestellt werden. Weitere Informationen zu den Servicelevel-Vereinbarungen (Service Level Agreement, SLA) für Windows Azure finden Sie unter Vereinbarungen zum Servicelevel (SLAs).



  • ConfigurationSettings – Konfiguriert die Einstellungen der für eine Rolle ausgeführten Instanzen. Der Name des Setting-Elements muss mit den Einstellungsdefinitionen in der Dienstdefinitionsdatei übereinstimmen.

  • Certificates – Konfiguriert die Zertifikate, die vom Dienst verwendet werden. Im vorangehenden Codebeispiel wird gezeigt, wie das Zertifikat für das RemoteAccess-Modul definiert wird. Der Wert des thumbprint-Attributs muss auf den Fingerabdruck des zu verwendenden Zertifikats festgelegt werden.

    Der Konfigurationsdatei kann der Fingerabdruck für das Zertifikat mit einem Text-Editor hinzugefügt werden, oder der Wert kann in Visual Studio auf der Registerkarte Zertifikate der Eigenschaftenseite für die Rolle hinzugefügt werden.

Das für mehrere Webanwendungen ausgelegte Dienstmodell in Windows Azure lässt nur einen Einstiegspunkt für die Webrolle zu. Dies bedeutet, dass der gesamte Datenverkehr über eine IP-Adresse erfolgt. Sie können die Websites für die gemeinsame Verwendung eines Ports konfigurieren, indem Sie den Hostheader für die Weiterleitung der Anforderung zur richtigen Adresse konfigurieren. Sie können auch die Websites und Webanwendungen so konfigurieren, dass sie auf geläufigen Ports für die IP-Adresse lauschen.

Im folgenden Beispiel wird die Konfiguration für eine Webrolle mit einer Website und einer Webanwendung gezeigt. Für die Website ist als Standardeinstiegspunkt Port 80 konfiguriert, und die Webanwendungen empfangen Anforderungen von einem alternativen Hostheader mit dem Namen mail.mysite.cloudapp.net.

<WebRole>
  <ConfigurationSettings>
    <Setting name="DiagnosticsConnectionString" />
  </ConfigurationSettings>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="Https" protocol="https" port="443" certificate="SSL"/>
      <InputEndpoint name="NetTcp" protocol="tcp" port="808" certificate="SSL"/>
    </Endpoints>
    <LocalResources>
       <LocalStorage name="Sites" cleanOnRoleRecycle="true" sizeInMB="100" />
    </LocalResources>
  <Site name="Mysite" packageDir="Sites\Mysite">
    <Bindings>
      <Binding name="http" endpointName="HttpIn" />
      <Binding name="https" endpointName="Https" />
      <Binding name="tcp" endpointName="NetTcp" />
    </Bindings>
  </Site>
  <Site name="MailSite" packageDir="MailSite">
    <Bindings>
      <Binding name="mail" endpointName="HttpIn" hostheader="mail.mysite.cloudapp.net" />
    </Bindings>
    <VirtualDirectory name="artifacts" />
    <VirtualApplication name="storageproxy" />
      <VirtualDirectory name="packages" packageDir="Sites\storageProxy\packages"/>
    </VirtualApplication>
  </Site>
</WebRole>

Sie können die Konfiguration des Cloud-Diensts während der Ausführung in Windows Azure aktualisieren, ohne den Dienst offline zu schalten. Um Konfigurationsinformationen zu ändern, können Sie eine neue Konfigurationsdatei hochladen oder die aktuelle Konfigurationsdatei ändern und auf den derzeit ausgeführten Dienst anwenden. An der Konfiguration eines Diensts können die folgenden Änderungen vorgenommen werden:

  • Ändern der Werte von Konfigurationseinstellungen. Wenn eine Konfigurationseinstellung geändert wird, kann eine Rolleninstanz die Änderung anwenden, während die Instanz online ist, oder die Instanz ordnungsgemäß wiederverwenden und die Änderung anwenden, während die Instanz offline ist.

  • Ändern der Diensttopologie von Rolleninstanzen. Topologieänderungen haben keine Auswirkung auf ausgeführte Instanzen – es sei denn, eine Instanz wird entfernt. Alle restlichen Instanzen müssen im Allgemeinen nicht wiederverwendet werden. Sie können jedoch festlegen, dass Rolleninstanzen nach einer Topologieänderung wiederverwendet werden.

  • Ändern des Zertifikatfingerabdrucks. Sie können ein Zertifikat nur aktualisieren, wenn eine Rolleninstanz offline ist. Wenn ein Zertifikat hinzugefügt, gelöscht oder geändert wird, während eine Rolleninstanz online ist, schaltet Windows Azure die Instanz ordnungsgemäß offline, um das Zertifikat zu aktualisieren und online zu schalten, nachdem die Änderung abgeschlossen ist.

Die verwaltete Windows Azure-Bibliothek enthält den Microsoft.WindowsAzure.ServiceRuntime-Namespace, der Klassen für die Interaktion mit der Windows Azure-Umgebung aus Code bereitstellt, der in einer Instanz einer Rolle ausgeführt wird. Die RoleEnvironment-Klasse definiert die folgenden Ereignisse, die vor und nach einer Konfigurationsänderung ausgelöst werden:

  • Das Changing-Ereignis tritt ein, bevor die Konfigurationsänderung auf eine angegebene Instanz einer Rolle angewendet wird. Dieses Ereignis wird möglicherweise abgebrochen, sodass Windows Azure die Rolle wiederverwendet. Wenn die Rolle wiederverwendet wird, wird die Konfigurationsänderung angewendet, bevor die Rolle wieder online geschaltet wird. Weitere Informationen zum Changing-Ereignis finden Sie unter Verwenden des RoleEnvironment.Changing-Ereignisses.

  • Das Changed-Ereignis tritt ein, nachdem die Konfigurationsänderung auf eine angegebene Instanz einer Rolle angewendet wurde. Weitere Informationen zum Changed-Ereignis finden Sie unter Verwenden des RoleEnvironment.Changed-Ereignisses.

noteHinweis
Da durch Zertifikatänderungen die Instanzen einer Rolle immer offline geschaltet werden, wird durch sie nicht das RoleEnvironment.Changing-Ereignis oder RoleEnvironment.Changed-Ereignis ausgelöst.

Siehe auch

Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft