Comment faire créer et gérer des ressources dans Azure ?

Azure fournit un large éventail 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’usage, et la plupart des développeurs Azure utilisent une combinaison de différents outils en fonction du travail qu’ils doivent effectuer. Par exemple, vous pouvez :

  • Utilisez un outil gui comme le Portail Azure ou l’extension Azure Tools pour VS Code lors du prototypage 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 passer en revue et de sélectionner les options d’un service à l’aide de menus déroulants et d’autres éléments graphiques.

  • Écrivez un script à l’aide d’Azure CLI ou d’Azure PowerShell pour automatiser une tâche courante. Par exemple, vous pouvez créer un script qui crée un environnement de développement de base pour une nouvelle application web composée d’azure App Service, d’une base de données et d’un stockage d’objets blob. L’écriture d’un script garantit que les ressources sont créées de la même façon à chaque fois et qu’elles sont plus rapides à exécuter que de cliquer sur une interface utilisateur.

  • Utilisez les outils IaC (Infrastructure as Code) pour déployer et gérer de manière déclarative des ressources Azure. Les outils tels que Terraform, Ansible ou Bicep vous permettent de codifier les ressources Azure nécessaires pour une solution dans la syntaxe déclarative, en garantissant le déploiement cohérent des ressources Azure entre les environnements et en empêchant la dérive environnementale.

Portail Azure

Le Portail Azure est une interface web conçue pour la gestion des ressources Azure. Fonctionnalités Portail Azure :

  • Interface utilisateur facile à utiliser pour créer et gérer des ressources Azure
  • Possibilité de créer des tableaux de bord configurables
  • Accès aux paramètres d’abonnement et aux informations de facturation

A screenshot showing the Azure portal.

Pack d’extension Vs Code Azure Tools

Les développeurs utilisant Visual Studio Code peuvent gérer des ressources Azure directement à partir de VS Code à l’aide du pack d’extension Azure Tools pour VS Code. L’utilisation du pack d’extension Azure Tools peut :

  • Créez, gérez et déployez du code sur des sites web à l’aide d’Azure App Service.
  • Créer, parcourir et interroger des bases de données Azure
  • Créer, déboguer et déployer Azure Functions directement à partir de VS Code
  • Déployer des applications conteneurisées à partir de VS Code

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

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 possibilité de générer des scripts de tâches périodiques. Azure fournit deux outils en ligne de commande différents parmi lesquels choisir. Azure CLI et Azure PowerShell sont fonctionnellement équivalents. Vous devez uniquement sélectionner et utiliser l’outil qui correspond le mieux à votre flux de travail individuel.

Azure CLI

Azure CLI est un outil en ligne de commande multiplateforme qui s’exécute sur Windows, Linux et macOS. Interface de ligne de commande Azure :

  • Propose une syntaxe concise et efficace pour la gestion des ressources Azure.
  • Génère des résultats au format JSON (par défaut). Les résultats peuvent également être mis en forme en tant que YAML, une table ASCII ou des valeurs séparées par des onglets sans clé.
  • Permet d’interroger et de mettre en forme la sortie via l’utilisation de requêtes JMESPath.

Les commandes Azure CLI sont facilement incorporées dans des langages de script populaires comme Bash , ce qui vous permet de générer des scripts de 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 permettant de gérer les ressources Azure directement à partir de PowerShell. Azure PowerShell est installé en tant que module PowerShell et fonctionne avec PowerShell 7.0.6 LTS et PowerShell 7.1.3 ou version ultérieure sur toutes les plateformes, notamment Windows, macOS et Linux. Il est également compatible avec Windows PowerShell 5.1.

Azure PowerShell est étroitement intégré au langage PowerShell. Les commandes suivent un format verbe-nom et les données sont retournées en tant qu’objets PowerShell. Si vous connaissez déjà les scripts 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 Azure CLI et Azure PowerShell, consultez l’article Choisir l’outil en ligne de commande approprié.

Outils d’infrastructure en tant que code

L’infrastructure en tant que code est le processus de gestion et d’approvisionnement des ressources via des fichiers de configuration déclaratifs. L’infrastructure en tant qu’outils de code utilise une spécification d’état final déclaratif pour garantir qu’un ensemble de ressources est créé et configuré de la même façon à chaque fois. En outre, la plupart des outils de code surveillent les ressources pour s’assurer qu’elles restent configurées dans l’état souhaité.

Pour les déploiements d’infrastructure automatisés, répétés et fiables, support Azure une variété d’outils d’infrastructure en tant que 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 CLI Terraform fournit un mécanisme simple pour déployer et versionr des fichiers de configuration sur 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

API REST et SDK Azure

Les ressources Azure peuvent également être créées par programmation à partir du code. Cela vous permet d’écrire des applications qui provisionnent dynamiquement des ressources Azure en réponse aux demandes des utilisateurs. Le Kit de développement logiciel (SDK) Azure fournit des packages de gestion des ressources dans .NET, Go, Java, JavaScript et Python qui permettent aux ressources Azure d’être créées et gérées directement dans le code. Vous pouvez également gérer les ressources Azure via des requêtes HTTP vers un point de terminaison RESTful.