Megosztás a következőn keresztül:


Blobtárolók kezelése az Azure CLI használatával

A Microsoft Azure Blob Storage nagy mennyiségű strukturálatlan objektumadat tárolását teszi lehetővé. A Blob Storage használatával média-, tartalom- vagy alkalmazásadatokat gyűjthet vagy tehet közzé a felhasználók számára. Mivel az összes blobadat tárolókban van tárolva, az adatok feltöltésének megkezdése előtt létre kell hoznia egy tárolót. A blobtárolóval kapcsolatos további információkért olvassa el az Azure Blob Storage bemutatása című témakört.

Az Azure CLI az Azure platformfüggetlen parancssori felülete az Azure-erőforrások kezeléséhez. Használhatja a böngészőjében az Azure Cloud Shell-lel. MacOS, Linux vagy Windows rendszerre is telepítheti, és helyileg futtathatja a parancssorból.

Ebből az útmutatóból megtudhatja, hogyan használhatja az Azure CLI-t a Bash használatával tárolóobjektumok használatához.

Előfeltételek

Az Azure Storage eléréséhez Azure-előfizetésre lesz szüksége. Ha még nem rendelkezik előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot .

Az Azure Storage-hoz való minden hozzáférés egy tárfiókon keresztül történik. Ebben a rövid útmutatóban hozzon létre egy tárfiókot az Azure Portal, az Azure PowerShell vagy az Azure CLI használatával. A tárfiókok létrehozásával kapcsolatban lásd : Tárfiók létrehozása.

A környezet előkészítése az Azure CLI-hez

  • Mindig érdemes telepíteni az Azure CLI legújabb verzióját. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Blob Storage-hozzáférés engedélyezése

A Blob Storage-hoz való hozzáférést az Azure CLI-ből engedélyezheti a Microsoft Entra hitelesítő adataival vagy a tárfiók hozzáférési kulcsával. A Microsoft Entra hitelesítő adatainak használata ajánlott, és a jelen cikk példái kizárólag a Microsoft Entra-azonosítót használják.

A Blob Storage-beli adatműveletek Azure CLI-parancsai támogatják a --auth-mode paramétert, amely lehetővé teszi egy adott művelet engedélyezésének megadását. Állítsa be a paramétert --auth-mode a login Microsoft Entra hitelesítő adataival való engedélyezéshez. További információ: Blob- vagy üzenetsoradatokhoz való hozzáférés engedélyezése az Azure CLI-vel.

Futtassa a login parancsot egy böngésző megnyitásához és az Azure-előfizetéshez való csatlakozáshoz.

az login

Tároló létrehozása

Tároló Azure CLI-vel való létrehozásához hívja meg az az storage container create parancsot. Az alábbi példa a blobtárolók létrehozásának három lehetőségét mutatja be a az storage container create paranccsal. Az első megközelítés egyetlen tárolót hoz létre, míg a fennmaradó két módszer Bash-szkriptelési műveleteket használ a tárolólétrehozás automatizálásához.

A példa használatához adja meg a változók értékeit, és győződjön meg arról, hogy bejelentkezett. Ne felejtse el lecserélni a zárójelek helyőrző értékeit a saját értékeire.

#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"

# Approach 1: Create a container
az storage container create \
    --name $containerName \
    --account-name $storageAccount \
    --auth-mode login

# Approach 2: Create containers with a loop
for value in {2..5}
do
    az storage container create \
        --name $containerPrefix$value \
        --account-name $storageAccount \
        --auth-mode login
done

# Approach 3: Create containers by splitting multiple values
containerList="${containerPrefix}6 ${containerPrefix}7 ${containerPrefix}8"
for container in $containerList
do
    az storage container create \
        --name $container \
        --account-name $storageAccount \
        --auth-mode login
done

Tárolók listázása

az storage container list A parancs használatával lekérheti a tárolók listáját. A megadott karaktersorozattal kezdődő tárolók listájának visszaadásához adja meg a sztringet paraméterértékként --prefix .

A --num-results paraméter a kérelem által visszaadott tárolók számának korlátozására használható. Az Azure Storage 5000-re korlátozza az egyetlen listázási művelet által visszaadott tárolók számát. Ez a korlát biztosítja a kezelhető adatmennyiségek lekérését. Ha a visszaadott tárolók száma meghaladja az értéket vagy a --num-results szolgáltatási korlátot, a rendszer egy folytatási jogkivonatot ad vissza. Ez a jogkivonat lehetővé teszi, hogy több kérést használjon tetszőleges számú tároló lekéréséhez.

