¿Cómo se crean y administran recursos en Azure
Esta es la quinta parte de una serie de 7 artículos para ayudar a los desarrolladores a empezar a trabajar con Azure.
- Parte 1: Introducción a Azure para desarrolladores
- Parte 2: Servicios de Azure clave para desarrolladores
- Parte 3: Hosting de aplicaciones en Azure
- Parte 4: Conexión de la aplicación a los servicios de Azure
- Parte 5: Cómo crear y administrar recursos en Azure
- Parte 6: Conceptos clave para compilar aplicaciones de Azure
- Parte 7: ¿Cómo se me factura?
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, es posible que:
Use una herramienta de GUI como Azure Portal o la extensión de 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 conste de una instancia de Azure App Service, una base de datos y un Blob Storage. Escribir un script garantiza que los recursos se creen de la misma manera cada vez y es más rápido de ejecutar que hacer clic a través de una interfaz de usuario.
Use herramientas de infraestructura como código (IaC) para implementar y administrar recursos de Azure mediante declaración. 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. Características de Azure Portal:
- Una interfaz de usuario basada en web fácil de usar para crear y administrar recursos de Azure
- Capacidad de crear paneles configurables
- Acceso a la configuración de suscripción y a la información de facturación.
Paquete de extensión de Azure Tools 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. Usar el paquete de extensiones de Azure Tools permite:
- Crear, administrar e implementar código en sitios web mediante Azure App Service.
- Crear, explorar y consultar bases de datos de Azure
- Crear, depurar e implementar instancias de Azure Functions directamente en VS Code
- Implementar aplicaciones contenedorizadas desde VS Code
Herramientas de línea de comandos
Las herramientas de línea de comandos proporcionan ventajas como eficacia, repetibilidad y la capacidad de crear scripts para 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.
- Permite 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 permite 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 los recursos de Azure directamente desde PowerShell. Azure PowerShell se instala como un módulo de PowerShell y funciona con PowerShell 7.0.6 LTS, PowerShell 7.1.3 y versiones posteriores 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 de verbo-sustantivo y los datos se devuelven como objetos 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 obtener 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. Las herramientas de infraestructura como código usan 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 las herramientas de infraestructura como código supervisan los recursos para asegurarse de que permanecen configurados con el estado deseado.
En el caso de las implementaciones de infraestructura automatizadas, repetidas y confiables, Azure admite varias 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 versionar los archivos de configuración 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.