你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 自动化中管理 Python 2 包

本文介绍如何在 Azure 沙盒环境和混合 Runbook 辅助角色上运行的 Azure 自动化中导入、管理和使用 Python 2 包。 为了帮助简化 runbook,可以使用 Python 包导入所需的模块。

有关如何管理 Python 3 包的信息,请参阅管理 Python 3 包

导入程序包

  1. 在你的自动化帐户中,在共享资源下选择 Python 程序包。 选择 + 添加 Python 程序包

    “Python 包”页的屏幕截图,其中显示了左侧菜单中的 Python 包,并突出显示了“添加 Python 包”。

  2. 在“添加 Python 包”页中,选择要上传的本地包。 包可以是 .whl 文件

  3. 输入名称并选择“运行时版本”为“2.x.x”

  4. 选择“导入” 。

    显示“添加 Python 包”页的屏幕截图,其中选择了一个已上传的 tar.gz 文件。

导入包后,它会在自动化帐户中的“Python 包”页上列出。 若要删除某个包,请先选择该包,然后选择删除

显示导入包后的“Python 2.7.x 包”页的屏幕截图。

导入具有依赖项的包

Azure 自动化在导入过程中不会解析 Python 程序包的依赖项。 可以通过两种方式导入包及其所有依赖项。 只需使用以下步骤之一,即可将包导入到 Azure 自动化帐户中。

手动下载

在安装有 Python2.7pip 的 Windows 64 位计算机上,运行以下命令以下载包及其所有依赖项:

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

下载程序包后,可以将其导入到你的自动化帐户中。

Runbook

若要获取 runbook,请按将 Python 2 包从 pypi 导入到 Azure 自动化帐户中的要求操作,将其从 Azure 自动化 GitHub 组织导入到你的自动化帐户。 请确保“运行设置”设置为 Azure 并启动具有参数的 runbook。 确保为自动化帐户启用了托管标识,并使托管标识具有“自动化参与者”访问权限,以便成功导入包。 对于每个参数,请确保按照以下列表和图片中所示,通过开关进行启动:

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

屏幕截图显示了 import_py2package_from_pypi 的“概述”页,其中的“启动 Runbook”窗格在右侧。

runbook 允许你指定下载的包。 例如,使用 Azure 参数将下载所有 Azure 模块和所有依赖项(大约 105 个)。 完成 runbook 后,可以在自动化帐户中的“共享资源”下查看“Python 包”,以验证是否已正确导入包 。

在 runbook 中使用包

导入包后,可以在 runbook 中使用。 添加以下代码以列出 Azure 订阅中的所有资源组:

#!/usr/bin/env python 
import os 
import requests 
# printing environment variables 
endPoint = os.getenv('IDENTITY_ENDPOINT') + "?resource=https://management.azure.com/" 
identityHeader = os.getenv('IDENTITY_HEADER') 
payload = {} 
headers = { 
    'X-IDENTITY-HEADER': identityHeader, 
    'Metadata': 'True' 
} 
response = requests.request("GET", endPoint, headers=headers, data=payload) 
print response.text 

脱机开发并测试 runbook

要脱机开发并测试你的 Python 2 runbook,可以使用 GitHub 上的 Azure Automation Python 模拟资产。 此模块使你能够引用凭据、变量、连接和证书等共享资源。

后续步骤

要准备 Python runbook,请参阅创建 Python runbook