A paraméterrel --query JMESPath-lekérdezést is végrehajthat a parancsok eredményein. A JMESPath a JSON lekérdezési nyelve, amely lehetővé teszi a parancssori felület kimenetéből visszaadott adatok kiválasztását és módosítását. A rendszer a JSON-kimeneten hajtja végre a lekérdezéseket, mielőtt formázható lenne. További információ: Az Azure CLI-parancs kimenetének lekérdezése JMESPath-lekérdezés használatával.

Az alábbi példa először a tárolók maximális számát sorolja fel (a szolgáltatási korlátra is figyelemmel). Ezután három tárolót sorol fel, amelyek neve a tároló előtaggal kezdődik, a paraméterek és --prefix a --num-results paraméterek értékeinek megadásával. Végül egyetlen tároló szerepel a listán, ha egy ismert tárolónevet ad meg a --prefix paraméternek.

További információ az az storage container listáról.

#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
containerName="demo-container-1"
numResults="3"

# Approach 1: List maximum containers
az storage container list \
    --account-name $storageAccount \
    --auth-mode login

# Approach 2: List a defined number of named containers
az storage container list \
    --prefix $containerPrefix \
    --num-results $numResults \
    --account-name $storageAccount \
    --auth-mode login

# Approach 3: List an individual container
az storage container list \
    --prefix $containerPrefix \
    --query "[?name=='$containerName']" \
    --account-name $storageAccount \
    --auth-mode login

Tároló tulajdonságainak és metaadatainak olvasása

A tároló a rendszertulajdonságokat és a felhasználó által definiált metaadatokat is elérhetővé teszi. A rendszertulajdonságok minden blobtároló-erőforráson léteznek. Egyes tulajdonságok írásvédettek, míg mások írásvédettek vagy beállíthatók. A borítók alatt egyes rendszertulajdonságok bizonyos szabványos HTTP-fejlécekre vannak leképezve.

A felhasználó által definiált metaadatok egy vagy több, blobtároló-erőforráshoz megadott név-érték párból állnak. Metaadatok használatával további értékeket tárolhat az erőforrással. A metaadat-értékek csak saját célra szolgálnak, és nem befolyásolják az erőforrás viselkedését.

Tároló tulajdonságai

Egy tároló tulajdonságainak az Azure CLI-vel való megjelenítéséhez hívja meg az az storage container show parancsot.

Az alábbi példában az első megközelítés egyetlen nevesített tároló tulajdonságait jeleníti meg. Ezt követően lekéri az összes tárolót a demo-container előtaggal , és iterálja őket, felsorolva azok tulajdonságait. Ne felejtse el lecserélni a helyőrző értékeket a saját értékeire.

#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
containerName="demo-container-1"

# Show a named container's properties
az storage container show \
    --name $containerName \
    --account-name $storageAccount \
    --auth-mode login

# List several containers and show their properties
containerList=$(az storage container list \
    --query "[].name" \
    --prefix $containerPrefix \
    --account-name $storageAccount \
    --auth-mode login \
    --output tsv)

for row in $containerList
do
  tmpRow=$(echo $row | sed -e 's/\r//g')
  az storage container show --name $tmpRow --account-name $storageAccount --auth-mode login
done

Tároló metaadatainak olvasása és írása

Azok a felhasználók, akiknek több ezer objektum van a tárfiókjukban, gyorsan megtalálhatnak bizonyos tárolókat a metaadataik alapján. A metaadatok olvasásához használja a az storage container metadata show parancsot. A metaadatok frissítéséhez meg kell hívnia a az storage container metadata update parancsot. A metódus csak térelválasztó kulcs-érték párokat fogad el. További információkért tekintse meg az az storage container metadata dokumentációját .

Az alábbi első példa frissíti, majd lekéri egy nevesített tároló metaadatait. A második példa iterálja az értéknek megfelelő -prefix tárolók listáját. A páros számokat tartalmazó tárolók metaadatai a metaadat-változóban található értékekkel vannak beállítva.

#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"

# Create metadata string
metadata="key=value pie=delicious"

# Update named container metadata
az storage container metadata update \
    --name $containerName \
    --metadata $metadata \
    --account-name $storageAccount \
    --auth-mode login

