Omówienie aplikacji maszyn wirtualnych
Aplikacje maszyn wirtualnych to typ zasobu w galerii obliczeń platformy Azure (wcześniej znanej jako galeria obrazów udostępnionych), który upraszcza zarządzanie, udostępnianie i globalną dystrybucję aplikacji dla maszyn wirtualnych.
Chociaż można utworzyć obraz maszyny wirtualnej ze wstępnie zainstalowanymi aplikacjami, musisz zaktualizować obraz przy każdym wprowadzeniu zmian aplikacji. Oddzielenie instalacji aplikacji od obrazów maszyn wirtualnych oznacza, że nie ma potrzeby publikowania nowego obrazu dla każdej zmiany kodu.
Pakiety aplikacji zapewniają korzyści wynikające z innych metod wdrażania i tworzenia pakietów:
Aplikacje maszyn wirtualnych obsługują zasady platformy Azure
Grupowanie i przechowywanie wersji pakietów
Aplikacje maszyn wirtualnych można replikować globalnie, aby zbliżyć się do infrastruktury, więc nie trzeba używać narzędzia AzCopy ani innych mechanizmów kopiowania magazynu do kopiowania bitów w regionach świadczenia usługi Azure.
Udostępnianie innym użytkownikom za pomocą kontroli dostępu opartej na rolach (RBAC) platformy Azure
Obsługa maszyn wirtualnych oraz elastycznych i jednolitych zestawów skalowania
Jeśli na maszynie wirtualnej lub zestawie skalowania zastosowano reguły sieciowej grupy zabezpieczeń, pobieranie pakietów z repozytorium internetowego może nie być możliwe. W przypadku kont magazynu pobieranie pakietów na zablokowanych maszynach wirtualnych wymagałoby skonfigurowania łączy prywatnych.
Obsługa blokowych obiektów blob: ta funkcja umożliwia wydajną obsługę dużych plików przez podzielenie ich na mniejsze bloki, którymi można zarządzać. Idealne rozwiązanie do przekazywania dużych ilości danych, przesyłania strumieniowego i przekazywania w tle.
Co to są pakiety aplikacji maszyny wirtualnej?
Pakiety aplikacji maszyn wirtualnych używają wielu typów zasobów:
Zasób | opis |
---|---|
Galeria zasobów obliczeniowych platformy Azure | Galeria to repozytorium do zarządzania pakietami aplikacji i udostępniania ich. Użytkownicy mogą udostępniać zasób galerii, a wszystkie zasoby podrzędne są udostępniane automatycznie. Nazwa galerii musi być unikatowa dla subskrypcji. Możesz na przykład mieć jedną galerię do przechowywania wszystkich obrazów systemu operacyjnego i innej galerii do przechowywania wszystkich aplikacji maszyn wirtualnych. |
Aplikacja maszyny wirtualnej | Definicja aplikacji maszyny wirtualnej. Jest to zasób logiczny, który przechowuje wspólne metadane dla wszystkich używanych wersji. Na przykład możesz mieć definicję aplikacji dla serwera Apache Tomcat i mieć w niej wiele wersji. |
Wersja aplikacji maszyny wirtualnej | Zasób możliwy do wdrożenia. Wersje aplikacji maszyny wirtualnej można globalnie replikować do regionów docelowych bliżej infrastruktury maszyny wirtualnej. Wersja aplikacji maszyny wirtualnej musi zostać zreplikowana do regionu, zanim będzie mogła zostać wdrożona na maszynie wirtualnej w tym regionie. |
Ograniczenia
Nie więcej niż 3 repliki na region: podczas tworzenia wersji aplikacji maszyny wirtualnej maksymalna liczba replik na region wynosi trzy.
Magazyn z dostępem publicznym lub identyfikatorem URI sygnatury dostępu współdzielonego z uprawnieniami do odczytu: konto magazynu musi mieć dostęp na poziomie publicznym lub użyć identyfikatora URI sygnatury dostępu współdzielonego z uprawnieniami do odczytu, ponieważ inne poziomy ograniczeń kończą się niepowodzeniem.
Ponawianie próby nie powiodło się instalacji: Obecnie jedynym sposobem ponawiania próby nieudanej instalacji jest usunięcie aplikacji z profilu, a następnie dodanie jej z powrotem.
Tylko 25 aplikacji na maszynę wirtualną: nie więcej niż 25 aplikacji można wdrożyć na maszynie wirtualnej w dowolnym momencie.
Rozmiar aplikacji 2 GB: maksymalny rozmiar pliku aplikacji to 2 GB.
Brak gwarancji ponownego uruchomienia skryptu: jeśli skrypt wymaga ponownego uruchomienia, zaleca się umieszczenie tej aplikacji podczas wdrażania. Podczas próby obsługi ponownych uruchomień kod może zakończyć się niepowodzeniem.
Wymaga agenta maszyny wirtualnej: agent maszyny wirtualnej musi istnieć na maszynie wirtualnej i mieć możliwość odbierania stanów celu.
Wiele wersji tej samej aplikacji na tej samej maszynie wirtualnej: nie można mieć wielu wersji tej samej aplikacji na maszynie wirtualnej.
Operacje przenoszenia nie są obecnie obsługiwane: Przenoszenie maszyn wirtualnych z usługą VM Apps do innych grup zasobów nie jest obecnie obsługiwane.
Uwaga
W przypadku galerii obliczeń platformy Azure i aplikacji maszyn wirtualnych sygnatury dostępu współdzielonego magazynu można usunąć po replikacji. Jednak każda kolejna operacja aktualizacji będzie wymagać prawidłowej sygnatury dostępu współdzielonego.
Koszt
Za korzystanie z pakietów aplikacji maszyny wirtualnej nie są naliczane dodatkowe opłaty, ale są naliczane opłaty za następujące zasoby:
- Koszty magazynowania przechowywania każdego pakietu i wszystkich replik.
- Opłaty za ruch wychodzący sieci za replikację pierwszej wersji obrazu z regionu źródłowego do zreplikowanych regionów. Kolejne repliki są obsługiwane w regionie, więc nie ma dodatkowych opłat.
Aby uzyskać więcej informacji na temat ruchu wychodzącego sieci, zobacz Cennik przepustowości.
Aplikacje maszyn wirtualnych
Zasób aplikacji maszyny wirtualnej definiuje następujące elementy dotyczące aplikacji maszyny wirtualnej:
- Galeria obliczeń platformy Azure, w której jest przechowywana aplikacja maszyny wirtualnej
- Nazwa aplikacji
- Obsługiwany typ systemu operacyjnego, taki jak Linux lub Windows
- Opis aplikacji maszyny wirtualnej
Wersje aplikacji maszyny wirtualnej
Wersje aplikacji maszyny wirtualnej to zasób możliwy do wdrożenia. Wersje są definiowane z następującymi właściwościami:
- Numer wersji
- Łączenie z plikiem pakietu aplikacji na koncie magazynu
- Ciąg instalacji na potrzeby instalowania aplikacji
- Usuń ciąg, aby pokazać, jak prawidłowo usunąć aplikację
- Nazwa pliku pakietu do użycia podczas pobierania do maszyny wirtualnej
- Nazwa pliku konfiguracji, która ma być używana do konfigurowania aplikacji na maszynie wirtualnej
- Link do pliku konfiguracji aplikacji maszyny wirtualnej, który można dołączyć pliki licencji
- Ciąg aktualizacji sposobu aktualizowania aplikacji maszyny wirtualnej do nowszej wersji
- Data zakończenia użytkowania. Daty zakończenia życia są informacyjne; Nadal możesz wdrożyć wersje aplikacji maszyny wirtualnej poza datą zakończenia życia.
- Wyklucz z najnowszej wersji. Możesz zachować możliwość użycia wersji jako najnowszej wersji aplikacji.
- Regiony docelowe replikacji
- Liczba replik na region
Pobieranie katalogu
Lokalizacja pobierania pakietu aplikacji i pliki konfiguracji to:
- Linux:
/var/lib/waagent/Microsoft.CPlat.Core.VMApplicationManagerLinux/<appname>/<app version>
- Windows:
C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.9\Downloads\<appname>\<app version>
Polecenia instalacji/aktualizacji/usuwania powinny być zapisywane przy założeniu, że pakiet aplikacji i plik konfiguracji znajdują się w bieżącym katalogu.
Nadawanie nazwy plikom
Gdy plik aplikacji zostanie pobrany do maszyny wirtualnej, zostanie on zmieniony na "MyVmApp" (bez rozszerzenia). Dzieje się tak, ponieważ maszyna wirtualna nie zna oryginalnej nazwy ani rozszerzenia pakietu. Używa ona jedynej nazwy, którą ma, czyli samej nazwy aplikacji — "MyVmApp".
Oto kilka alternatyw, aby nawigować po tym problemie:
Skrypt można zmodyfikować tak, aby zawierał polecenie zmiany nazwy pliku przed wykonaniem:
move .\\MyVmApp .\\MyApp.exe & MyApp.exe /S
Możesz również użyć właściwości (i odpowiadającej packageFileName
configFileName
jej ), aby poinstruować nas, co należy zmienić nazwę pliku. Na przykład ustawienie go na "MyApp.exe" spowoduje, że skrypt instalacji będzie musiał mieć wartość:
MyAppe.exe /S
Napiwek
Jeśli obiekt blob został pierwotnie nazwany "myApp.exe" zamiast "myapp", powyższy skrypt zadziałałby bez ustawiania packageFileName
właściwości.
Interpreter poleceń
Domyślne interpretery poleceń to:
- Linux:
/bin/bash
- Windows:
cmd.exe
Można użyć innego interpretera, takiego jak Chocolatey lub PowerShell, o ile jest on zainstalowany na maszynie, wywołując plik wykonywalny i przekazując do niego polecenie. Aby na przykład uruchomić polecenie w programie PowerShell w systemie Windows zamiast polecenia cmd, możesz przekazać polecenie powershell.exe -Command '<powershell commmand>'
Jak są obsługiwane aktualizacje
Podczas aktualizowania wersji aplikacji na maszynie wirtualnej lub w usłudze Virtual Machine Scale Sets używane jest polecenie aktualizacji podane podczas wdrażania. Jeśli zaktualizowana wersja nie ma polecenia aktualizacji, bieżąca wersja zostanie usunięta i zostanie zainstalowana nowa wersja.
Polecenia aktualizacji powinny być zapisywane z oczekiwaniami, że może być aktualizowana z dowolnej starszej wersji aplikacji maszyny wirtualnej.
Porady dotyczące tworzenia aplikacji maszyn wirtualnych w systemie Linux
Aplikacje innych firm dla systemu Linux można spakować na kilka sposobów. Przyjrzyjmy się, jak obsługiwać tworzenie poleceń instalacji dla niektórych z najbardziej typowych.
pliki .tar i .gz
Te pliki są skompresowane archiwami i można je wyodrębnić do żądanej lokalizacji. Sprawdź instrukcje instalacji oryginalnego pakietu, aby w razie potrzeby wyodrębnienia ich do określonej lokalizacji. Jeśli plik .tar.gz zawiera kod źródłowy, zapoznaj się z instrukcjami dotyczącymi sposobu instalowania pakietu ze źródła.
Przykład instalacji polecenia instalacji golang
na maszynie z systemem Linux:
sudo tar -C /usr/local -xzf go_linux
Przykładowe polecenie usuwania:
sudo rm -rf /usr/local/go
Tworzenie pakietów aplikacji przy użyciu pakietów .deb
, .rpm
i innych pakietów specyficznych dla platformy dla maszyn wirtualnych z ograniczonym dostępem do Internetu
Poszczególne pakiety można pobrać dla menedżerów pakietów specyficznych dla platformy, ale zwykle nie zawierają wszystkich zależności. W przypadku tych plików należy również uwzględnić wszystkie zależności w pakiecie aplikacji lub pobrać zależności przez menedżera pakietów systemowych za pośrednictwem repozytoriów dostępnych dla maszyny wirtualnej. Jeśli pracujesz z maszyną wirtualną z ograniczonym dostępem do Internetu, musisz spakować wszystkie zależności samodzielnie.
Ustalenie zależności może być nieco trudne. Istnieją narzędzia innych firm, które mogą wyświetlać całe drzewo zależności.
W systemie Ubuntu można uruchomić polecenie sudo apt show <package_name> | grep Depends
, aby wyświetlić wszystkie pakiety zainstalowane podczas wykonywania sudo apt-get install <packge_name>
polecenia. Następnie możesz użyć tych danych wyjściowych, aby pobrać wszystkie .deb
pliki w celu utworzenia archiwum, którego można użyć jako pakietu aplikacji.
- Aby na przykład utworzyć pakiet aplikacji maszyny wirtualnej w celu zainstalowania programu PowerShell dla systemu Ubuntu, najpierw uruchom następujące polecenia, aby włączyć repozytorium, z którego można pobrać program PowerShell, a także zidentyfikować zależności pakietów na nowej maszynie wirtualnej z systemem Ubuntu.
# Download the Microsoft repository GPG keys
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb
sudo rm -rf packages-microsoft-prod.deb
sudo apt update
sudo apt show powershell | grep Depends
- Sprawdź dane wyjściowe wiersza Depends , aby wyświetlić listę następujących pakietów:
Depends: libc6, lib32gcc-s1, libgssapi-krb5-2, libstdc++6, zlib1g, libicu72|libicu71|libicu70|libicu69|libicu68|libicu67|libicu66|libicu65|libicu63|libicu60|libicu57|libicu55|libicu52, libssl3|libssl1.1|libssl1.0.2|libssl1.
- Pobierz każde z tych plików przy użyciu i
sudo apt-get download <package_name>
utwórz skompresowane archiwum tar ze wszystkimi plikami.
- Ubuntu 18.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download lib32gcc-s1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl1.1
sudo apt-get download libicu60
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
- Ubuntu 20.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download lib32gcc-s1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl1.1
sudo apt-get download libicu66
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
- Ubuntu 22.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download lib32gcc-s1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl3
sudo apt-get download libicu70
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
- To archiwum tar jest plikiem pakietu aplikacji.
- Polecenie instalacji w tym przypadku to:
sudo tar -xvzf powershell.tar.gz && sudo dpkg -i *.deb
- Polecenie remove to:
sudo apt remove powershell
Zamiast sudo apt autoremove
jawnie próbować usunąć wszystkie zależności. Być może zainstalowano inne aplikacje z nakładającymi się zależnościami, a w takim przypadku jawne polecenie usuwania zakończy się niepowodzeniem.
Jeśli nie chcesz samodzielnie rozwiązywać zależności i apt
można nawiązać połączenie z repozytoriami, możesz zainstalować aplikację przy użyciu tylko jednego .deb
pliku i umożliwić apt
obsługę zależności.
Przykładowe polecenie instalacji:
dpkg -i <package_name> || apt --fix-broken install -y
Porady dotyczące tworzenia aplikacji maszyn wirtualnych w systemie Windows
Większość aplikacji innych firm w systemie Windows jest dostępna jako instalatory .exe lub .msi. Niektóre są również dostępne jako wyodrębnianie i uruchamianie plików zip. Przyjrzyjmy się najlepszym rozwiązaniom dla każdego z nich.
Instalator .exe
Pliki wykonywalne instalatora zazwyczaj uruchamiają interfejs użytkownika i wymagają od kogoś wyboru za pośrednictwem interfejsu użytkownika. Jeśli instalator obsługuje parametr trybu dyskretnego, powinien zostać uwzględniony w ciągu instalacji.
Cmd.exe oczekuje się również, że pliki wykonywalne mają rozszerzenie .exe
, więc należy zmienić nazwę pliku na .exe
rozszerzenie .
Jeśli chcę utworzyć pakiet aplikacji maszyny wirtualnej dla myApp.exe
programu , który jest dostarczany jako plik wykonywalny, moja aplikacja maszyny wirtualnej nosi nazwę "myApp", więc napiszę polecenie przy założeniu, że pakiet aplikacji znajduje się w bieżącym katalogu:
"move .\\myApp .\\myApp.exe & myApp.exe /S -config myApp_config"
Jeśli plik wykonywalny instalatora nie obsługuje parametru odinstalowania, czasami można wyszukać rejestr na maszynie testowej, aby dowiedzieć się, gdzie znajduje się odinstalowywanie.
W rejestrze ciąg dezinstalacji jest przechowywany w Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<installed application name>\UninstallString
pliku , więc użyję zawartości jako mojego polecenia remove:
'\"C:\\Program Files\\myApp\\uninstall\\helper.exe\" /S'
Instalator .msi
W przypadku wykonywania wiersza .msi
polecenia instalatorów polecenia do zainstalowania lub usunięcia aplikacji należy użyć polecenia msiexec
. msiexec
Zazwyczaj działa jako własny oddzielny proces i cmd
nie czeka na jego ukończenie, co może prowadzić do problemów podczas instalowania więcej niż jednej aplikacji maszyny wirtualnej. Polecenia start
można użyć z poleceniem msiexec
, aby upewnić się, że instalacja zostanie ukończona przed zwróceniem polecenia. Na przykład:
start /wait %windir%\\system32\\msiexec.exe /i myapp /quiet /forcerestart /log myapp_install.log
Przykładowe polecenie usuwania:
start /wait %windir%\\system32\\msiexec.exe /x $appname /quiet /forcerestart /log ${appname}_uninstall.log
start
Zazwyczaj polecenie jest wywoływane w ramach skryptu wsadowego. Jeśli jest używany z parametrem /wait
, skrypt wywołujący zostanie wstrzymany do momentu zakończenia wywoływanego procesu. Po zakończeniu skrypt wsadowy sprawdzi zmienną errorlevel
ustawioną start
przez polecenie i zakończy działanie w następujący sposób:
start /wait %windir%\\system32\\msiexec.exe /i myapp /quiet /forcerestart /log myapp_install.log
if %errorlevel% neq 0 exit /b %errorlevel%
...
Spakowane pliki
W przypadku .zip lub innych spakowanych plików zmień nazwę i rozpakuj zawartość pakietu aplikacji do żądanego miejsca docelowego.
Przykładowe polecenie instalacji:
rename myapp myapp.zip && mkdir C:\myapp && powershell.exe -Command "Expand-Archive -path myapp.zip -destinationpath C:\myapp"
Przykładowe polecenie usuwania:
rmdir /S /Q C:\\myapp
Traktuj niepowodzenie jako niepowodzenie wdrożenia
Rozszerzenie aplikacji maszyny wirtualnej zawsze zwraca powodzenie niezależnie od tego, czy jakakolwiek aplikacja maszyny wirtualnej nie powiodła się podczas instalowania/aktualizowania/usuwania. Rozszerzenie aplikacji maszyny wirtualnej zgłasza stan rozszerzenia tylko jako błąd, gdy występuje problem z rozszerzeniem lub podstawową infrastrukturą. To zachowanie jest wyzwalane przez flagę "traktuj niepowodzenie jako niepowodzenie wdrożenia", która jest domyślnie ustawiona na $false
wartość i może zostać zmieniona na $true
. Flagę niepowodzenia można skonfigurować w programie PowerShell lub interfejsie wiersza polecenia.
Rozwiązywanie problemów z aplikacjami maszyn wirtualnych
Aby dowiedzieć się, czy określona aplikacja maszyny wirtualnej została pomyślnie dodana do wystąpienia maszyny wirtualnej, sprawdź komunikat rozszerzenia aplikacji maszyny wirtualnej.
Aby dowiedzieć się więcej na temat uzyskiwania stanu rozszerzeń maszyn wirtualnych, zobacz Virtual machine extensions and features for Linux and Virtual machine extensions and features for Windows (Rozszerzenia i funkcje maszyn wirtualnych dla systemu Windows).
Aby uzyskać stan rozszerzeń maszyn wirtualnych, użyj polecenia Get-AzVM:
Get-AzVM -name <VM name> -ResourceGroupName <resource group name> -Status | convertto-json -Depth 10
Aby uzyskać stan rozszerzeń zestawu skalowania, użyj polecenia Get-AzVMSSS:
$result = Get-AzVmssVM -ResourceGroupName $rgName -VMScaleSetName $vmssName -InstanceView
$resultSummary = New-Object System.Collections.ArrayList
$result | ForEach-Object {
$res = @{ instanceId = $_.InstanceId; vmappStatus = $_.InstanceView.Extensions | Where-Object {$_.Name -eq "VMAppExtension"}}
$resultSummary.Add($res) | Out-Null
}
$resultSummary | convertto-json -depth 5
Komunikaty o błędach
Wiadomość | opis |
---|---|
Bieżąca wersja aplikacji maszyny wirtualnej {name} została przestarzała w dniu {date}. | Próbowano wdrożyć wersję aplikacji maszyny wirtualnej, która została już przestarzała. Spróbuj użyć latest zamiast określić określoną wersję. |
Bieżąca wersja aplikacji maszyny wirtualnej {name} obsługuje system operacyjny {OS}, a bieżący system operacyjny OSDisk to {OS}. | Próbowano wdrożyć aplikację systemu Linux w wystąpieniu systemu Windows lub odwrotnie. |
Przekroczono maksymalną liczbę aplikacji maszyn wirtualnych (max=5, current={count}). Użyj mniejszej liczby aplikacji i spróbuj ponownie wysłać żądanie. | Obecnie obsługujemy tylko pięć aplikacji maszyn wirtualnych na maszynę wirtualną lub zestaw skalowania. |
Określono więcej niż jedną aplikację maszyny wirtualnej o tym samym elemencie PackageReferenceId. | Ta sama aplikacja została określona więcej niż raz. |
Subskrypcja nie ma autoryzacji dostępu do tego obrazu. | Subskrypcja nie ma dostępu do tej wersji aplikacji. |
Konto magazynu w argumentach nie istnieje. | Brak aplikacji dla tej subskrypcji. |
Obraz platformy {image} nie jest dostępny. Sprawdź, czy wszystkie pola w profilu magazynu są poprawne. Aby uzyskać więcej informacji na temat informacji o profilu magazynu, zobacz https://aka.ms/storageprofile. | Aplikacja nie istnieje. |
Obraz galerii {image} nie jest dostępny w regionie {region}. Skontaktuj się z właścicielem obrazu, aby przeprowadzić replikację do tego regionu lub zmienić żądany region. | Wersja aplikacji galerii istnieje, ale nie została ona zreplikowana do tego regionu. |
Sygnatura dostępu współdzielonego jest nieprawidłowa dla identyfikatora URI źródła {uri}. | Wystąpił Forbidden błąd z magazynu podczas próby pobrania informacji o adresie URL (mediaLink lub defaultConfigurationLink). |
Obiekt blob, do których odwołuje się źródłowy identyfikator URI {URI}, nie istnieje. | Obiekt blob podany dla właściwości mediaLink lub defaultConfigurationLink nie istnieje. |
Nie można uzyskać dostępu do adresu URL wersji aplikacji galerii {url} z powodu następującego błędu: nie można odnaleźć nazwy zdalnej. Upewnij się, że obiekt blob istnieje i że jest on publicznie dostępny lub jest adresem URL sygnatury dostępu współdzielonego z uprawnieniami do odczytu. | Najbardziej prawdopodobnym przypadkiem jest to, że nie podano identyfikatora URI sygnatury dostępu współdzielonego z uprawnieniami do odczytu. |
Nie można uzyskać dostępu do adresu URL wersji aplikacji galerii {url} z powodu następującego błędu: {opis błędu}. Upewnij się, że obiekt blob istnieje i że jest on publicznie dostępny lub jest adresem URL sygnatury dostępu współdzielonego z uprawnieniami do odczytu. | Wystąpił problem z udostępnionym obiektem blob magazynu. Opis błędu zawiera więcej informacji. |
Operacja {operationName} nie jest dozwolona w aplikacji {application}, ponieważ została oznaczona do usunięcia. Możesz ponowić próbę wykonania operacji Usuwania (lub poczekać na ukończenie trwającej operacji). | Spróbuj zaktualizować obecnie usuniętą aplikację. |
Wartość {value} parametru "galleryApplicationVersion.properties.publishingProfile.replicaCount" jest poza zakresem. Wartość musi należeć do jednej do trzech, włącznie. | Tylko między jedną i trzema replikami są dozwolone dla wersji aplikacji maszyny wirtualnej. |
Zmiana właściwości "galleryApplicationVersion.properties.publishingProfile.manageActions.install" nie jest dozwolona. (lub aktualizacja, usuwanie) | Nie można zmienić żadnej akcji zarządzania w istniejącej aplikacji vmApplication. Należy utworzyć nową wersję aplikacji vmApplication. |
Zmiana właściwości " galleryApplicationVersion.properties.publishingProfile.settings.packageFileName ' nie jest dozwolona. (lub configFileName) | Nie można zmienić żadnych ustawień, takich jak nazwa pliku pakietu lub nazwa pliku konfiguracji. Należy utworzyć nową wersję aplikacji vmApplication. |
Obiekt blob, do których odwołuje się identyfikator URI źródła {URI}, jest zbyt duży: rozmiar = {size}. Maksymalny dozwolony rozmiar obiektu blob to "1 GB". | Maksymalny rozmiar obiektu blob, do który odwołuje się mediaLink lub defaultConfigurationLink, wynosi obecnie 1 GB. |
Obiekt blob, do których odwołuje się źródłowy identyfikator URI {URI}, jest pusty. | Odwołano się do pustego obiektu blob. |
Typ obiektu blob {type} nie jest obsługiwany dla operacji {operation}. Obsługiwane są tylko stronicowe obiekty blob i blokowe obiekty blob. | Usługa VmApplications obsługuje tylko stronicowe obiekty blob i blokowe obiekty blob. |
Sygnatura dostępu współdzielonego jest nieprawidłowa dla identyfikatora URI źródła {uri}. | Identyfikator URI sygnatury dostępu współdzielonego podany dla elementu mediaLink lub defaultConfigurationLink nie jest prawidłowym identyfikatorem URI sygnatury dostępu współdzielonego. |
Nie można określić {region} w regionach docelowych, ponieważ w subskrypcji brakuje wymaganej funkcji {featureName}. Zarejestruj subskrypcję przy użyciu wymaganej funkcji lub usuń region z listy regionów docelowych. | Aby można było używać usługi VmApplications w niektórych regionach z ograniczeniami, musisz mieć flagę funkcji zarejestrowaną dla tej subskrypcji. |
Regiony profilu publikowania wersji obrazu galerii {regions} muszą zawierać lokalizację wersji obrazu {location}. | Lista regionów replikacji musi zawierać lokalizację, w której znajduje się wersja aplikacji. |
Zduplikowane regiony nie są dozwolone w docelowych regionach publikowania. | Regiony publikowania mogą nie mieć duplikatów. |
Zasoby wersji aplikacji galerii obecnie nie obsługują szyfrowania. | Właściwość szyfrowania dla regionów docelowych nie jest obsługiwana w przypadku aplikacji maszyn wirtualnych |
Nazwa jednostki nie jest zgodna z nazwą w adresie URL żądania. | Wersja aplikacji galerii określona w adresie URL żądania jest niezgodna z wersją określoną w treści żądania. |
Nazwa wersji aplikacji galerii jest nieprawidłowa. Nazwa wersji aplikacji powinna być zgodna z ciągiem Major(int32). Minor(int32). Format patch(int32), gdzie int wynosi od 0 do 2 147 483 647 (włącznie). na przykład 1.0.0, 2018.12.1 itp. |
Wersja aplikacji galerii musi być zgodna z określonym formatem. |
Następne kroki
- Dowiedz się, jak tworzyć i wdrażać pakiety aplikacji maszyn wirtualnych.