在 Azure 自动化 Runbook 中安装和导入 Python 包

Posted

技术标签:

【中文标题】在 Azure 自动化 Runbook 中安装和导入 Python 包【英文标题】:Python packages installation and import in Azure Automantion Runbook 【发布时间】:2022-01-08 21:46:45 【问题描述】:

我在 Azure Automantion Runbook 中安装 python 包。安装后,我从包 azure.keyvault 导入时遇到问题。 这是我的代码:

import subprocess
import sys


output = subprocess.run(["python", "-m", "pip", "install", "azure-identity"], capture_output=True)
print(output)
print('key vault setup')
output = subprocess.run(["python", "-m", "pip", "install", "azure-keyvault"], capture_output=True)
print(output)
import site
from importlib import (reload, invalidate_caches)
reload(site)
invalidate_caches()
import azure.identity
import azure.keyvault
from azure.identity import DefaultAzureCredential
from azure.keyvault import secrets

这是错误:

Failed
Traceback (most recent call last):  File "C:\Temp\oowpjjfq.qph\72071fbe-ccd8-4487-a45f-46c6e9ed9583", line 27, in <module>    from azure.keyvault import secrets Import Error: cannot import name 'secrets' from 'azure.keyvault' (C:\WPy64-3800\python-3.8.0.amd64\lib\site-packages\azure\keyvault\__init__.py)

我对从本地 azure.keyvault 导入没有问题。另请注意 import azure.keyvault 没有问题。这就是为什么我认为这个问题与 Runbook 有关。 我该如何解决?

【问题讨论】:

【参考方案1】:

azure-keyvault 包已弃用,最新版本仅用于安装新的 Azure Key Vault 包集:

azure-keyvault-certificates azure-keyvault-keys azure-keyvault-secrets

我不完全确定为什么 from azure.keyvault import secrets 行在本地和 Runbook 中具有不同的行为——我也可以在本地运行该行而不会引发异常。但要真正使用 Azure Key Vault 机密,您必须使用 azure-keyvault-secrets 包或使用旧版本的 azure-keyvault,例如 version 1.1.0。

(我在 Python 中使用 Azure SDK)

【讨论】:

以上是关于在 Azure 自动化 Runbook 中安装和导入 Python 包的主要内容,如果未能解决你的问题,请参考以下文章

使用 Webhook“参数列表中缺少参数”触发 Azure 自动化 Runbook 失败

新版Azure Automation Account 浅析 --- 更新Powershell模块和创建Runbook

Azure自动化| Runbook | Powershell | Get-AzRoleAssignment | Microsoft.Rest.Azure.CloudException

Azure Runbook检查状态

如何将参数发送到 Azure Runbook api

使用 python 将 azure Runbook 与 azure 中的文件共享连接起来