# Display metadata
az storage container metadata show \
    --name $containerName \
    --account-name $storageAccount \
    --auth-mode login

# Get list of containers
containerList=$(az storage container list \
    --query "[].name" \
    --prefix $containerPrefix \
    --account-name $storageAccount \
    --auth-mode login \
    --output tsv)

# Update and display metadata
for row in $containerList
do
  #Get the container's number
  tmpName=$(echo $row | sed -e 's/\r//g')
  if [ `expr ${tmpName: ${#containerPrefix}} % 2` == 0 ]
  then
    az storage container metadata update \
        --name $tmpName \
        --metadata $metadata \
        --account-name $storageAccount \
        --auth-mode login
    
    echo $tmpName

    az storage container metadata show \
    --name $tmpName \
    --account-name $storageAccount \
    --auth-mode login    
  fi
done

Tárolók törlése

A használati esettől függően egyetlen tárolót vagy tárolócsoportot törölhet a az storage container delete paranccsal. A tárolók listájának törlésekor feltételes műveleteket kell használnia az alábbi példákban látható módon.

Figyelmeztetés

Az alábbi példák futtatása véglegesen törölheti a tárolókat és a blobokat. A Microsoft javasolja a tárolók helyreállítható törlésének engedélyezését a tárolók és blobok véletlen törlés elleni védelméhez. További információ: Tárolók helyreállítható törlése.

#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"

# Delete a single named container
az storage container delete \
    --name $containerName \
    --account-name $storageAccount \
    --auth-mode login

# Delete containers by iterating a loop
list=$(az storage container list \
    --query "[].name" \
    --prefix $containerPrefix \
    --account-name $storageAccount \
    --auth-mode login \
    --output tsv)
for row in $list
do
    tmpName=$(echo $row | sed -e 's/\r//g')
    az storage container delete \
    --name $tmpName \
    --account-name $storageAccount \
    --auth-mode login
done

Ha engedélyezve van a tároló helyreállítható törlése a tárfiókhoz, akkor lekérheti a törölt tárolókat. Ha a tárfiók helyreállítható törlési adatvédelmi lehetősége engedélyezve van, a paraméter a --include-deleted kapcsolódó megőrzési időszakon belül törölt tárolókat adja vissza. A --include-deleted paraméter csak akkor használható tárolók visszaadására, ha a --prefix paraméterrel együtt használják. A helyreállítható törléssel kapcsolatos további információkért tekintse meg a tárolók helyreállítható törléséről szóló cikket.

Az alábbi példában lekérheti a tárfiókhoz társított megőrzési időszakon belül törölt tárolók listáját.

#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"

# Retrieve a list of containers including those recently deleted
az storage container list \
    --prefix $containerPrefix \
    --include-deleted \
    --account-name $storageAccount\
    --auth-mode login

Helyreállíthatóan törölt tároló visszaállítása

A Tárolók listázása szakaszban leírtaknak megfelelően konfigurálhatja a helyreállítható törlési adatvédelmi beállítást a tárfiókban. Ha engedélyezve van, a kapcsolódó megőrzési időszakon belül törölt tárolók visszaállíthatók. A példa követéséhez engedélyeznie kell a helyreállítható törlést, és konfigurálnia kell azt legalább egy tárfiókon.

Az alábbi példák bemutatják, hogyan lehet helyreállítani egy helyreállíthatóan törölt tárolót a az storage container restore paranccsal. Meg kell adnia a tároló megfelelő verziójának visszaállításához szükséges --name értékeket és --version paramétereket. Ha nem ismeri a verziószámot, a az storage container list parancs használatával lekérheti az első példában látható módon. A második példa megkeresi és visszaállítja az összes törölt tárolót egy adott tárfiókon belül.

A helyreállítható törlés adatvédelmi beállításával kapcsolatos további információkért tekintse meg a Tárolók helyreállítható törlése című cikket.

#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"

# Restore an individual named container
containerVersion=$(az storage container list \
    --account-name $storageAccount \
    --query "[?name=='$containerName'].[version]" \
    --auth-mode login \
    --output tsv \
    --include-deleted | sed -e 's/\r//g')

az storage container restore \
    --name $containerName \
    --deleted-version $containerVersion \
    --account-name $storageAccount \
    --auth-mode login

