Vytvoření skriptu Azure CLI pro Bash

Dokončeno

K dokončení všech úloh na webu Azure Portal můžete použít referenční příkazy Azure CLI. Použití webu Azure Portal k získání informací o Azure je skvělým místem, kde začít. Ke správě prostředků Azure ve velkém ale doporučujeme použít Azure CLI nebo Azure PowerShell.

Představte si scénář, ve kterém spravujete Azure pro celou společnost. Každý den obdržíte více žádostí o nové skupiny prostředků, aplikace logiky Azure, účty úložiště, datové továrny a databáze Azure SQL. Všechny vaše týmy pracují ve vývojových, fázích a produkčních prostředích, takže pro každou žádost potřebujete vytvořit tři podobné prostředky Azure, které splňují standardy pojmenování vaší společnosti a zásady zabezpečení. Je čas použít Azure CLI!

Vytvoření skriptu Bash

  1. Aktivujte sandbox uvedený v této lekci.
  2. Zkopírujte a vložte následující skript Bash do sandboxu.
  3. V Sandboxu stiskněte enter, abyste spustili skript.
#!/bin/bash

# Get the single resource group name created by the sandbox.
resourceGroupName=$(az group list --query "[].{Name:name}" --output tsv)
echo $rgName

# Create additional variables with values of your choice.
saCount=3
saLocation="westus2"
saNamePrefix="msdocs"

# Loop 
for i in $(seq 1 $saCount)
do
    let "randomIdentifier=$RANDOM*$RANDOM"
    saName=$saNamePrefix$randomIdentifier

    echo "Creating storage account $saName in resource group $resourceGroupName"

    # create the storage account
    az storage account create --name $saName \
        --resource-group $resourceGroupName \
        --location $saLocation \
        --sku Standard_RAGRS \
        --kind StorageV2
done

# Verify results
az storage account list --query "[].{saName:name, saPrimaryBlobEndpoint:primaryEndpoints.blob}" --output table

Vytvoření tří účtů úložiště Azure trvá přibližně jednu minutu. Sandbox teď zobrazuje následující výstup:

SaName           SaPrimaryBlobEndpoint
---------------  ----------------------------------------------
msdocsxxxxxxxxx  https://msdocsxxxxxxxxx.blob.core.windows.net/
msdocsyyyyyyyyy  https://msdocsyyyyyyyyy.blob.core.windows.net/
msdocszzzzzzzzz  https://msdocszzzzzzzzz.blob.core.windows.net/

Spuštění souboru skriptu Bash sh

Teď, když jste měli úspěch s prvním skriptem Bash, pojďme spustit skript Bash uložený v souboru.

  1. Pomocí libovolného textového editoru zkopírujte a vložte skript Bash uvedený v části Vytvoření skriptu Bash.

  2. Uložte textový soubor jako bashScript01.sh do umístění v počítači.

  3. Nahrajte soubor skriptu na sandboxový disk poskytnutý v této lekci.

    • V hlavní nabídce sandboxu rozbalte rozevírací seznam Spravovat soubory .
    • Vyberte Nahrát.
    • Přejděte do umístění, kam jste uložili soubor sh, a nahrajte jej.
  4. Na příkazovém řádku sandboxu zkopírujte a spusťte následující blok kódu:

    #!/bin/bash
    # make your file executable
    chmod +x bashScript01.sh
    
    # remove Windows line continuation characters
    sed -i -e 's/\r$//' bashScript01.sh
    
    # Run the script
    ./bashScript01.sh
    

Odstranění prostředků Azure pomocí skriptu

Při vytváření a testování skriptů nezapomeňte odstranit testovací prostředky, abyste se vyhnuli nákladům. Pokud jste pro prostředky Azure použili zásady vytváření názvů, můžete pomocí skriptu pro odstranění snadno vyčistit prostředí.

Odstraňte všechny účty úložiště vytvořené k určitému datu a času nebo po tomto datu. --yes K obejití výzvy k potvrzení použijte parametr. Změňte 2025-02-17T19:14:27.103127+00:00 na den, kdy testujete skript.

for saList in $(az storage account list \
    --query "[?creationTime >='2025-02-17T19:14:27.103127+00:00'].id" \
    --output tsv); do
    echo "deleting storage account $saList"
    az storage account delete --ids $saList --yes
done

Odstraňte všechny skupiny prostředků, které obsahují podobný název, s těmito dodatečnými funkcemi:

  • Zapište výsledky do souboru protokolu.
  • Odeberte skupinu prostředků s parametrem --no-wait , který způsobí, že odstranění proběhne na pozadí, a uvolněte příkazový řádek, abyste mohli pokračovat v práci.
# Set your log file location
logFileLocation="myLogName.txt"

# Get the name of all resource groups that start with 'msdocs'
az group list --query "[?starts_with(name, 'msdocs') == \`true\`].name" -o table

# Delete resource groups without a confirmation prompt (--yes)
# Do not wait for the operation to finish (--no-wait)
echo "Deleting resource groups">$logFileLocation
for rgList in $(az group list --query "[?starts_with(name, 'msdocs') == \`true\`].name" --output tsv); 
do
    echo "deleting resource group $rgList">>$logFileLocation
    az group delete --name $rgList --yes --no-wait
done

# read your log file with Linux "cat" command
clear
cat $logFileLocation

# verify all resource groups are gone
az group list --query "[?starts_with(name, 'msdocs') == \`true\`].name"

Pokročilé skriptování

Skripty, které jsou v této lekci k dispozici, jsou určené k vytvoření počátečního přehledu o tom, že Azure CLI je nástroj určený ke správě prostředků Azure ve velkém měřítku. Každá organizace je jedinečné prostředí a složitost skriptu závisí na tom, co potřebujete udělat. Kompletní skript Azure CLI běží v produkčním nastavení minimálně takto:

  1. Přihlaste se k Azure pomocí az login service principal, spravované identity nebo federované identity.
  2. Vytvořte parametry.
  3. Přiřaďte hodnoty parametrů z konfiguračního souboru.
  4. Vytvořte více prostředků Azure pomocí smyčky WHILE nebo podmínky IF..ELSE.
  5. Ověřte výsledky.
  6. Zapisujte výsledky do souboru protokolu.

I přes relativní jednoduchost představují skripty v této lekci výkonný potenciál Azure CLI při kombinování smyček a proměnných s referenčními příkazy Azure CLI. Úložiště GitHub s ukázkami Azure CLI obsahuje mnoho skriptů Bash, které vám pomůžou pokračovat v cestě k Azure CLI.