Sdílet prostřednictvím


Vygenerování identifikátoru URI SAS pro image virtuálního počítače

Poznámka:

Identifikátor URI sdíleného přístupového podpisu (SAS) se dá použít k publikování virtuálního počítače. Alternativně můžete sdílet image v Partnerském centru prostřednictvím galerie výpočetních prostředků Azure. Další pokyny najdete v tématu Vytvoření virtuálního počítače pomocí schválené základny nebo vytvoření virtuálního počítače pomocí vlastní image .

Než začnete, budete potřebovat následující:

Extrahování virtuálního pevného disku z virtuálního počítače

Poznámka:

Tento krok můžete přeskočit, pokud už máte virtuální pevný disk nahraný do účtu úložiště.

Pokud chcete extrahovat virtuální pevný disk z virtuálního počítače, musíte nejprve pořídit snímek disku virtuálního počítače a pak virtuální pevný disk extrahovat ze snímku do účtu úložiště.

Pořízení snímku disku virtuálního počítače

  1. Přihlaste se k webu Azure Portal.
  2. Vyberte Vytvořit prostředek a pak vyhledejte a vyberte Snímek.
  3. V okně Snímek vyberte Vytvořit.
  4. Vyberte předplatné. Vyberte existující skupinu prostředků ve vybraném předplatném nebo vytvořte novou a zadejte název nové skupiny prostředků, kterou chcete vytvořit. Toto je skupina prostředků, ke které bude snímek přidružený.
  5. Zadejte název snímku.
  6. Jako typ zdroje vyberte Disk.
    1. Vyberte zdrojové předplatné, což je předplatné, které obsahuje disk virtuálního počítače. Může se lišit od cílového předplatného nového snímku.
  7. U zdrojového disku vyberte spravovaný disk, který chcete vytvořit.
  8. Jako typ úložiště vyberte hdd úrovně Standard, pokud ho nepotřebujete uložit na vysoce výkonném disku SSD.
  9. Vyberte Zkontrolovat a vytvořit. Po úspěšném ověření vyberte Vytvořit.

Extrahování virtuálního pevného disku do účtu úložiště

Pomocí následujícího skriptu vyexportujte snímek do virtuálního pevného disku ve vašem účtu úložiště. Pro každý z parametrů vložte informace odpovídajícím způsobem.

#Provide the subscription Id where the snapshot is created
subscriptionId=yourSubscriptionId

#Provide the name of your resource group where the snapshot is created
resourceGroupName=myResourceGroupName

#Provide the snapshot name
snapshotName=mySnapshot

#Provide Shared Access Signature (SAS) expiry duration in seconds (such as 3600)
#Know more about SAS here: https://learn.microsoft.com/azure/storage/storage-dotnet-shared-access-signature-part-1
sasExpiryDuration=3600

#Provide storage account name where you want to copy the underlying VHD file.
storageAccountName=mystorageaccountname

#Name of the storage container where the downloaded VHD will be stored.
storageContainerName=mystoragecontainername

#Provide the access key for the storage account that you want to copy the VHD to.
storageAccountKey=mystorageaccountkey

#Give a name to the destination VHD file to which the VHD will be copied.
destinationVHDFileName=myvhdfilename.vhd

az account set --subscription $subscriptionId

sas=$(az snapshot grant-access --resource-group $resourceGroupName --name $snapshotName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)

az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas

Výše uvedený skript používá následující příkazy k vygenerování identifikátoru URI SAS pro snímek a zkopírování základního virtuálního pevného disku do účtu úložiště pomocí identifikátoru URI SAS.

Příkaz Notes
az disk grant-access Vygeneruje SAS jen pro čtení, který slouží ke zkopírování základního souboru VHD do účtu úložiště nebo jeho stažení do místního prostředí.
az storage blob copy start Zkopíruje objekt blob asynchronně z jednoho účtu úložiště do druhého. Pomocí příkazu az storage blob show zkontrolujte stav nového objektu blob.

Vygenerování identifikátoru URI SAS

K vytvoření adresy SAS (URI) se používají dva běžné nástroje:

  • Prohlížeč Azure Storage – K dispozici na webu Azure Portal.
  • Azure CLI – Doporučeno pro operační systémy mimo Windows a automatizované nebo kontinuální integrační prostředí.

Použití nástroje 1: Prohlížeč služby Azure Storage

  1. Přejděte do svého účtu úložiště.
  2. Otevřete prohlížeč úložiště a vyberte kontejnery objektů blob.
  3. V kontejneru klikněte pravým tlačítkem myši na soubor VHD a vyberte Vygenerovat SAS.
  4. V nabídce Sdílený přístupový podpis, která se zobrazí, vyplňte následující pole:
    • Oprávnění – Vyberte oprávnění ke čtení. Nezadávejte oprávnění k zápisu ani odstraňování.
    • Počáteční datum a čas – Jedná se o počáteční datum oprávnění pro přístup k virtuálnímu pevného disku. Chcete-li chránit před změnami času UTC, zadejte datum, které je jeden den před aktuálním datem. Pokud je například aktuální datum 15. července 2022, nastavte datum jako 14. 7. 2022.
    • Datum a čas vypršení platnosti – Toto je datum vypršení platnosti oprávnění pro přístup k virtuálnímu pevného disku. Zadejte datum alespoň tři týdny nad aktuálním datem.
  5. Pokud chcete pro tento virtuální pevný disk vytvořit přidružený identifikátor URI SAS, vyberte Vygenerovat token SAS a adresu URL.
  6. Zkopírujte adresu URL SAS objektu blob a uložte ji do textového souboru v zabezpečeném umístění.
  7. Tento postup opakujte pro každý virtuální pevný disk, který chcete publikovat.

Poznámka:

