Hur gör jag för att skapa och hantera resurser i Azure?

Azure tillhandahåller en mängd olika verktyg för att skapa och hantera de Azure-resurser som används av ditt program.

Olika verktyg är utformade för att stödja olika användningsfall, och de flesta Azure-utvecklare använder en kombination av olika verktyg beroende på vilket jobb de behöver utföra. Du kan till exempel:

  • Använd ett GUI-verktyg som Azure-portalen eller Azure Tools-tillägget för VS Code när du skapar prototyper för Azure-resurser för ett nytt program. GUI-verktyg vägleder dig genom processen att skapa nya tjänster och låter dig granska och välja alternativ för en tjänst med hjälp av listrutor och andra grafiska element.

  • Skriv ett skript med hjälp av Azure CLI eller Azure PowerShell för att automatisera en gemensam uppgift. Du kan till exempel skapa ett skript som skapar en grundläggande utvecklingsmiljö för ett nytt webbprogram som består av en Azure App Service, en databas och bloblagring. Att skriva ett skript säkerställer att resurserna skapas på samma sätt varje gång och att det går snabbare att köra än att klicka genom ett användargränssnitt.

  • Använd IaC-verktyg (Infrastruktur som kod) för att deklarativt distribuera och hantera Azure-resurser. Med verktyg som Terraform, Ansible eller Bicep kan du kodifiera de Azure-resurser som behövs för en lösning i deklarativ syntax, säkerställa konsekvent distribution av Azure-resurser mellan miljöer och förhindra miljöavdrift.

Azure Portal

Azure-portalen är ett webbaserat gränssnitt som utformats för att hantera Azure-resurser. Funktionerna i Azure-portalen:

  • Ett lätthanterad, webbaserat användargränssnitt för att skapa och hantera Azure-resurser
  • Möjligheten att skapa konfigurerbara instrumentpaneler
  • Åtkomst till prenumerationsinställningar och faktureringsinformation

A screenshot showing the Azure portal.

VS Code Azure Tools-tilläggspaket

Utvecklare som använder Visual Studio Code kan hantera Azure-resurser direkt från VS Code med hjälp av Azure Tools Extension Pack för VS Code. Med hjälp av Azure Tools-tilläggspaketet kan du:

  • Skapa, hantera och distribuera kod till webbplatser med Hjälp av Azure App Service.
  • Skapa, bläddra och fråga Azure-databaser
  • Skapa, felsöka och distribuera Azure Functions direkt från VS Code
  • Distribuera containerbaserade program från VS Code

A screenshot showing Visual Studio Code with the Azure Tools extension pack installed.

Kommandoradsverktyg

Kommandoradsverktyg ger fördelarna med effektivitet, repeterbarhet och möjligheten att skripta återkommande uppgifter. Azure har två olika kommandoradsverktyg att välja mellan. Azure CLI och Azure PowerShell är funktionellt likvärdiga. Du behöver bara välja och använda det verktyg som passar bäst för ditt enskilda arbetsflöde.

Azure CLI

Azure CLI är ett plattformsoberoende kommandoradsverktyg som körs i Windows, Linux och macOS. The Azure CLI:

  • Har en koncis, effektiv syntax för att hantera Azure-resurser.
  • Returnerar resultat som JSON (som standard). Resultaten kan också formateras som YAML, en ASCII-tabell eller tabbavgränsade värden utan nycklar.
  • Ger möjlighet att fråga och forma utdata med hjälp av JMESPath-frågor.

Azure CLI-kommandon införlivas enkelt i populära skriptspråk som Bash, vilket ger dig möjlighet att skripta vanliga uppgifter.

LOCATION='eastus'                                        
RESOURCE_GROUP_NAME='msdocs-expressjs-mongodb-tutorial'

WEB_APP_NAME='msdocs-expressjs-mongodb-123'
APP_SERVICE_PLAN_NAME='msdocs-expressjs-mongodb-plan-123'    
RUNTIME='NODE|14-lts'

# Create a resource group
az group create \
    --location $LOCATION \
    --name $RESOURCE_GROUP_NAME

# Create an app service plan
az appservice plan create \
    --name $APP_SERVICE_PLAN_NAME \
    --resource-group $RESOURCE_GROUP_NAME \
    --sku B1 \
    --is-linux

# Create the web app in the app service
az webapp create \
    --name $WEB_APP_NAME \
    --runtime $RUNTIME \
    --plan $APP_SERVICE_PLAN_NAME \
    --resource-group $RESOURCE_GROUP_NAME 

Azure PowerShell

