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
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
- 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.