Cómo crear y administrar recursos en Azure?

Azure proporciona una variedad de herramientas para crear y administrar los recursos de Azure que usa la aplicación.

Las distintas herramientas están diseñadas para admitir diferentes casos de uso y la mayoría de los desarrolladores de Azure usan una combinación de diferentes herramientas en función del trabajo que necesiten realizar. Por ejemplo, puede:

  • Use una herramienta de GUI como Azure Portal o la extensión azure Tools para VS Code al crear prototipos de recursos de Azure para una nueva aplicación. Las herramientas de GUI le guían a través del proceso de creación de nuevos servicios y le permiten revisar y seleccionar las opciones de un servicio mediante menús desplegables y otros elementos gráficos.

  • Escriba un script mediante la CLI de Azure o Azure PowerShell para automatizar una tarea común. Por ejemplo, puede crear un script que cree un entorno de desarrollo básico para una nueva aplicación web que consta de un servicio de App de Azure, una base de datos y un almacenamiento de blobs. Escribir un script garantiza que los recursos se crean de la misma manera cada vez y es más rápido ejecutarse que hacer clic en una interfaz de usuario.

  • Use herramientas de infraestructura como código (IaC) para implementar y administrar recursos de Azure mediante declaración. Las herramientas como Terraform, Ansible o Bicep le permiten codificar los recursos de Azure necesarios para una solución en sintaxis declarativa, lo que garantiza la implementación coherente de los recursos de Azure entre entornos e impide el desfase del entorno.

Azure portal

Azure Portal es una interfaz basada en web diseñada para administrar recursos de Azure. Las características de Azure Portal:

  • Interfaz de usuario basada en web fácil de usar para crear y administrar recursos de Azure
  • La capacidad de crear paneles configurables
  • Acceso a la configuración de suscripción y a la información de facturación.

A screenshot showing the Azure portal.

Paquete de extensiones de Herramientas de Azure de VS Code

Los desarrolladores que usan Visual Studio Code pueden administrar recursos de Azure directamente desde VS Code mediante el paquete de extensiones de Azure Tools para VS Code. El uso del paquete de extensiones de Herramientas de Azure puede:

  • Cree, administre e implemente código en sitios web mediante App de Azure Service.
  • Creación, exploración y consulta de bases de datos de Azure
  • Creación, depuración e implementación de Azure Functions directamente desde VS Code
  • Implementación de aplicaciones en contenedor desde VS Code

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

Herramientas de línea de comandos

Las herramientas de línea de comandos ofrecen las ventajas de eficiencia, repetibilidad y capacidad de crear scripts de tareas periódicas. Azure proporciona dos herramientas de línea de comandos diferentes entre las que elegir. La CLI de Azure y Azure PowerShell son funcionalmente equivalentes. Solo tiene que seleccionar y usar la herramienta que mejor se adapte a su flujo de trabajo individual.

CLI de Azure

La CLI de Azure es una herramienta de línea de comandos multiplataforma que se ejecuta en Windows, Linux y macOS. La CLI de Azure:

  • Incluye una sintaxis concisa y eficaz para administrar recursos de Azure.
  • Genera resultados como JSON (de forma predeterminada). Los resultados también se pueden formatear como YAML, una tabla ASCII o valores separados por tabulaciones sin claves.
  • Proporciona la capacidad de consultar y dar forma a la salida mediante el uso de consultas JMESPath.

Los comandos de la CLI de Azure se incorporan fácilmente a lenguajes de scripting populares, como Bash , lo que proporciona la capacidad de crear scripts de tareas comunes.

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 es un conjunto de cmdlets para administrar recursos de Azure directamente desde PowerShell. Azure PowerShell se instala como módulo de PowerShell y funciona con PowerShell 7.0.6 LTS y PowerShell 7.1.3 o posterior en todas las plataformas, como Windows, macOS y Linux. También es compatible con Windows PowerShell 5.1.

Azure PowerShell está estrechamente integrado con el lenguaje de PowerShell. Los comandos siguen un formato verbo-sustantivo y los datos se devuelven como objetos de PowerShell. Si ya está familiarizado con el scripting de PowerShell, Azure PowerShell es una opción natural.

$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

Para más información sobre cómo elegir entre la CLI de Azure y Azure PowerShell, consulte el artículo Elección de la herramienta de línea de comandos correcta.

Herramientas de infraestructura como código

La infraestructura como código es el proceso de administración y aprovisionamiento de recursos mediante archivos de configuración declarativos. La infraestructura como herramientas de código usa una especificación de estado final declarativo para garantizar que se crea y configura un conjunto de recursos de la misma manera cada vez. Además, la mayoría de la infraestructura como herramientas de código supervisan los recursos para asegurarse de que permanecen configurados en el estado deseado.

En el caso de las implementaciones de infraestructura automatizadas, repetidas y confiables, Soporte técnico de Azure una variedad de herramientas de infraestructura como código.

Bicep

Bicep es un lenguaje específico de dominio (DSL) que usa una sintaxis declarativa para implementar recursos de Azure. Brinda sintaxis concisa, seguridad de tipos confiable y compatibilidad con la reutilización de código.

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 es una herramienta de código abierto para aprovisionar y administrar la infraestructura de nube. Programa la infraestructura en archivos de configuración que describen la topología de los recursos en la nube. La CLI de Terraform proporciona un mecanismo sencillo para implementar y crear archivos de configuración de versiones en 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 es un producto de código abierto que automatiza el aprovisionamiento en la nube, la administración de configuración y las implementaciones de aplicaciones. Con Ansible puede aprovisionar maquinas virtuales, contenedores e infraestructuras en la nube y de red. Además, Ansible permite automatizar la implementación y la configuración de los recursos del entorno.

- 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

SDK de Azure y API REST

Los recursos de Azure también se pueden crear mediante programación a partir del código. Esto le permite escribir aplicaciones que aprovisionan dinámicamente recursos de Azure en respuesta a las solicitudes de usuario. El SDK de Azure proporciona paquetes de administración de recursos en .NET, Go, Java, JavaScript y Python que permiten crear y administrar recursos de Azure directamente en el código. Como alternativa, la API REST de Azure permite que los recursos de Azure se administren a través de solicitudes HTTP a un punto de conexión RESTful.