Administración de conexiones en Azure Automation

Un recurso de conexión de Azure Automation contiene la información que se muestra a continuación. Esta información es necesaria para conectarse a aplicaciones o servicios externos desde un runbook o la configuración de DSC.

  • Información necesaria para la autenticación, como el nombre de usuario y la contraseña
  • Información de conexión, como la dirección URL o el puerto

El recurso de conexión mantiene juntas todas las propiedades para conectarse a una aplicación determinada, por lo que no es necesario crear varias variables. Puede editar los valores de una conexión en un lugar y pasar el nombre de una conexión a un runbook o una configuración de DSC en un solo parámetro. El runbook o la configuración acceden a las propiedades de una conexión mediante el cmdlet Get-AutomationConnection interno.

Cuando crea una conexión, debe especificar un tipo de conexión. El tipo de conexión es una plantilla que define un conjunto de propiedades. Puede agregar un tipo de conexión a Azure Automation mediante un módulo de integración con un archivo de metadatos. Se puede crear un tipo de conexión mediante la API de Azure Automation si el módulo de integración incluye un tipo de conexión y se importa en su cuenta de Automation.

Nota:

Los recursos protegidos en Azure Automation incluyen credenciales, certificados, conexiones y variables cifradas. Estos recursos se cifran y se almacenan en Azure Automation con una clave única que se genera para cada cuenta de Automation. Azure Automation almacena la clave en la instancia de Key Vault administrada por el sistema. Antes de almacenar un recurso seguro, Azure Automation carga la clave desde Key Vault y después la usa para cifrar el recurso.

Tipos de conexión

Azure Automation pone a disposición de los usuarios los siguientes tipos de conexión integrados:

  • Azure: representa una conexión que se usa para administrar recursos clásicos.
  • AzureServicePrincipal: representa una conexión que se usa para administrar recursos en Azure mediante una entidad de servicio.
  • AzureClassicCertificate: este tipo de conexión se usa para administrar los recursos de Azure que se crearon mediante el modelo de implementación clásica que no admite la autenticación de la entidad de servicio.

Cmdlets de PowerShell para acceder a las conexiones

Los cmdlets de la tabla siguiente permiten crear y administrar conexiones de Automation con PowerShell. Se suministran como un componente de los módulos Az.

Cmdlet Descripción
Get-AzAutomationConnection Recupera información acerca de una conexión.
New-AzAutomationConnection Crea una conexión nueva.
Remove-AzAutomationConnection Quita una conexión existente.
Set-AzAutomationConnectionFieldValue Establece el valor de un campo determinado para una conexión existente.

Cmdlets internos para acceder a las conexiones

El cmdlet interno de la tabla siguiente se usa para acceder a las conexiones de los runbooks y las configuraciones de DSC. Este cmdlet se incluye en el módulo global Orchestrator.AssetManagement.Cmdlets. Para más información, consulte Cmdlets internos.

Cmdlet interno Descripción
Get-AutomationConnection Recupera los valores de los distintos campos de la conexión y los devuelve como una tabla hash. Esta tabla hash se puede usar después con los comandos adecuados en el runbook o la configuración de DSC.

Nota:

Evite el uso de variables con el parámetro Name de Get-AutomationConnection. El uso de variables en este caso puede complicar la detección de dependencias entre runbooks o configuraciones de DSC y los recursos de conexión durante el tiempo de diseño.

Funciones de Python para acceder a las conexiones

La función de la tabla siguiente se usa para acceder a las conexiones de un runbook de Python 2 y 3. Actualmente, los runbooks de Python 3 están en versión preliminar.

Función Descripción
automationassets.get_automation_connection Recupera una conexión. Devuelve un diccionario con las propiedades de la conexión.

Nota:

Para acceder a las funciones del activo, debe importar el módulo automationassets en la parte superior del runbook de Python.

Crear una nueva conexión

Creación de una conexión con Azure Portal

