Jak mogę tworzyć zasoby na platformie Azure i zarządzać nimi?

Platforma Azure udostępnia różne narzędzia do tworzenia zasobów platformy Azure używanych przez aplikację i zarządzania nimi.

Różne narzędzia są przeznaczone do obsługi różnych przypadków użycia, a większość deweloperów platformy Azure używa kombinacji różnych narzędzi w zależności od zadania, które muszą wykonać. Możesz na przykład:

  • Użyj narzędzia graficznego interfejsu użytkownika, takiego jak witryna Azure Portal lub rozszerzenie Azure Tools dla programu VS Code podczas tworzenia prototypów zasobów platformy Azure dla nowej aplikacji. Narzędzia graficznego interfejsu użytkownika prowadzą użytkownika przez proces tworzenia nowych usług i umożliwiają przeglądanie i wybieranie opcji usługi przy użyciu menu rozwijanych i innych elementów graficznych.

  • Pisanie skryptu przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell w celu zautomatyzowania typowego zadania. Można na przykład utworzyć skrypt, który tworzy podstawowe środowisko deweloperskie dla nowej aplikacji internetowej składającej się z usługi aplikacja systemu Azure Service, bazy danych i magazynu obiektów blob. Pisanie skryptu gwarantuje, że zasoby są tworzone w taki sam sposób za każdym razem i jest szybsze niż kliknięcie za pośrednictwem interfejsu użytkownika.

  • Użyj narzędzi infrastruktury jako kodu (IaC), aby deklaratywnie wdrażać zasoby platformy Azure i zarządzać nimi. Narzędzia takie jak Terraform, Ansible lub Bicep umożliwiają kodowanie zasobów platformy Azure potrzebnych do rozwiązania w składni deklaratywnej, zapewniając spójne wdrażanie zasobów platformy Azure w środowiskach i zapobieganie dryfowi środowiska.

Azure Portal

Witryna Azure Portal to internetowy interfejs przeznaczony do zarządzania zasobami platformy Azure. Funkcje witryny Azure Portal:

  • Łatwy w użyciu internetowy interfejs użytkownika do tworzenia zasobów platformy Azure i zarządzania nimi
  • Możliwość tworzenia konfigurowalnych pulpitów nawigacyjnych
  • Dostęp do ustawień subskrypcji i informacji rozliczeniowych

A screenshot showing the Azure portal.

Pakiet rozszerzeń narzędzi platformy Azure programu VS Code

Deweloperzy korzystający z programu Visual Studio Code mogą zarządzać zasobami platformy Azure bezpośrednio z programu VS Code przy użyciu pakietu rozszerzeń narzędzi platformy Azure dla programu VS Code. Za pomocą pakietu rozszerzeń narzędzi platformy Azure można wykonywać następujące czynności:

  • Tworzenie i wdrażanie kodu w witrynach internetowych oraz zarządzanie nimi przy użyciu usługi aplikacja systemu Azure Service.
  • Tworzenie, przeglądanie i wykonywanie zapytań dotyczących baz danych platformy Azure
  • Tworzenie, debugowanie i wdrażanie usługi Azure Functions bezpośrednio z poziomu programu VS Code
  • Wdrażanie konteneryzowanych aplikacji z poziomu programu VS Code

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

Narzędzia wiersza polecenia

Narzędzia wiersza polecenia oferują zalety wydajności, powtarzalności i możliwości tworzenia skryptów zadań cyklicznych. Platforma Azure udostępnia dwa różne narzędzia wiersza polecenia do wyboru. Interfejs wiersza polecenia platformy Azure i program Azure PowerShell są funkcjonalnie równoważne. Wystarczy wybrać i użyć narzędzia, które najlepiej pasuje do poszczególnych przepływów pracy.

Interfejs wiersza polecenia platformy Azure

