当前位置: 首页 > 知识库问答 >
问题:

如何部署Azure功能,并确保更新包

贺跃
2023-03-14

我让我的函数在本地工作,然后当我部署它们时,会出现如下错误:

结果:失败异常:ModuleNotFoundError:没有名为“azure.cosmosdb”的模块。故障排除指南:https://aka.ms/functions-modulenotfound 堆栈:文件“/azure functions host/workers/python/3.8/LINUX/X64/azure\u functions\u worker/dispatcher.py”,第284行,在\u handle\u function\u load\u request func=loader.load\u function(文件“/azure functions host/workers/python/3.8/LINUX/X64/azure\u functions\u worker/utils/wrappers.py”中,第42行,调用提升扩展异常消息(e,消息)文件“/azure函数主机/workers/python/3.8/LINUX/X64/azure函数工作者/utils/wrappers.py”,第40行,调用返回函数(*args,**kwargs)文件“/azure函数主机/workers/python/3.8/LINUX/X64/azure函数工作者/loader.py”,第76行,在load_函数mod=importlib.import_模块(fullmodname)文件“/usr/local/lib/python3.8/importlib/init.py”中,第127行,在import_模块返回引导中。_gcd_导入(名称[级别:,包,级别)文件“/home/site/wwwwroot/user add/init.py”,第4行,从azure.cosmodb.table.table.tableservice导入tableservice

我认为这看起来像是Azure端的Python env没有Azure,因为我在导入中这样指定:

import logging

import azure.functions as func
import azure.cosmosdb.table
from azure.cosmosdb.table.tableservice import TableService
from azure.cosmosdb.table.models import Entity


def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    user_id = req.params.get('user_id')
    if not user_id:
        try:
            req_body = req.get_json()
        except ValueError:
            pass
        else:
            user_id = req_body.get('user_id')

    if user_id:

        the_connection_string = "redacted"
        table_service = TableService(endpoint_suffix="table.cosmos.azure.com",
                     connection_string=the_connection_string)

        # table_service.create_table('usertable')

        user = {"PartitionKey": "user",
                "RowKey": user_id}

        table_service.insert_entity('usertable', user)

        return func.HttpResponse(f"{user_id} added to the user database")

    else:
        return func.HttpResponse(
            "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
            status_code=200
        )

我不明白我需要做什么来强制他们安装一个同等的pip?这是疯狂的,因为它应该是无服务器的?

共有1个答案

慕仲渊
2023-03-14

请首先确保已将azure cosmos添加到requirements.txt文件中。

当您将Python azure函数部署到azure时,它将基于此文件安装模块。

 类似资料:
  • 我在这里讨论一下文档:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-output?tabs=python 以下是我目前掌握的代码: function.json 初始化。py 如果我理解正确,当一个Blob被添加到容器中时,这个函数应该被触发,并且它可以在同一个容器中保存该

  • 应用更新部署无需reload或者restarthi-nginx。hi-nginx-java能根据全局配置 route { lrucache { reflect { expires = 300 size = 1024 } } } 自动实现热更新。关键值由"route.lrucache.reflect.e

  • 我正在试验Firebase的云功能,并在functions-samples repo中部署了一个示例,并使用将其链接到一个现有项目。 由于我只是在玩,这些文件没有添加到我的版本控制中,我不再有权访问执行此操作的机器。我想在这个函数的基础上构建或创建新的函数,但我不确定如何1)修改和重新部署原来的函数,或者2)取消-并重新开始。我在我的firebase控制台中看到这个函数,但没有“delete”或“

  • 我想继续向ServiceMix 6.0部署一个功能,它基于Karaf 3.0.4。 我第一次尝试使用karaf控制台。但也存在一些问题。对于标准的karaf安装,无法在karaf控制台上确定是否已经安装了功能(请参阅我的其他问题)。karaf控制台的另一个问题是它不支持退出代码。因此,无法可靠地确定功能安装是否成功完成。 然后我安装了hawtio,并试图通过与hawtio捆绑的jolokia/RE

  • 需要帮助找到通过-1或使用appsettings部署应用程序自定义应用程序设置的方法。由my.funproj创建的json(vs工具2015)2.appveyor的环境变量3.任何其他技巧 我想要的只是避免在门户中手动设置这些东西并让它们受到源代码控制(更好地使用部署,例如-appveyer的安全环境变量) 提前感谢!下面是我针对的门户设置的示例- 应用程序的环境变量设置示例- 函数应用程序(ru

  • 我有以下设置,我试图创建一个多功能GCP云功能项目,但我未能部署任何功能,因为一个“通用”错误,这一点都不太有帮助。 我的项目结构是这样的,为了保持简单,我只写了函数1,但是有一个函数2,等等。 使用Cloud Functions支持和支持 项目结构: 代码片段: references使用GCP应该能够解析的go模块导入语法。 要部署我称之为gCloud的函数,请从项目的根目录: 我收到的错误是