Azure PowerShell är en uppsättning cmdletar för att hantera Azure-resurser direkt från PowerShell. Azure PowerShell installeras som en PowerShell-modul och fungerar med PowerShell 7.0.6 LTS och PowerShell 7.1.3 eller senare på alla plattformar, inklusive Windows, macOS och Linux. Den är också kompatibel med Windows PowerShell 5.1.

Azure PowerShell är nära integrerat med PowerShell-språket. Kommandon följer ett verb-substantivformat och data returneras som PowerShell-objekt. Om du redan är bekant med PowerShell-skript är Azure PowerShell ett naturligt val.

$location = 'eastus'
$resourceGroupName = 'msdocs-blob-storage-demo-azps'
$storageAccountName = 'stblobstoragedemo999'

# Create a resource group
New-AzResourceGroup `
    -Location $location `
    -Name $resourceGroupName

# Create the storage account
New-AzStorageAccount `
    -Name $storageAccountName `
    -ResourceGroupName $resourceGroupName `
    -Location $location `
    -SkuName Standard_LRS

Mer information om hur du väljer mellan Azure CLI och Azure PowerShell finns i artikeln Välj rätt kommandoradsverktyg.

Infrastruktur som kodverktyg

Infrastruktur som kod är processen för att hantera och etablera resurser via deklarativa konfigurationsfiler. Infrastruktur som kodverktyg använder en deklarativ sluttillståndsspecifikation för att garantera att en uppsättning resurser skapas och konfigureras på samma sätt varje gång. Dessutom övervakar de flesta infrastrukturer som kodverktyg resurser för att se till att de förblir konfigurerade i önskat tillstånd.

För infrastrukturdistributioner som är automatiserade, upprepade och tillförlitliga stöder Azure en mängd olika infrastrukturer som kodverktyg.

Bicep

Bicep är ett domänspecifikt språk (DSL) som använder deklarativ syntax för att distribuera Azure-resurser. Det ger koncis syntax, tillförlitlig typsäkerhet och stöd för återanvändning av kod.

param location string = resourceGroup().location
param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Terraform

Hashicorp Terraform är ett verktyg med öppen källkod för etablering och hantering av molninfrastruktur. Den kodifierar infrastrukturen i konfigurationsfiler som beskriver topologin för molnresurser. Terraform CLI tillhandahåller en enkel mekanism för att distribuera och versionskonfigurationsfiler till Azure.

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "main" {
  name     = "${var.prefix}-resources"
  location = var.location
}

resource "azurerm_app_service_plan" "main" {
  name                = "${var.prefix}-asp"
  location            = azurerm_resource_group.main.location
  resource_group_name = azurerm_resource_group.main.name
  kind                = "Linux"
  reserved            = true

  sku {
    tier = "Standard"
    size = "S1"
  }
}

resource "azurerm_app_service" "main" {
  name                = "${var.prefix}-appservice"
  location            = azurerm_resource_group.main.location
  resource_group_name = azurerm_resource_group.main.name
  app_service_plan_id = azurerm_app_service_plan.main.id

  site_config {
    linux_fx_version = "NODE|10.14"
  }
}

Ansible

Ansible är en produkt som bygger på öppen källkod och som automatiserar molntilldelning, konfigurationshantering och programdistribution. Med Ansible kan du tilldela virtuella datorer, containrar, nätverk och kompletta molninfrastrukturer. Med Ansible kan du också automatisera distributionen och konfigurationen av resurser i din miljö.

- hosts: localhost
  connection: local
  vars:
    resource_group: myResourceGroup
    webapp_name: myfirstWebApp
    plan_name: myAppServicePlan
    location: eastus
  tasks:
    - name: Create a resource group
      azure_rm_resourcegroup:
        name: "{{ resource_group }}"
        location: "{{ location }}"

    - name: Create App Service on Linux with Java Runtime
      azure_rm_webapp:
        resource_group: "{{ resource_group }}"
        name: "{{ webapp_name }}"
        plan:
          resource_group: "{{ resource_group }}"
          name: "{{ plan_name }}"
          is_linux: true
          sku: S1
          number_of_workers: 1
        frameworks:
          - name: "java"
            version: "8"
            settings:
              java_container: tomcat
              java_container_version: 8.5

Azure SDK och REST API:er

Azure-resurser kan också skapas programmatiskt från kod. På så sätt kan du skriva program som dynamiskt etablerar Azure-resurser som svar på användarbegäranden. Azure SDK tillhandahåller resurshanteringspaket i .NET, Go, Java, JavaScript och Python som gör att Azure-resurser kan skapas och hanteras direkt i kod. Alternativt kan Azure REST-API:et tillåta att Azure-resurser hanteras via HTTP-begäranden till en RESTful-slutpunkt.