Asset di connessione in Automazione di AzureConnection assets in Azure Automation

Un asset di connessione di Automazione contiene le informazioni necessarie per la connessione a un servizio esterno o a un'applicazione da un Runbook o una configurazione DSC.An Automation connection asset contains the information required to connect to an external service or application from a runbook or DSC configuration. ad esempio le informazioni necessarie per l'autenticazione, quali nome utente e password, oltre alle informazioni di connessione quali un URL o una porta.This may include information required for authentication such as a username and password in addition to connection information such as a URL or a port. Il valore di una connessione consiste nel mantenere tutte le proprietà per la connessione a un'applicazione specifica in un singolo asset, invece di creare più variabili.The value of a connection is keeping all of the properties for connecting to a particular application in one asset as opposed to creating multiple variables. L'utente può modificare i valori per una connessione in un'unica posizione e può passare il nome di una connessione a un Runbook o a una configurazione DSC in un singolo parametro.The user can edit the values for a connection in one place, and you can pass the name of a connection to a runbook or DSC configuration in a single parameter. È possibile accedere alle proprietà per una connessione nel Runbook o nella configurazione DSC con l'attività Get-AutomationConnection .The properties for a connection can be accessed in the runbook or DSC configuration with the Get-AutomationConnection activity.

Quando si crea una connessione, è necessario specificare un tipo di connessione.When you create a connection, you must specify a connection type. Il tipo di connessione è un modello che definisce un set di proprietà.The connection type is a template that defines a set of properties. La connessione definisce i valori per ogni proprietà definita nel rispettivo tipo di connessione.The connection defines values for each property defined in its connection type. I tipi di connessione vengono aggiunti ad Automazione di Azure nei moduli di integrazione oppure creati con l'API di Automazione di Azure se il modulo di integrazione include un tipo di connessione e viene importato nell'account di Automazione.Connection types are added to Azure Automation in integration modules or created with the Azure Automation API if the integration module includes a connection type and is imported into your Automation account. In caso contrario, sarà necessario creare un file di metadati per specificare un tipo di connessione di Automazione.Otherwise, you will need to create a metadata file to specify an Automation connection type. Per ulteriori informazioni, vedere Moduli di integrazione.For further information regarding this, see Integration Modules.

Nota

Gli asset sicuri in Automazione di Azure includono credenziali, certificati, connessioni e variabili crittografate.Secure assets in Azure Automation include credentials, certificates, connections, and encrypted variables. Questi asset vengono crittografati e archiviati in Automazione di Azure tramite una chiave univoca generata per ogni account di automazione.These assets are encrypted and stored in the Azure Automation using a unique key that is generated for each automation account. La chiave viene crittografata da un certificato master e archiviata in Automazione di Azure.This key is encrypted by a master certificate and stored in Azure Automation. Prima dell'archiviazione di un asset sicuro, la chiave per l'account di automazione viene decrittografata usando il certificato master e viene quindi usata per crittografare l'asset.Before storing a secure asset, the key for the automation account is decrypted using the master certificate and then used to encrypt the asset.

Cmdlet di Windows PowerShellWindows PowerShell Cmdlets

I cmdlet della tabella seguente vengono usati per creare e gestire connessioni di automazione con Windows PowerShell.The cmdlets in the following table are used to create and manage Automation connections with Windows PowerShell. Sono inclusi nel modulo Azure PowerShell , disponibile per l'uso nei runbook di Automazione e nelle configurazioni DSC.They ship as part of the Azure PowerShell module which is available for use in Automation runbooks and DSC configurations.

CmdletCmdlet DescrizioneDescription
Get-AzureRmAutomationConnectionGet-AzureRmAutomationConnection Recupera una connessione.Retrieves a connection. Include una tabella hash con i valori dei campi della connessione.Includes a hash table with the values of the connection’s fields.
New-AzureRmAutomationConnectionNew-AzureRmAutomationConnection Crea una nuova connessione.Creates a new connection.
Remove-AzureRmAutomationConnectionRemove-AzureRmAutomationConnection Rimuove una connessione esistente.Remove an existing connection.
Set-AzureRmAutomationConnectionFieldValueSet-AzureRmAutomationConnectionFieldValue Imposta il valore di un campo specifico per una connessione esistente.Sets the value of a particular field for an existing connection.

AttivitàActivities

Le attività incluse nella tabella seguente vengono usate per accedere alle connessioni in un Runbook o configurazione DSC.The activities in the following table are used to access connections in a runbook or DSC configuration.

AttivitàActivities DescrizioneDescription
Get-AutomationConnectionGet-AutomationConnection Ottiene una connessione da usare.Gets a connection to use. Restituisce una tabella hash con le proprietà della connessione.Returns a hash table with the properties of the connection.

Nota