Para crear una conexión nueva en Azure Portal:

  1. En la cuenta de Automation, haga clic en Conexiones en Recursos compartidos.
  2. En la página Conexiones, haga clic en + Agregar una conexión.
  3. En el campo Tipo del panel Nueva conexión, seleccione el tipo de conexión que desea crear. Las opciones son Azure, AzureServicePrincipal y AzureClassicCertificate.
  4. El formulario presenta las propiedades del tipo de conexión que ha elegido. Complete el formulario y haga clic en Crear para guardar la conexión nueva.

Creación de una conexión con Windows PowerShell

Cree una conexión con Windows PowerShell mediante el cmdlet New-AzAutomationConnection. Este cmdlet tiene un parámetro ConnectionFieldValuesque espera una tabla hash que defina los valores de cada una de las propiedades definidas por el tipo de conexión.

Puede usar los siguientes comandos de ejemplo para crear una conexión que se pueda usar para la autenticación mediante la entidad de servicio de Azure.

$ConnectionAssetName = "AzureConnection"
$ConnectionFieldValues = @{"ApplicationId" = $Application.ApplicationId; "TenantId" = $TenantID.TenantId; "CertificateThumbprint" = $Cert.Thumbprint; "SubscriptionId" = $SubscriptionId}
New-AzAutomationConnection -ResourceGroupName $ResourceGroup -AutomationAccountName $AutomationAccountName -Name $ConnectionAssetName -ConnectionTypeName AzureServicePrincipal -ConnectionFieldValues $ConnectionFieldValues

Si intenta crear un recurso de conexión para conectarse a un servicio o a una aplicación con un método de autenticación diferente, la operación generará un error porque el tipo de conexión no se ha definido todavía en la cuenta de Automation. Para más información sobre cómo crear su propio tipo de conexión para un módulo personalizado, consulte Agregar un tipo de conexión.

Agregar un tipo de conexión

Si el runbook o la configuración de DSC se conectan a un servicio externo, debe definir un tipo de conexión en un módulo personalizado denominado "módulo de integración". Este módulo incluye un archivo de metadatos que especifica las propiedades del tipo de conexión, se denomina <ModuleName>-Automation.json y se encuentra en la carpeta del módulo del archivo .zip comprimido. Este archivo contiene los campos de una conexión que se necesitan para conectarse al sistema o servicio que representa el módulo. Con este archivo, puede establecer los nombres de campo, los tipos de datos, el estado de cifrado y el estado opcional del tipo de conexión. No se admiten varios tipos de conexión en este archivo.

El ejemplo siguiente es una plantilla en el formato de archivo .json que define propiedades de nombre de usuario y contraseña de un tipo de conexión predeterminado denominado MyModuleConnection:

{
   "ConnectionFields": [
   {
      "IsEncrypted":  false,
      "IsOptional":  true,
      "Name":  "Username",
      "TypeName":  "System.String"
   },
   {
      "IsEncrypted":  true,
      "IsOptional":  false,
      "Name":  "Password",
      "TypeName":  "System.String"
   }
   ],
   "ConnectionTypeName":  "MyModuleConnection",
   "IntegrationModuleName":  "MyModule"
}

Obtención de una conexión en un runbook o una configuración de DSC

Recupere una conexión de un runbook o una configuración de DSC con el cmdlet Get-AutomationConnection interno. Este cmdlet es preferible al cmdlet Get-AzAutomationConnection, ya que recupera los valores de conexión en lugar de la información sobre la conexión.

El ejemplo siguiente muestra cómo utilizar una conexión para autenticar con recursos de Azure Resource Manager en su runbook. Utiliza el recurso de conexión, que hace referencia a la entidad de servicio basada en certificado.

$Conn = Get-AutomationConnection -Name AzureConnection
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

Ejemplos de runbook gráfico

Puede agregar una actividad para el cmdlet Get-AutomationConnection interno a un runbook gráfico. Haga clic con el botón derecho en la conexión en el panel Biblioteca del editor gráfico y seleccione Agregar al lienzo.

add to canvas

La imagen siguiente muestra un ejemplo de cómo usar un objeto de conexión en un runbook gráfico.

get connections

Pasos siguientes