Verwalten von Python 2-Paketen in Azure Automation

In diesem Artikel wird beschrieben, wie Sie Python 2-Pakete in Azure Automation, das in der Azure-Sandboxumgebung und auf Hybrid Runbook Workern ausgeführt wird, importieren, verwalten und verwenden. Zur Vereinfachung von Runbooks können Sie Python-Pakete verwenden, um die benötigten Module zu importieren.

Informationen zum Verwalten von Python 3-Paketen finden Sie unter Verwalten von Python 3-Paketen.

Importieren von Paketen

  1. Wählen Sie in Ihrem Azure Automation-Konto unter Python-Pakete die Option Freigegebene Ressourcen aus. Klicken Sie auf + Python-Paket hinzufügen.

    Screenshot of the Python packages page shows Python packages in the left menu and Add a Python package highlighted.

  2. Wählen Sie auf der Seite Python-Paket hinzufügen ein lokales Paket für den Upload aus. Das Paket kann eine Datei im Format .whl oder .tar.gz sein.

  3. Geben Sie den Namen ein, und wählen Sie für die Runtimeversion entsprechend 2.x.x aus.

  4. Wählen Sie Importieren aus.

    Screenshot shows the Add Python Package page with an uploaded tar.gz file selected.

Nachdem ein Paket importiert wurde, wird es in Ihrem Automation-Konto auf der Seite Python-Pakete aufgelistet. Um ein Paket zu entfernen, wählen Sie das Paket aus, und klicken Sie dann auf Löschen.

Screenshot shows the Python 2.7.x packages page after a package has been imported.

Importieren von Paketen mit Abhängigkeiten

Azure Automation löst Abhängigkeiten für Python-Pakete während des Importvorgangs nicht auf. Es gibt zwei Möglichkeiten, um ein Paket mit allen seinen Abhängigkeiten zu importieren. Nur einer der folgenden Schritte muss verwendet werden, um die Pakete in Ihr Automation-Konto zu importieren.

Manuelles Herunterladen

Führen Sie auf einem Windows-Computer (64-Bit), auf dem Python2.7 und pip installiert sind, den folgenden Befehl aus, um ein Paket mit allen seinen Abhängigkeiten herunterzuladen:

C:\Python27\Scripts\pip2.7.exe download -d <output dir> <package name>

Sobald die Pakete heruntergeladen sind, können Sie sie in Ihr Automation-Konto importieren.

Runbook

Um ein Runbook zu erhalten, importieren Sie aus der Azure Automation-GitHub-Organisation Python 2-Pakete aus pypi in Ihr Azure Automation-Konto. Stellen Sie sicher, dass die Ausführungseinstellungen auf Azure festgelegt sind, und starten Sie das Runbook mit den Parametern. Das Runbook erfordert ein „Ausführendes Konto“, damit das Automation-Konto funktioniert. Für jeden Parameter stellen Sie sicher, dass Sie ihn mit dem Parameter starten, wie er in der folgende Liste und Abbildung zu sehen ist:

  • -s <subscriptionId>
  • -g <resourceGroup>
  • -a <automationAccount>
  • -m <modulePackage>

Screenshot shows the Overview page for import_py2package_from_pypi with the Start Runbook pane on the right side.

Mithilfe des Runbooks können Sie angeben, welches Paket heruntergeladen werden soll. Verwenden Sie beispielsweise den Azure-Parameter, um alle Azure-Module und alle Abhängigkeiten (etwa 105) herunterzuladen.

Nach Abschluss des Runbooks können Sie die Seite Python-Pakete unter Freigegebene Ressourcen in Ihrem Automation-Konto überprüfen, um zu bestätigen, dass das Paket ordnungsgemäß importiert wurde.

Verwenden eines Pakets in einem Runbook

Nachdem Sie ein Paket importiert haben, können Sie es in einem Runbook verwenden. Das folgende Beispiel verwendet das Azure Automation-Hilfsprogrammpaket. Dieses Paket erleichtert die Verwendung von Python mit Azure Automation. Um das Paket zu verwenden, folgen Sie den Anweisungen im GitHub-Repository, und fügen Sie es dem Runbook hinzu. Beispielsweise können Sie from azure_automation_utility import get_automation_runas_credential verwenden, um die Funktion zum Abrufen des ausführenden Kontos zu importieren.

import azure.mgmt.resource
import automationassets
from azure_automation_utility import get_automation_runas_credential

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

# Intialize the resource management client with the RunAs credential and subscription
resource_client = azure.mgmt.resource.ResourceManagementClient(
    azure_credential,
    str(runas_connection["SubscriptionId"]))

# Get list of resource groups and print them out
groups = resource_client.resource_groups.list()
for group in groups:
    print group.name

Hinweis

Da das Python-Paket automationassets auf pypi.org nicht verfügbar ist, kann es nicht auf einen Windows-Computer importiert werden.

Entwickeln und Testen von Runbooks im Offlinemodus

Um Ihre Python 2-Runbooks offline zu entwickeln und zu testen, können Sie die für das Python-Modul emulierten Azure Automation-Assets auf GitHub verwenden. Mit diesem Modul können Sie auf Ihre freigegebenen Ressourcen wie Anmeldeinformationen, Variablen, Verbindungen und Zertifikate verweisen.

Nächste Schritte

Informationen zum Vorbereiten eines Python-Runbooks finden Sie unter Tutorial: Erstellen eines Python-Runbooks.