Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Od 31 marca 2025 r. usługi w chmurze (wsparcie dodatkowe) są przestarzałe i zostaną w pełni wycofane 31 marca 2027 r. Dowiedz się więcej o tej deprecjacji i migracji.
Usługa w chmurze jest tworzona na podstawie trzech składników, definicji usługi (csdef),konfiguracji usługi (.cscfg)i pakietu usługi (.cspkg). Pliki ServiceDefinition.csdef i ServiceConfig.cscfg są oparte na formacie XML i opisują strukturę usługi w chmurze i jej konfigurację. Zbiorczo nazywamy te pliki modelem. ServicePackage.cspkg to plik zip generowany na podstawie pliku ServiceDefinition.csdef i między innymi zawiera wszystkie wymagane zależności oparte na plikach binarnych. Platforma Azure tworzy usługę w chmurze zarówno na podstawie pakietu ServicePackage.cspkg , jak i pliku ServiceConfig.cscfg.
Po uruchomieniu usługi w chmurze na platformie Azure można ją ponownie skonfigurować za pomocą pliku ServiceConfig.cscfg , ale nie można zmienić definicji.
O czym chcesz dowiedzieć się więcej?
- Chcę dowiedzieć się więcej o plikach ServiceDefinition.csdef i ServiceConfig.cscfg .
- Wiem już o tym, daj mi kilka przykładów na temat tego, co mogę skonfigurować.
- Chcę utworzyć plik ServicePackage.cspkg.
ServiceDefinition.csdef
Plik ServiceDefinition.csdef określa ustawienia używane przez platformę Azure do konfigurowania usługi w chmurze. Schemat definicji usługi platformy Azure (plik csdef) udostępnia dozwolony format pliku definicji usługi. W poniższym przykładzie pokazano ustawienia, które można zdefiniować dla ról Web i Worker:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyServiceName" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="WebRole1" vmsize="Standard_D1_v2">
<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>
Aby lepiej zrozumieć schemat XML używany w tym miejscu, możesz zapoznać się z schematem definicji usługi, jednak poniżej przedstawiono krótkie wyjaśnienie niektórych elementów:
Witryny
Zawiera definicje witryn internetowych lub aplikacji internetowych hostowanych w usługach IIS7.
Punkty końcowe wejścia
Zawiera definicje punktów końcowych używanych do kontaktowania się z usługą w chmurze.
Wewnętrzne punkty końcowe
Zawiera definicje tych punktów końcowych, które są używane przez wystąpienia ról do komunikowania się ze sobą.
ConfigurationSettings
Zawiera definicje ustawień funkcji określonej roli.
Certyfikaty
Zawiera definicje certyfikatów, które są wymagane dla roli. W poprzednim przykładzie kodu przedstawiono certyfikat używany do konfiguracji programu Azure Connect.
LocalResources
Zawiera definicje zasobów magazynu lokalnego. Zasób pamięci lokalnej to zastrzeżony katalog w systemie plików maszyny wirtualnej, w której działa instancja roli.
Import
Zawiera definicje importowanych modułów. W poprzednim przykładzie kodu przedstawiono moduły podłączania pulpitu zdalnego i programu Azure Connect.
Startup
Zawiera zadania uruchamiane po uruchomieniu roli. Zadania są definiowane w pliku .cmd lub pliku wykonywalnym.
ServiceConfiguration.cscfg
Konfiguracja ustawień usługi w chmurze jest określana przez wartości w pliku ServiceConfiguration.cscfg . Należy określić liczbę wystąpień, które mają zostać wdrożone dla każdej roli w tym pliku. Wartości ustawień konfiguracji zdefiniowanych w pliku definicji usługi są dodawane do pliku konfiguracji usługi. Odciski palca dla wszystkich certyfikatów zarządzania skojarzonych z usługą w chmurze są również dodawane do pliku. Schemat konfiguracji usługi platformy Azure (plik cscfg) udostępnia dozwolony format pliku konfiguracji usługi.
Plik konfiguracji usługi nie jest spakowany z aplikacją. Przekazuje ona na platformę Azure jako oddzielny plik i służy do konfigurowania usługi w chmurze. Możesz przekazać nowy plik konfiguracji usługi bez ponownego wdrażania usługi w chmurze. Wartości konfiguracji usługi w chmurze można zmienić, gdy usługa w chmurze jest uruchomiona. W poniższym przykładzie przedstawiono ustawienia konfiguracji, które można zdefiniować dla ról webowych i ról pracowników.
<?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>
Możesz zapoznać się ze schematem konfiguracji usługi, aby lepiej zrozumieć schemat XML używany w tym miejscu, jednak poniżej przedstawiono krótkie wyjaśnienie elementów:
Wystąpienia
Konfiguruje liczbę uruchomionych wystąpień dla roli. Aby zapobiec potencjalnej niedostępności usługi w chmurze podczas aktualizacji, zalecamy wdrożenie więcej niż jednej instancji ról publicznych. Poprzez wdrożenie więcej niż jednej instancji, przestrzegasz wytycznych wynikających z Umowy dotyczącej poziomu usług (SLA) Azure Compute, która gwarantuje 99,95% zewnętrznej łączności dla ról wystawionych na Internet, gdy dla usługi wdrożone są dwie lub więcej instancji ról.
ConfigurationSettings
Konfiguruje ustawienia uruchomionych instancji dla roli. Nazwa <Setting> elementów musi być zgodna z definicjami ustawień w pliku definicji usługi.
Certyfikaty
Konfiguruje certyfikaty używane przez usługę. W poprzednim przykładzie kodu pokazano, jak zdefiniować certyfikat dla modułu RemoteAccess. Wartość atrybutu odcisku palca musi być ustawiona na odcisk palca certyfikatu, który ma być użyty.
Uwaga
Odcisk palca certyfikatu można dodać do pliku konfiguracji przy użyciu edytora tekstów. Można również dodać wartość na karcie Certyfikaty na stronie Właściwości roli w programie Visual Studio.
Przypisywanie portów dla instancji roli
Platforma Azure zezwala tylko na jeden punkt wejścia do roli internetowej. Oznacza to, że cały ruch występuje za pośrednictwem jednego adresu IP. Witryny sieci Web można skonfigurować tak, aby współużytkować port, konfigurując nagłówek hosta w celu przekierowania żądania do właściwej lokalizacji. Możesz także skonfigurować swoje aplikacje, aby nasłuchiwały na dobrze znanych portach na adresie IP.
Poniższy przykład przedstawia konfigurację roli sieci Web z witryną internetową i aplikacją internetową. Witryna internetowa jest skonfigurowana jako domyślne miejsce wejścia na porcie 80, a aplikacje internetowe są skonfigurowane do odbierania żądań z alternatywnego hosta w nagłówku o nazwie 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>
Zmienianie konfiguracji roli
Możesz zaktualizować konfigurację usługi w chmurze, gdy jest ona uruchomiona na platformie Azure, bez przełączenia usługi w tryb offline. Aby zmienić informacje o konfiguracji, możesz przekazać nowy plik konfiguracji lub edytować plik konfiguracji i zastosować go do uruchomionej usługi. W konfiguracji usługi można wprowadzić następujące zmiany:
-
Zmienianie wartości ustawień konfiguracji
Gdy ustawienie konfiguracji ulegnie zmianie, instancja roli może zdecydować się na zastosowanie zmiany, gdy jest online, lub na ponowne uruchomienie się i zastosowanie zmiany, gdy jest offline. -
Zmienianie topologii wystąpień ról w usłudze
Zmiany topologii nie mają wpływu na uruchomione wystąpienia, z wyjątkiem sytuacji, w których wystąpienie jest usuwane. Wszystkie pozostałe wystąpienia zazwyczaj nie muszą być poddawane recyklingowi; można jednak zdecydować się na recykling wystąpień ról w odpowiedzi na zmianę topologii. -
Zmienianie odcisku palca certyfikatu
Możesz zaktualizować certyfikat tylko wtedy, gdy instancja roli jest offline. Jeśli certyfikat zostanie dodany, usunięty lub zmieniony, gdy instancja roli jest online, Azure łagodnie przechodzi w tryb offline, aby zaktualizować certyfikat. Platforma Azure przywraca ją do trybu online po zakończeniu zmiany.
Obsługa zmian konfiguracji za pomocą zdarzeń środowiska uruchomieniowego usługi
Biblioteka środowiska uruchomieniowego platformy Azure zawiera przestrzeń nazw Microsoft.WindowsAzure.ServiceRuntime, która udostępnia klasy umożliwiające interakcję ze środowiskiem platformy Azure z roli. Klasa RoleEnvironment definiuje następujące zdarzenia, które są wywoływane przed i po zmianie konfiguracji:
-
Zmienianie zdarzenia
Dzieje się tak przed zastosowaniem zmiany konfiguracji do określonego wystąpienia roli, co umożliwia przerwanie działania wystąpień roli w razie potrzeby. -
Zmienione zdarzenie
Występuje po zastosowaniu zmiany konfiguracji do określonej instancji roli.
Uwaga
Ponieważ zmiany certyfikatu powodują, że instancje roli przechodzą w tryb offline, nie zgłaszają one zdarzeń RoleEnvironment.Changing ani RoleEnvironment.Changed.
ServicePackage.cspkg
Uwaga
Maksymalny rozmiar pakietu, który można wdrożyć, to 600 MB
Aby wdrożyć aplikację jako usługę w chmurze na platformie Azure, należy najpierw spakować aplikację w odpowiednim formacie. Możesz użyć narzędzia wiersza polecenia CSPack (zainstalowanego z zestawem Azure SDK), aby utworzyć plik pakietu jako alternatywę dla programu Visual Studio.
Pakiet CSPack używa zawartości pliku definicji usługi i pliku konfiguracji usługi w celu zdefiniowania zawartości pakietu.
Pakiet CSPack generuje plik pakietu aplikacji (cspkg), który można przekazać na platformę Azure przy użyciu witryny Azure Portal. Domyślnie pakiet ma nazwę [ServiceDefinitionFileName].cspkg, ale można określić inną nazwę przy użyciu /out opcji CSPack.
CSPack znajduje się w lokalizacji
C:\Program Files\Microsoft SDKs\Azure\.NET SDK\[sdk-version]\bin\
Uwaga
CSPack.exe (w systemie Windows) jest dostępny przez uruchomienie skrótu Wiersz polecenia Microsoft Azure zainstalowanego z SDK.
Uruchom program CSPack.exe sam w celu wyświetlenia dokumentacji wszystkich możliwych przełączników i poleceń.
Wskazówka
Uruchom usługę w chmurze lokalnie w Microsoft Azure Compute Emulator, używając opcji /copyonly. Ta opcja kopiuje pliki binarne aplikacji do układu katalogu, z którego mogą być uruchamiane w emulatorze obliczeniowym.
Przykładowe polecenie w celu spakowania usługi w chmurze
W poniższym przykładzie tworzony jest pakiet aplikacji zawierający informacje dotyczące roli sieci Web. Polecenie określa plik definicji usługi do użycia, katalog, w którym można znaleźć pliki binarne, oraz nazwę pliku pakietu.
cspack [DirectoryName]\[ServiceDefinition]
/role:[RoleName];[RoleBinariesDirectory]
/sites:[RoleName];[VirtualPath];[PhysicalPath]
/out:[OutputFileName]
Jeśli aplikacja zawiera zarówno rolę internetową, jak i rolę procesu roboczego, używane jest następujące polecenie:
cspack [DirectoryName]\[ServiceDefinition]
/out:[OutputFileName]
/role:[RoleName];[RoleBinariesDirectory]
/sites:[RoleName];[VirtualPath];[PhysicalPath]
/role:[RoleName];[RoleBinariesDirectory];[RoleAssemblyName]
Gdzie zmienne są zdefiniowane w następujący sposób:
| Zmienna | Wartość |
|---|---|
| [DirectoryName] | Podkatalog w katalogu głównym projektu zawierający plik csdef projektu platformy Azure. |
| [DefinicjaUsługi] | Nazwa pliku definicji usługi. Domyślnie ten plik ma nazwę ServiceDefinition.csdef. |
| [OutputFileName] | Nazwa wygenerowanego pliku pakietu. Zazwyczaj ta zmienna jest ustawiana na nazwę aplikacji. Jeśli nie określono nazwy pliku, pakiet aplikacji zostanie utworzony jako [ApplicationName].cspkg. |
| [RoleName] | Nazwa roli zdefiniowanej w pliku definicji usługi. |
| [RoleBinariesDirectory] | Lokalizacja plików binarnych dla roli. |
| [VirtualPath] | Katalogi fizyczne dla każdej ścieżki wirtualnej zdefiniowanej w sekcji Witryny definicji usługi. |
| [Ścieżka fizyczna] | Katalogi fizyczne zawartości każdej ze ścieżek wirtualnych zdefiniowanych w węźle witryny w definicji usługi. |
| [RoleAssemblyName] | Nazwa pliku binarnego dla roli. |
Następne kroki
- Zapoznaj się z wymaganiami wstępnymi dotyczącymi wdrażania dla usług Cloud Services (rozszerzona obsługa).
- Wdróż usługę w chmurze (rozszerzoną pomoc techniczną) przy użyciu witryny Azure Portal, programu PowerShell, szablonu lub programu Visual Studio.
- Zapoznaj się z często zadawanymi pytaniami dotyczącymi usług Cloud Services (rozszerzona pomoc techniczna).