È consigliabile evitare di usare le variabili con il parametro –Name di Get- AutomationConnection , poiché ciò può complicare l'individuazione delle dipendenze tra i Runbook o configurazioni DSC e gli asset di connessione durante la fase di progettazione.You should avoid using variables with the –Name parameter of Get- AutomationConnection since this can complicate discovering dependencies between runbooks or DSC configurations, and connection assets at design time.

Funzioni Python2Python2 functions

La funzione nella tabella seguente viene usata per accedere alle connessioni in un runbook Python2.The function in the following table is used to access connections in a Python2 runbook.

FunzioneFunction DescrizioneDescription
automationassets.get_automation_connectionautomationassets.get_automation_connection Recupera una connessione.Retrieves a connection. Restituisce un dizionario con le proprietà della connessione.Returns a dictionary with the properties of the connection.

Nota

È necessario importare il modulo "automationassets" nella parte superiore del runbook Python per poter accedere alle funzioni dell'asset.You must import the "automationassets" module at the top of your Python runbook in order to access the asset functions.

Creazione di una nuova connessioneCreating a New Connection

Per creare una nuova connessione con il portale di AzureTo create a new connection with the Azure portal

  1. Dall'account di automazione fare clic sulla parte Asset per aprire il pannello Asset.From your automation account, click the Assets part to open the Assets blade.
  2. Fare clic sulla parte Connessioni per aprire il pannello Connessioni.Click the Connections part to open the Connections blade.
  3. Fare clic su Aggiungi connessione nella parte superiore del pannello.Click Add a connection at the top of the blade.
  4. Dall'elenco a discesa Tipo selezionare il tipo di connessione da creare.In the Type dropdown, select the type of connection you want to create. Il modulo presenta le proprietà per il tipo di connessione specifico.The form will present the properties for that particular type.
  5. Completare il modulo e fare clic su Crea per salvare la nuova connessione.Complete the form and click Create to save the new connection.

Per creare una nuova connessione con il portale di Azure classicoTo create a new connection with the Azure classic portal

  1. Dall'account di automazione fare clic su Asset nella parte superiore della finestra.From your automation account, click Assets at the top of the window.
  2. Nella parte inferiore della finestra, fare clic su Aggiungi impostazione.At the bottom of the window, click Add Setting.
  3. Fare clic su Aggiungi connessione.Click Add Connection.
  4. Dall'elenco a discesa Tipo di connessione selezionare il tipo di connessione da creare.In the Connection Type dropdown, select the type of connection you want to create. La procedura guidata presenta le proprietà per il tipo di connessione specifico.The wizard will present the properties for that particular type.
  5. Completare la procedura guidata e selezionare la casella di controllo per salvare la nuova connessione.Complete the wizard and click the checkbox to save the new connection.

Per creare una nuova connessione con Windows PowerShellTo create a new connection with Windows PowerShell

Creare una nuova connessione con Windows PowerShell usando il cmdlet New-AzureRmAutomationConnection.Create a new connection with Windows PowerShell using the New-AzureRmAutomationConnection cmdlet. Questo cmdlet ha un parametro denominato ConnectionFieldValues che prevede una tabella hash che definisce i valori per ogni proprietà definita dal tipo di connessione.This cmdlet has a parameter named ConnectionFieldValues that expects a hash table defining values for each of the properties defined by the connection type.

Se si ha familiarità con l'account RunAs di Automazione per autenticare i runbook usando l'entità servizio, è possibile usare lo script di PowerShell fornito come alternativa alla creazione dell'account RunAs dal portale per creare un nuovo asset di connessione tramite i semplici comandi seguenti.If you are familiar with the Automation Run As account to authenticate runbooks using the service principal, the PowerShell script, provided as an alternative to creating the Run As account from the portal, creates a new connection asset using the following sample commands.

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

È possibile utilizzare lo script per creare un asset di connessione perché, quando si crea l'account di Automazione, questo include automaticamente e per impostazione predefinita diversi moduli globali insieme al tipo di connessione AzurServicePrincipal, per creare l'asset di connessione AzureRunAsConnection.You are able to use the script to create the connection asset because when you create your Automation account, it automatically includes several global modules by default along with the connection type AzurServicePrincipal to create the AzureRunAsConnection connection asset. È un fattore importante da tenere presente, poiché se si tenta di creare un nuovo asset di connessione a un servizio o a un'applicazione con un metodo di autenticazione diverso, la creazione avrà esito negativo in quanto il tipo di connessione non è già definito nell'account di Automazione.This is important to keep in mind, because if you attempt to create a new connection asset to connect to a service or application with a different authentication method, it will fail because the connection type is not already defined in your Automation account. Per ulteriori informazioni su come creare un tipo di connessione personalizzata adatta al modulo da PowerShell Gallery, vedere Moduli di integrazioneFor further information on how to create your own connection type for your custom or module from the PowerShell Gallery, see Integration Modules

Uso di una connessione in un Runbook o in una configurazione DSCUsing a connection in a runbook or DSC configuration