# Restore a list of deleted containers
containerList=$(az storage container list \
    --account-name $storageAccount \
    --include-deleted \
    --auth-mode login \
    --query "[?deleted].{name:name,version:version}" \
    -o json)

for row in $(echo "${containerList}" | jq -c '.[]' )
do
    tmpName=$(echo $row | jq -r '.name')
    tmpVersion=$(echo $row | jq -r '.version')
    az storage container restore \
        --account-name $storageAccount \
        --name $tmpName \
        --deleted-version $tmpVersion \
        --auth-mode login
done

Megosztott hozzáférésű jogosultságkód lekérése tárolóhoz

A közös hozzáférésű jogosultságkód (SAS) delegált hozzáférést biztosít az Azure-erőforrásokhoz. Az SAS részletes vezérlést biztosít arról, hogy az ügyfél hogyan férhet hozzá az adataihoz. Megadhatja például, hogy mely erőforrások érhetők el az ügyfél számára. Korlátozhatja az ügyfél által végrehajtható műveletek típusait is, és megadhatja az sas érvényességének időtartamát.

Az SAS-t gyakran használják ideiglenes és biztonságos hozzáférés biztosítására olyan ügyfelek számára, akik általában nem rendelkeznek engedélyekkel. Szolgáltatás vagy fiók SAS létrehozásához meg kell adnia a paraméterek és --account-key a --account-name szolgáltatások értékeit. Erre a forgatókönyvre példa lehet egy szolgáltatás, amely lehetővé teszi a felhasználók számára a saját adataik olvasását és írását a tárfiókba.

Az Azure Storage háromféle közös hozzáférésű jogosultságkódot támogat: a felhasználók delegálását, a szolgáltatást és a fiók SAS-t. A megosztott hozzáférésű jogosultságkódokkal kapcsolatos további információkért tekintse meg az Azure Storage-erőforrások korlátozott hozzáférésének biztosítása megosztott hozzáférésű jogosultságkódok használatával című cikket.

Figyelem

Minden olyan ügyfél, amely rendelkezik érvényes SAS-szel, hozzáférhet a tárfiókban lévő adatokhoz az adott SAS által engedélyezett módon. Fontos, hogy megvédje az SAS-t a rosszindulatú vagy nem szándékos használattól. Használja a diszkréciót egy SAS terjesztéséhez, és rendelkezik egy tervvel a feltört SAS visszavonásához.

Az alábbi példa egy szolgáltatás SAS konfigurálásának folyamatát mutatja be egy adott tárolóhoz a az storage container generate-sas parancs használatával. Mivel szolgáltatás SAS-t hoz létre, a példa először lekéri a tárfiók kulcsát, hogy értéket adjon át --account-key .

A példa az SAS-t a kezdési és a lejárati idő, valamint egy protokoll használatával konfigurálja. Emellett megadja a törlési, olvasási, írási és listaengedélyeket az SAS-ben a --permissions paraméter használatával. A szolgáltatás SAS-létrehozása cikkben hivatkozhat a teljes engedélytáblára.

Másolja és illessze be a Blob SAS-jogkivonat értékét egy biztonságos helyre. Csak egyszer jelenik meg, és nem kérhető le a Bash bezárása után. Az SAS URL-cím létrehozásához fűzze hozzá az SAS-jogkivonatot (URI) a tárolási szolgáltatás URL-címéhez.

#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
permissions="drwl"
expiry=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`

accountKey=$(az storage account keys list \
    --account-name $storageAccount \
    --query "[?permissions == 'FULL'].[value]" \
    --output tsv)

accountKey=$( echo $accountKey | cut -d' ' -f1 )
 
az storage container generate-sas \
    --name $containerName \
    --https-only \
    --permissions dlrw \
    --expiry $expiry \
    --account-key $accountKey \
    --account-name $storageAccount

Megjegyzés:

Az Azure CLI által visszaadott SAS-jogkivonat nem tartalmazza az URL-lekérdezési sztring elválasztó karakterét ('?'). Ha az SAS-jogkivonatot egy erőforrás URL-címéhez fűzi, az SAS-jogkivonat hozzáfűzése előtt ne felejtse el hozzáfűzni az elválasztó karaktert az erőforrás URL-címéhez.

További lépések

Ebben az útmutatóban megtanulta, hogyan kezelheti a tárolókat a Blob Storage-ban. Ha többet szeretne megtudni a Blob Storage Azure CLI-vel való használatáról, válasszon az alábbi lehetőségek közül.