Generera en SAS-URI för en VM-avbildning
Not
En SAS-URI (Signatur för delad åtkomst) kan användas för att publicera den virtuella datorn (VM). Du kan också dela en avbildning i Partnercenter via Azure-beräkningsgalleriet. Mer information finns i Skapa en virtuell dator med en godkänd bas eller Skapa en virtuell dator med din egen avbildning.
Innan du kommer igång behöver du följande:
- En virtuell maskin
- Ett lagringskonto med en container för lagring av den virtuella hårddisken (VHD)
- Din lagringskontonyckel
Extrahera VHD från en VM
Not
Du kan hoppa över det här steget om du redan har en VHD uppladdad på ett lagringskonto.
Om du vill extrahera den virtuella hårddisken från den virtuella datorn måste du först ta en ögonblicksbild av den virtuella datordisken och sedan extrahera den virtuella hårddisken från ögonblicksbilden till ditt lagringskonto.
Ta en ögonblicksbild av din virtuella datordisk
- Logga in på Azure-portalen.
- Välj Skapa en resursoch sök sedan efter och välj Ögonblicksbild.
- På bladet Ögonblicksbild väljer du Skapa.
- Välj Prenumeration. Välj en befintlig resursgrupp i den valda prenumerationen eller Skapa ny och ange namnet på en ny resursgrupp som ska skapas. Det här är den resursgrupp som ögonblicksbilden ska associeras med.
- Ange ett namn för ögonblicksbilden.
- För Källtypväljer du Disk.
- Välj Källprenumeration, som är den prenumeration som innehåller den virtuella datordisken. Detta kan skilja sig från målprenumerationen för den nya snapshoten.
- För Källdiskväljer du den hanterade disk som ska ögonblicksbildas.
- För Lagringstypväljer du Standard HDD- om du inte behöver den lagrad på en högpresterande SSD.
- Välj Granska + Skapa. När valideringen har slutförts väljer du Skapa.
Extrahera VHD:n till ditt lagringskonto
Använd följande skript för att exportera ögonblicksbilden till en virtuell hårddisk i ditt lagringskonto. För var och en av parametrarna infogar du informationen i enlighet med detta.
#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
Det här skriptet ovan använder följande kommandon för att generera SAS-URI:n för en ögonblicksbild och kopierar den underliggande virtuella hårddisken till ett lagringskonto med hjälp av SAS-URI:n.
Befallning | Anteckningar |
---|---|
az disk grant-access (bevilja åtkomst till disk) | Genererar skrivskyddad SAS som används för att kopiera den underliggande VHD-filen till ett lagringskonto eller ladda ned den till en lokal plats. |
az storage blob kopiera start | Kopierar en blob asynkront från ett lagringskonto till ett annat. Använd az storage blob show för att kontrollera status för den nya bloben. |
Generera SAS-URI:n
Det finns två vanliga verktyg som används för att skapa en SAS-adress (URI):
- Azure Storage-webbläsaren – tillgänglig på Azure-portalen.
- Azure CLI- – rekommenderas för operativsystem som inte är Windows och automatiserade eller kontinuerliga integrationsmiljöer.
Använda verktyg 1: Azure Storage-webbläsare
- Gå till ditt Storage-konto.
- Öppna Storage-webbläsaren och välj blobcontainrar.
- Högerklicka på VHD-filen i Containeroch välj Generera SAS-.
- I menyn signatur för delad åtkomst som visas fyller du i följande fält:
- Behörigheter – Välj läsbehörigheter. Ange inte skriv- eller borttagningsbehörigheter.
- Startdatum/tid – Det här är behörighetens startdatum för VHD-åtkomst. För att skydda mot UTC-tidsändringar anger du ett datum som är en dag före det aktuella datumet. Om det aktuella datumet till exempel är den 15 juli 2022 anger du datumet som 2022-07-14.
- Förfallodatum/tid – Det här är behörighetens förfallodatum för VHD-åtkomst. Ange ett datum minst tre veckor efter det aktuella datumet.
- Om du vill skapa den associerade SAS-URI:n för den här virtuella hårddisken väljer du Generera SAS-token och URL-.
- Kopiera BLOB SAS-URL:en och spara den i en textfil på en säker plats.
- Upprepa de här stegen för varje virtuell hårddisk som du vill publicera.
Not
Om du behöver generera en SAS-URI med både läs- och listbehörigheter kan du göra det genom att generera den på containernivå. Följ samma steg ovan, men se till att välja både läs- och listbehörigheter. När steg 6 har slutförts måste du lägga till blobfilnamnet före "?sp=rl" för att referera till din VHD-fil i containern. Om VHD-filen till exempel var "mytestvhd.vhd" skulle SAS-URI:n se ut så här:
<container-service-endpoint>/mytestvhd.vhd?<sas-connection-string>
Använda verktyg 2: Azure CLI
Kör följande kommando i Azure CLI:
Azure CLICopy
Öppna Cloud Shell och kör följande kommando:
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\>'
Kom ihåg att infoga följande parametervärden innan du kör kommandot ovan.
Parametervärde Beskrivning kontonamn Namnet på ditt Azure Storage-konto. kontonyckel Din Azure Storage-kontonyckel. containernamn Din blobcontainer som är värd för VHD-filen. startdatum Det här är startdatumet för behörighet för VHD-åtkomst. Ange ett datum en dag före det aktuella datumet. Om det aktuella datumet till exempel är den 15 juli 2022 anger du datumet som 2022-07-14. Ange datum i UTC-datum/tid-format (ÅÅÅÅ-MM-DDT00:00:00Z), till exempel 2022-04-01T00:00:00Z. förfallodatum Det här är behörighetens förfallodatum för VHD-åtkomst. Ange ett datum minst tre veckor efter det aktuella datumet. Ange datum i UTC-datum/tid-format (ÅÅÅÅ-MM-DDT00:00:00Z), till exempel 2022-04-01T00:00:00Z. Kopiera SAS-anslutningssträngen och spara den i en textfil på en säker plats. Redigera den här strängen för att lägga till VHD-platsinformationen för att skapa den slutliga SAS-URI:n.
I Azure-portalen går du till blobcontainern som innehåller den virtuella hårddisken som är associerad med den nya URI:n.
Kopiera URL:en för blobtjänstens slutpunkt.
Redigera textfilen med SAS-anslutningssträngen från steg 2. Skapa den fullständiga SAS-URI:n med det här formatet. Se till att infoga ett "?" mellan slutpunkts-URL:en och anslutningssträngen.
<blob-service-endpoint-url>?<sas-connection-string>
SAS-felmeddelanden för virtuella datorer
Den här tabellen visar de vanliga fel som uppstår när du tillhandahåller en SAS-URI (signaturer för delad åtkomst) i Partnercenter, tillsammans med föreslagna lösningar.
Utfärda | Felmeddelande | Reparera |
---|---|---|
"?" hittades inte i SAS URI | Must be a valid Azure shared access signature URI. |
Kontrollera att sas-URI:n använder rätt syntax och innehåller "?" karaktär. Syntax: <blob-service-endpoint-url>?<sas-connection-string> |
"st"-parametern inte i SAS-URI | Specified SAS URL cannot be reached. |
Uppdatera SAS-URI:n med rätt startdatum ("st") värde. |
Parametern "se" finns inte i SAS-URI | The end date parameter (se) is required. |
Uppdatera SAS-URI:n med rätt Slutdatum ("se")-värde. |
"sp=r" inte i SAS-URI | Missing Permissions (sp) must include 'read' (r). |
Uppdatera SAS-URI:n med behörigheter som Read ("sp=r"). |
Sas URI-auktoriseringsfel | Failure: Copying Images. Not able to download blob due to authorization error. |
Granska och korrigera SAS-URI-formatet. Återskapa om det behövs. |
SAS URI-parametrarna "st" och "se" har inte fullständig specifikation för datum och tid | The start time parameter (st) is not a valid date string. ELLER The end date parameter (se) is not a valid date string. |
SAS URI startdatum och slutdatum parametrar ("st" och "se" delsträngar) måste ha fullständigt datum-tid-format (ÅÅÅÅ-MM-DDT00:00:00Z), till exempel 11-02-2017T00:00:00Z. Förkortade versioner är ogiltiga (vissa kommandon i Azure CLI kan generera förkortade värden som standard). |
Mer information finns i Bevilja begränsad åtkomst till Azure Storage-resurser med hjälp av signaturer för delad åtkomst (SAS).
Verifiera SAS-URI:n
Kontrollera SAS-URI:n innan du publicerar den i Partnercenter för att undvika problem som rör SAS URI efter att begäran skickats. Den här processen är valfri men rekommenderas.
- URI:n innehåller ditt VHD-avbildningsfilnamn, inklusive filnamnstillägget
.vhd
. -
Sp=r
visas nära mitten av din URI. Den här strängen visar att läsbehörighet har beviljats. - När
sr=c
visas innebär det att åtkomst på containernivå har angetts. - Kopiera och klistra in URI:n i en webbläsare för att testladda ned bloben (du kan avbryta åtgärden innan nedladdningen är klar).