Il cmdlet Get-AutomationConnection permette di recuperare una connessione in un Runbook o in una configurazione DSC.You retrieve a connection in a runbook or DSC configuration with the Get-AutomationConnection cmdlet. Non è possibile usare l'attività Get-AzureRmAutomationConnection.You cannot use the Get-AzureRmAutomationConnection activity. Questa attività recupera i valori dei diversi campi nella connessione e li restituisce come tabella hash , che può essere quindi usata con i comandi appropriati nel Runbook o nella configurazione DSC.This activity retrieves the values of the different fields in the connection and returns them as a hash table which can then be used with the appropriate commands in the runbook or DSC configuration.

Esempio di Runbook testualeTextual runbook sample

I comandi di esempio seguenti mostrano come usare l'account RunAs menzionato in precedenza per autenticarsi con le risorse di Azure Resource Manager nel proprio Runbook.The following sample commands show how to use the Run As account mentioned earlier, to authenticate with Azure Resource Manager resources in your runbook. Usa l'asset di connessione che rappresenta l'account RunAs, il quale fa riferimento all'entità servizio basata sui certificati, non alle credenziali.It uses the connection asset representing the Run As account, which references the certificate-based service principal, not credentials.

$Conn = Get-AutomationConnection -Name AzureRunAsConnection 
Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint 

Esempi di runbook graficiGraphical runbook samples

Per aggiungere un'attività Get-AutomationConnection a un Runbook grafico, fare clic con il pulsante destro del mouse sulla connessione nel riquadro della libreria dell'editor grafico e scegliere Aggiungi a area di disegno.You add a Get-AutomationConnection activity to a graphical runbook by right-clicking on the connection in the Library pane of the graphical editor and selecting Add to canvas.

La figura seguente mostra un esempio dell'uso di una connessione in un Runbook grafico.The following image shows an example of using a connection in a graphical runbook. Si tratta dello stesso esempio mostrato in precedenza per l'autenticazione usando l'account RunAs con un Runbook testuale.This is the same example shown above for authenticating using the Run As account with a textual runbook. In questo esempio viene usato il set di dati Valore costante per l'attività Get RunAs Connection (Ottieni connessione RunAs) che usa un oggetto di connessione per l'autenticazione.This example uses the Constant value data set for the Get RunAs Connection activity that uses a connection object for authentication. Viene usato un collegamento pipeline , poiché il parametro ServicePrincipalCertificate impostato prevede un singolo oggetto.A pipeline link is used here since the ServicePrincipalCertificate parameter set is expecting a single object.

Esempio di runbook Python2Python2 runbook sample

L'esempio seguente illustra come eseguire l'autenticazione tramite la connessione Run As in un runbook Python2.The following sample shows how to authenticate using the Run As connection in a Python2 runbook.

""" Tutorial to show how to authenticate against Azure resource manager resources """
import azure.mgmt.resource
import automationassets


def get_automation_runas_credential(runas_connection):
    """ Returns credentials to authenticate against Azure resoruce manager """
    from OpenSSL import crypto
    from msrestazure import azure_active_directory
    import adal

    # Get the Azure Automation Run As service principal certificate
    cert = automationassets.get_automation_certificate("AzureRunAsCertificate")
    pks12_cert = crypto.load_pkcs12(cert)
    pem_pkey = crypto.dump_privatekey(crypto.FILETYPE_PEM, pks12_cert.get_privatekey())

    # Get Run As connection information for the Azure Automation service principal
    application_id = runas_connection["ApplicationId"]
    thumbprint = runas_connection["CertificateThumbprint"]
    tenant_id = runas_connection["TenantId"]

    # Authenticate with service principal certificate
    resource = "https://management.core.windows.net/"
    authority_url = ("https://login.microsoftonline.com/" + tenant_id)
    context = adal.AuthenticationContext(authority_url)
    return azure_active_directory.AdalAuthentication(
        lambda: context.acquire_token_with_client_certificate(
            resource,
            application_id,
            pem_pkey,
            thumbprint)
    )


# Authenticate to Azure using the Azure Automation Run As service principal
runas_connection = automationassets.get_automation_connection("AzureRunAsConnection")
azure_credential = get_automation_runas_credential(runas_connection)

Passaggi successiviNext steps

  • Consultare la sezione Collegamenti nella creazione grafica per informazioni su come dirigere e controllare il flusso di logica nei runbook.Review Links in graphical authoring to understand how to direct and control the flow of logic in your runbooks.

  • Vedere Moduli di integrazione per ulteriori informazioni sull'uso dei moduli di PowerShell da parte di Automazione di Azure e per conoscere le procedure consigliate per creare i propri moduli di PowerShell come moduli di integrazione in Automazione di Azure.To learn more about Azure Automation's use of PowerShell modules and best practices for creating your own PowerShell modules to work as Integration Modules within Azure Automation, see Integration Modules.