Comment créer et gérer des ressources dans Azure ?
Ceci est la cinquième partie d’une série de 7 articles pour aider les développeurs à démarrer avec Azure.
- Partie 1 : Vue d’ensemble d’Azure pour les développeurs
- Partie 2 : Services clés d’Azure pour les développeurs
- Partie 3 : Héberger des applications sur Azure
- Partie 4 : Connecter votre application aux services Azure
- Partie 5 : Comment créer et gérer des ressources dans Azure ?
- Partie 6 : Concepts clés pour la création d’applications Azure
- Partie 7 : Comment suis-je facturé ?
Azure propose une variété d’outils pour créer et gérer les ressources Azure utilisées par votre application.
Différents outils sont conçus pour prendre en charge différents cas d’utilisation, et la plupart des développeurs Azure utilisent une combinaison de plusieurs outils selon la tâche à accomplir. Par exemple, vous pouvez :
Utilisez un outil GUI comme le portail Azure ou l’extension Azure Tools pour VS Code lors de la création de prototypes de ressources Azure pour une nouvelle application. Les outils GUI vous guident tout au long du processus de création de nouveaux services et vous permettent de revoir et de sélectionner les options d’un service à l’aide de menus déroulants et d’autres éléments graphiques.
Écrivez un script en utilisant l’Azure CLI ou Azure PowerShell pour automatiser une tâche courante. Par exemple, vous pouvez créer un script qui crée un environnement de développement basique pour une nouvelle application web comprenant un Azure App Service, une base de données et un stockage blob. Écrire un script garantit que les ressources sont créées de la même manière à chaque fois et est plus rapide à exécuter que de cliquer dans une interface utilisateur.
Utilisez des outils d’Infrastructure as Code (IaC) pour déployer et gérer des ressources Azure de manière déclarative. Des outils comme Terraform, Ansible ou Bicep vous permettent de codifier les ressources Azure nécessaires pour une solution en syntaxe déclarative, garantissant le déploiement cohérent des ressources Azure à travers les environnements et évitant les divergences environnementales.
Portail Azure
Le portail Azure est une interface web conçue pour gérer les ressources Azure. Le portail Azure propose :
- Une interface web facile à utiliser pour créer et gérer des ressources Azure
- La possibilité de créer des tableaux de bord configurables
- Accès aux paramètres d’abonnement et aux informations de facturation
Pack d’extension Azure Tools pour VS Code
Les développeurs utilisant Visual Studio Code peuvent gérer les ressources Azure directement depuis VS Code à l’aide du pack d’extension Azure Tools pour VS Code. L’utilisation du pack d’extension Azure Tools permet de :
- Créer, gérer et déployer du code sur des sites web en utilisant Azure App Service.
- Créer, parcourir et interroger des bases de données Azure
- Créer, déboguer et déployer des fonctions Azure directement depuis VS Code
- Déployer des applications conteneurisées depuis VS Code
Outils en ligne de commande
Les outils en ligne de commande offrent les avantages de l’efficacité, de la répétabilité et de la capacité à automatiser les tâches récurrentes. Azure propose deux outils en ligne de commande différents. L’Azure CLI et Azure PowerShell sont fonctionnellement équivalents. Vous n’avez qu’à choisir et utiliser l’outil qui correspond le mieux à votre flux de travail personnel.
Azure CLI
L’Azure CLI est un outil en ligne de commande multiplateforme qui fonctionne sous Windows, Linux et macOS. Interface de ligne de commande Azure :
- Il propose une syntaxe concise et efficace pour gérer les ressources Azure.
- Il produit par défaut des résultats en JSON. Les résultats peuvent également être formatés en YAML, en tableau ASCII ou en valeurs séparées par des tabulations sans clés.
- Il offre la possibilité de requêter et de structurer la sortie via l’utilisation de requêtes JMESPath.
Les commandes Azure CLI sont facilement intégrées dans des langages de script populaires comme Bash, vous permettant d’automatiser des tâches courantes.
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 est un ensemble d’applets de commande qui permet de gérer les ressources Azure directement dans PowerShell. Azure PowerShell est installé en tant que module PowerShell et fonctionne avec PowerShell 7.0.6 LTS et PowerShell 7.1.3 ou supérieur sur toutes les plateformes, y compris Windows, macOS et Linux. Il est également compatible avec Windows PowerShell 5.1.
Azure PowerShell est étroitement intégré avec le langage PowerShell. Les commandes suivent un format verbe-nom et les données sont renvoyées sous forme d’objets PowerShell. Si vous êtes déjà familiarisé avec le scripting PowerShell, Azure PowerShell est un choix naturel.
$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
Pour plus d’informations sur le choix entre l’Azure CLI et Azure PowerShell, veuillez consulter l’article Choisir le bon outil en ligne de commande.
Outils d’Infrastructure as Code
Infrastructure as Code est le processus de gestion et d’approvisionnement des ressources via des fichiers de configuration déclaratifs. Les outils d’Infrastructure as Code utilisent une spécification d’état final déclaratif pour garantir qu’un ensemble de ressources est créé et configuré de la même manière à chaque fois. De plus, la plupart des outils d’Infrastructure as Code surveillent les ressources pour s’assurer qu’elles restent configurées dans l’état souhaité.
Pour les déploiements d’infrastructure qui sont automatisés, répétitifs et fiables, Azure prend en charge une variété d’outils d’Infrastructure as Code.
Bicep
Bicep est un langage spécifique à un domaine (DSL) qui utilise la syntaxe déclarative pour déployer des ressources Azure. Il fournit une syntaxe concise, une cohérence des types fiable et une prise en charge de la réutilisation du 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 est un outil open source pour l’approvisionnement et la gestion d’infrastructure cloud. Il codifie l'infrastructure dans des fichiers de configuration qui décrivent la topologie des ressources cloud. L’interface en ligne de commande de Terraform fournit un mécanisme simple pour déployer et gérer les fichiers de configuration dans 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 est un produit open source qui automatise l’approvisionnement du cloud, la gestion de la configuration et le déploiement des applications. Il vous permet d’approvisionner les machines virtuelles, les conteneurs et le réseau, ainsi que des infrastructures cloud complètes. De plus, Ansible vous permet d’automatiser le déploiement et la configuration de ressources dans votre environnement.
- 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 et API REST
Les ressources Azure peuvent également être créées de manière programmatique depuis du code. Cela vous permet d’écrire des applications qui approvisionnent dynamiquement des ressources Azure en réponse aux demandes des utilisateurs. L’Azure SDK fournit des packages de gestion des ressources dans .NET, Go, Java, JavaScript et Python, permettant de créer et gérer des ressources Azure directement dans le code. En alternative, l’API REST Azure permet de gérer les ressources Azure via des requêtes HTTP vers un point de terminaison RESTful.