Pokud potřebujete vygenerovat identifikátor URI SAS s oprávněními ke čtení i seznamu, můžete to udělat tak, že ho vygenerujete na úrovni kontejneru. Postupujte podle stejných kroků výše, ale nezapomeňte vybrat oprávnění ke čtení i seznamu. Po dokončení kroku 6 budete muset přidat název souboru objektu blob před soubor ?sp=rl, abyste mohli odkazovat na soubor VHD v kontejneru. Pokud byl například soubor VHD "mytestvhd.vhd", identifikátor URI SAS by vypadal takto:

<container-service-endpoint>/mytestvhd.vhd?<sas-connection-string>

Použití nástroje 2: Azure CLI

  1. V Azure CLI spusťte následující příkaz: Azure CLICopy

  2. Otevřete Cloud Shell a spusťte následující příkaz:

    az storage container generate-sas --connection-string 'DefaultEndpointsProtocol=https;AccountName=\<account-name\>;AccountKey=\<account-key\>;EndpointSuffix=core.windows.net' --name \<container-name\> --permissions r --start '\<start-date\>' --expiry '\<expiry-date\>'

  3. Před spuštěním výše uvedeného příkazu nezapomeňte vložit následující hodnoty parametrů.

    Hodnota parametru Popis
    account-name Název vašeho účtu úložiště Azure.
    account-key Váš klíč účtu úložiště Azure.
    název_kontejneru Kontejner objektů blob, který je hostitelem souboru VHD.
    počáteční datum Toto je počáteční datum oprávnění pro přístup k virtuálnímu pevného disku. Zadejte datum jeden den před aktuálním datem. Pokud je například aktuální datum 15. července 2022, nastavte datum jako 14. 7. 2022. Zadejte data ve formátu data a času UTC (RRRR-MM-DDT00:00:00Z), například 2022-04-01T00:00:00Z.
    datum vypršení platnosti Toto je datum vypršení platnosti oprávnění pro přístup k virtuálnímu pevného disku. Zadejte datum alespoň tři týdny po aktuálním datu. Zadejte data ve formátu data a času UTC (RRRR-MM-DDT00:00:00Z), například 2022-04-01T00:00:00Z.
  4. Zkopírujte sas připojovací řetězec a uložte ho do textového souboru v zabezpečeném umístění. Upravte tento řetězec a přidejte informace o umístění virtuálního pevného disku a vytvořte konečný identifikátor URI SAS.

  5. Na webu Azure Portal přejděte do kontejneru objektů blob, který obsahuje virtuální pevný disk přidružený k novému identifikátoru URI.

  6. Zkopírujte adresu URL koncového bodu služby Blob Service.

  7. Upravte textový soubor pomocí sas připojovací řetězec z kroku 2. Pomocí tohoto formátu vytvořte úplný identifikátor URI SAS. Nezapomeňte vložit "?" mezi adresu URL koncového bodu a připojovací řetězec.

    <blob-service-endpoint-url>?<sas-connection-string>

Zprávy o selhání SAS virtuálního počítače

Tato tabulka ukazuje běžné chyby, ke kterým došlo při poskytování identifikátoru URI sdíleného přístupového podpisu (SAS) v Partnerském centru spolu s navrhovanými řešeními.

Problém Chybová zpráva Oprava
V identifikátoru URI SAS se nenašlo "?" Must be a valid Azure shared access signature URI. Ujistěte se, že zadaný identifikátor URI SAS používá správnou syntaxi a obsahuje "?" znak.
Syntaxe: <blob-service-endpoint-url>?<sas-connection-string>
Parametr st není v identifikátoru URI SAS Specified SAS URL cannot be reached. Aktualizujte identifikátor URI SAS správnou hodnotou počátečního data ("st").
Parametr "se" není v identifikátoru URI SAS The end date parameter (se) is required. Aktualizujte identifikátor URI SAS správnou hodnotou koncového data ("se").
"sp=r" není v identifikátoru URI SAS Missing Permissions (sp) must include 'read' (r). Aktualizujte identifikátor URI SAS s oprávněními nastavenými jako Read ("sp=r").
Chyba autorizace identifikátoru URI SAS Failure: Copying Images. Not able to download blob due to authorization error. Zkontrolujte a opravte formát identifikátoru URI SAS. V případě potřeby znovu vygenerujte.
Parametry identifikátoru URI SAS "st" a "se" nemají specifikaci úplného data a času The start time parameter (st) is not a valid date string.
NEBO
The end date parameter (se) is not a valid date string.
Parametry počátečního data a koncového data SAS (podřetězce st a se) musí mít úplný formát data a času (RRRR-MM-DDT00:00:00Z), například 11-02-2017T00:00:00Z. Zkrácené verze jsou neplatné (některé příkazy v Azure CLI můžou ve výchozím nastavení generovat zkrácené hodnoty).

Podrobnosti najdete v tématu Udělení omezeného přístupu k prostředkům Azure Storage pomocí sdílených přístupových podpisů (SAS).

Ověření identifikátoru URI SAS

Než ho publikujete v Partnerském centru, zkontrolujte identifikátor URI SAS, abyste se vyhnuli problémům souvisejícím s identifikátorem URI SAS po odeslání žádosti. Tento proces je volitelný, ale doporučuje se.

  • Identifikátor URI obsahuje název souboru image VHD, včetně přípony .vhdsouboru .
  • Sp=r zobrazí se v blízkosti středu identifikátoru URI. Tento řetězec zobrazuje oprávnění ke čtení.
  • Když sr=c se zobrazí, znamená to, že je zadán přístup na úrovni kontejneru.
  • Zkopírujte a vložte identifikátor URI do prohlížeče a otestujte stažení objektu blob (operaci můžete před dokončením stahování zrušit).