Interfejs wiersza polecenia platformy Azure to międzyplatformowe narzędzie wiersza polecenia, które działa w systemach Windows, Linux i macOS. Interfejs wiersza polecenia platformy Azure:

  • Oferuje zwięzłą, wydajną składnię do zarządzania zasobami platformy Azure.
  • Dane wyjściowe są wyświetlane jako dane JSON (domyślnie). Wyniki można również sformatować jako YAML, tabelę ASCII lub wartości rozdzielane tabulatorami bez kluczy.
  • Umożliwia wykonywanie zapytań i kształtowanie danych wyjściowych za pomocą zapytań JMESPath.

Polecenia interfejsu wiersza polecenia platformy Azure można łatwo włączyć do popularnych języków skryptów, takich jak powłoka Bash , umożliwiając wykonywanie skryptów typowych zadań.

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 to zestaw poleceń cmdlet do zarządzania zasobami platformy Azure bezpośrednio z poziomu programu PowerShell. Program Azure PowerShell jest instalowany jako moduł programu PowerShell i współdziała z programem PowerShell 7.0.6 LTS i programem PowerShell 7.1.3 lub nowszym na wszystkich platformach, w tym windows, macOS i Linux. Jest on również zgodny z programem Windows PowerShell 5.1.

Program Azure PowerShell jest ściśle zintegrowany z językiem programu PowerShell. Polecenia są zgodne z formatem czasownika i dane są zwracane jako obiekty programu PowerShell. Jeśli znasz już skrypty programu PowerShell, program Azure PowerShell jest naturalnym wyborem.

$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

Aby uzyskać więcej informacji na temat wybierania między interfejsem wiersza polecenia platformy Azure i programem Azure PowerShell, zobacz artykuł Wybieranie odpowiedniego narzędzia wiersza polecenia.

Infrastruktura jako narzędzia kodu

Infrastruktura jako kod to proces zarządzania zasobami i aprowizacji ich za pomocą deklaratywnych plików konfiguracji. Infrastruktura jako narzędzia kodu używają specyfikacji stanu końcowego deklaratywnej w celu zagwarantowania, że zestaw zasobów jest tworzony i konfigurowany w taki sam sposób za każdym razem. Ponadto większość infrastruktury jako narzędzi kodu monitoruje zasoby, aby upewnić się, że pozostają skonfigurowane w żądanym stanie.

W przypadku wdrożeń infrastruktury, które są zautomatyzowane, powtarzane i niezawodne, pomoc techniczna platformy Azure różne narzędzia infrastruktury jako kodu.

Bicep

Bicep to język specyficzny dla domeny (DSL), który używa składni deklaratywnej do wdrażania zasobów platformy Azure. Zapewnia zwięzłą składnię, niezawodne bezpieczeństwo typów i obsługę ponownego użycia kodu.

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 jest narzędziem typu open source do aprowizowania infrastruktury chmury i zarządzania nią. Koduje infrastrukturę w plikach konfiguracji opisujących topologię zasobów w chmurze. Interfejs wiersza polecenia narzędzia Terraform udostępnia prosty mechanizm wdrażania plików konfiguracji i wersji na platformie 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 jest produktem typu open source, które automatyzuje aprowizowanie chmury, zarządzanie konfiguracją i wdrożenia aplikacji. Korzystając z rozwiązania Ansible, można aprowizować maszyny wirtualne, kontenery, sieć oraz infrastruktury chmury. Ponadto narzędzie Ansible umożliwia zautomatyzowanie wdrażania i konfigurowania zasobów w środowisku.

- 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

Zestaw Azure SDK i interfejsy API REST

Zasoby platformy Azure można również tworzyć programowo na podstawie kodu. Dzięki temu można pisać aplikacje, które dynamicznie aprowizować zasoby platformy Azure w odpowiedzi na żądania użytkowników. Zestaw Azure SDK udostępnia pakiety zarządzania zasobami na platformie .NET, Go, Java, JavaScript i Python, które umożliwiają tworzenie zasobów platformy Azure i zarządzanie nimi bezpośrednio w kodzie. Alternatywnie interfejs API REST platformy Azure umożliwia zarządzanie zasobami platformy Azure za pośrednictwem żądań HTTP do punktu końcowego RESTful.