Wie erstelle und verwalte ich Ressourcen in Azure?
Dies ist Teil fünf in einer Reihe von sieben Artikeln, die Entwicklern bei den ersten Schritten mit Azure helfen.
- Teil 1: Übersicht über Azure für Entwickler
- Teil 2: Wichtige Azure-Dienste für Entwickler
- Teil 3: Hosten von Anwendungen in Azure
- Teil 4: Verbinden Ihrer App mit Azure-Diensten
- Teil 5: Wie erstelle und verwalte ich Ressourcen in Azure?
- Teil 6: Wichtige Konzepte zum Erstellen von Azure-Apps
- Teil 7: Wie werde ich abgerechnet?
Azure bietet eine Vielzahl von Tools zum Erstellen und Verwalten der von Ihrer Anwendung verwendeten Azure-Ressourcen.
Verschiedene Tools sind für unterschiedliche Anwendungsfälle konzipiert, und die meisten Azure-Entwickler verwenden je nach Aufgabe eine Kombination aus verschiedenen Tools. Sie können z. B. Folgendes tun:
Verwenden Sie ein GUI-Tool wie das Azure-Portal oder die Azure Tools-Erweiterung für VS Code, wenn Azure-Ressourcen für eine neue Anwendung prototypiert werden. GUI-Tools führen Sie durch den Prozess der Erstellung neuer Dienste und ermöglichen es Ihnen, die Optionen für einen Dienst mithilfe von Dropdownmenüs und anderen grafischen Elementen zu überprüfen und auszuwählen.
Schreiben Sie ein Skript mithilfe der Azure CLI oder Azure PowerShell, um eine gemeinsame Aufgabe zu automatisieren. Sie können z. B. ein Skript erstellen, das eine grundlegende Entwicklungsumgebung für eine neue Webanwendung erstellt, die aus einem Azure App Service, einer Datenbank und einem BLOB-Speicher besteht. Durch das Schreiben eines Skripts wird sichergestellt, dass die Ressourcen jedes Mal auf die gleiche Weise erstellt werden und schneller ausgeführt werden können als durch Klicken auf Elemente in einer Benutzeroberfläche.
Verwenden Sie Infrastructure as Code-(IaC-)Tools, um Azure-Ressourcen deklarativ bereitzustellen und zu verwalten. Mit Tools wie Terraform, Ansible oder Bicep können Sie die Azure-Ressourcen kodifizieren, die für eine Lösung in deklarativer Syntax erforderlich sind, um die konsistente Bereitstellung von Azure-Ressourcen über Umgebungen hinweg sicherzustellen und Umweltabweichungen zu verhindern.
Azure-Portal
Das Azure-Portal ist eine Webschnittstelle zum Verwalten von Azure-Ressourcen. Die Azure-Portal-Features:
- Eine benutzerfreundliche, webbasierte Benutzeroberfläche zum Erstellen und Verwalten von Azure-Ressourcen
- Die Möglichkeit zum Erstellen konfigurierbarer Dashboards
- Zugriff auf die Abonnementeinstellungen und Abrechnungsinformationen
VS Code Azure Tools-Erweiterungspaket
Entwickler, die Visual Studio Code verwenden, können Azure-Ressourcen direkt aus VS Code mithilfe des Azure Tools-Erweiterungspakets für VS Code verwalten. Durch die Verwendung des Azure-Tools-Erweiterungspakets ergeben sich folgende Möglichkeiten:
- Erstellen, Verwalten und Bereitstellen von Code auf Websites mithilfe von Azure App Service.
- Erstellen, Durchsuchen und Abfragen von Azure-Datenbanken
- Erstellen, Debuggen und Bereitstellen von Azure Functions direkt aus VS Code.
- Bereitstellen von containerisierten Anwendungen aus VS Code
Befehlszeilentools
Befehlszeilen-Tools sorgen für Effizienz und Wiederholbarkeit und bietet die Möglichkeit zur Ausführung wiederkehrender Aufgaben in Skripts. Azure bietet zwei verschiedene Befehlszeilentools, aus denen Sie auswählen können. Die Azure CLI und Azure PowerShell sind funktional gleichwertig. Sie müssen nur das Tool auswählen und verwenden, das am besten zu Ihrem individuellen Workflow passt.
Azure CLI
Die Azure CLI ist eine plattformübergreifende Befehlszeilenschnittstelle, die unter Windows, Linux und macOS installiert werden kann. Die Azure CLI:
- Bietet eine präzise, effiziente Syntax für die Verwaltung von Azure-Ressourcen.
- Gibt Ergebnisse als JSON (standardmäßig) aus. Ergebnisse können auch als YAML, eine ASCII-Tabelle oder durch Tabstopps getrennte Werte ohne Schlüssel formatiert werden.
- Bietet die Möglichkeit, die Ausgabe von JMESPath-Abfragen abzufragen und zu gestalten.
Azure CLI-Befehle können einfach in beliebte Skriptsprachen wie Bash integriert werden, sodass Sie allgemeine Aufgaben skripten können.
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 umfasst Cmdlets zur direkten Verwaltung von Azure-Ressourcen über PowerShell. Azure PowerShell wird als PowerShell-Modul installiert und funktioniert mit PowerShell 7.0.6 LTS, PowerShell 7.1.3 und höheren Versionen auf allen Plattformen, einschließlich Windows, macOS und Linux. Es ist auch mit Windows PowerShell 5.1 kompatibel.
Azure PowerShell ist eng in die PowerShell-Sprache integriert. Die Befehle basieren auf einem Verb-Nomen-Format, und Daten werden als PowerShell-Objekte zurückgegeben. Wenn Sie bereits mit der PowerShell-Skripterstellung vertraut sind, ist Azure PowerShell eine natürliche Wahl.
$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
Weitere Informationen zur Auswahl zwischen Azure CLI und Azure PowerShell finden Sie im Artikel Auswählen des richtigen Befehlszeilentools.
Infrastructure-as-Code-Tools
Infrastruktur als Code ist der Prozess der Verwaltung und Bereitstellung von Ressourcen über deklarative Konfigurationsdateien. Infrastruktur-als-Code-Tools verwenden eine deklarative Endzustandsspezifikation, um sicherzustellen, dass jedes Mal eine Gruppe von Ressourcen erstellt und konfiguriert wird. Darüber hinaus überwachen die meisten Infrastrukturtools Ressourcen, um sicherzustellen, dass sie im gewünschten Zustand konfiguriert bleiben.
Für Infrastrukturbereitstellungen, die automatisiert, wiederholt und zuverlässig sind, Azure-Support eine Vielzahl von Infrastruktur-als-Code-Tools.
Bicep
Bicep ist eine domänenspezifische Sprache (Domain-Specific Language, DSL), die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. Sie bietet eine präzise Syntax, zuverlässige Typsicherheit und Unterstützung für die Wiederverwendung von Code.
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 ist ein Open Source-Tool für die Bereitstellung und Verwaltung von Cloudinfrastrukturen. Die Infrastruktur in Konfigurationsdateien, die die Topologie von Cloudressourcen beschreiben, wird kodifiziert. Die Befehlszeilenschnittstelle von Terraform bietet einen einfachen Mechanismus für die Bereitstellung von Konfigurationsdateien und für ihre Versionserstellung in 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 ist ein Open-Source-Produkt, mit dem die Cloudbereitstellung, Konfigurationsverwaltung und Anwendungsbereitstellungen automatisiert werden können. Mit Ansible können Sie virtuelle Computer, Container und Netzwerkumgebungen sowie auch vollständige Cloudinfrastrukturen bereitstellen. Ansible ermöglicht außerdem die Automatisierung der Bereitstellung und Konfiguration von Ressourcen in Ihrer Umgebung.
- 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- und REST-APIs
Azure-Ressourcen können auch programmgesteuert über Code erstellt werden. Auf diese Weise können Sie Anwendungen schreiben, die Azure-Ressourcen dynamisch als Reaktion auf Benutzeranforderungen bereitstellen. Das Azure SDK bietet Ressourcenverwaltungspakete in .NET, Go, JavaScript, JavaScript und Python, mit denen Azure-Ressourcen direkt im Code erstellt und verwaltet werden können. Alternativ kann die Azure REST-API Azure-Ressourcen über HTTP-Anforderungen an einen RESTful-Endpunkt verwaltet werden.