如何配置我的 Azure Functions 环境,以便可以在 Python 代码中使用 Cosmos DB 客户端?
Posted
技术标签:
【中文标题】如何配置我的 Azure Functions 环境,以便可以在 Python 代码中使用 Cosmos DB 客户端?【英文标题】:How do I configure my Azure Function's environment so that I can use the CosmosDB client in Python code? 【发布时间】:2022-01-18 08:39:45 【问题描述】:我正在使用 Python 编写的 API 构建 Azure 静态应用程序。我想使用 Cosmos 客户端。我能够配置我的本地机器以便本地开发工作:
我将 Azure Cosmos 安装到 Python 虚拟环境中:pip install azure-cosmos
在 Python 代码中,我创建并使用客户端
from azure.cosmos import cosmos_client
cosmos_client.CosmosClient(...)
如果我从 Python 虚拟环境中启动 swa
,一切正常:(.venv) $ swa start ...
我已将 Cosmos 密钥添加到应用的配置中。
但我无法让此代码在生产中工作。我部署了代码,但功能失败。当我检查 Application Insights 时,我看到了错误消息:
执行函数时出现异常:Functions.my_commands 结果: 失败异常:ModuleNotFoundError:没有名为“azure.cosmos”的模块。
我假设我必须运行一个命令或向requirements.txt
添加一些东西,但我不知道它是什么。
【问题讨论】:
在您的requirements.txt
中添加了这两个azure-functions
azure.cosmosdb=xx.xx
。
您好@RyeGrain,如果您使用此cmd
创建了工件,请告诉我们:- pip install --target="<PROJECT_DIR>/.python_packages/lib/site-packages" -r requirements.txt
并尝试部署和测试
修复了它。我添加了azure-cosmos==4.2.0
。请输入此内容,我会将其标记为已接受的答案。
很高兴听到您的问题得到解决!!谢谢:)
【参考方案1】:
我假设我必须运行一个命令或添加一些东西到 requirements.txt,但我不知道它是什么。
要解决此问题,请确保您已在 requirements.txt
文件中添加以下内容
azure-functions
azure-cosmos==x.x.x
有关更多信息,请参阅此GitHub
问题和SO THREAD。
【讨论】:
对于像我这样的新手来说,重要的教训是requirements.txt
中的行与您提供给pip
的行匹配。以上是关于如何配置我的 Azure Functions 环境,以便可以在 Python 代码中使用 Cosmos DB 客户端?的主要内容,如果未能解决你的问题,请参考以下文章
Azure Functions 的 Azure 队列触发器:配置最小轮询间隔
Azure Functions:我可以对 BlobTriggered 函数进行不同的配置吗?
如何从 Key Vault 自动映射 Azure Functions 机密
如何让 VSTS 使用 net Net Standard Azure Functions 找到我的 NetCore 单元测试?