问题描述

参考官方文档(使用 Python 创建你的第一个持久函数:https://learn.microsoft.com/zh-cn/azure/azure-functions/durable/quickstart-python-vscode), 部署后,却出现“Failed to load function”错误。

在结合以上参考文档后,可以通过如下的步骤创建并运行 Python Durable Function(Model V2)。

检查步骤

第一 : 确保 requirements.txt 包含下面二行内容

azure-functions

azure-functions-durable

第二: 打开 VS Code  的  Terminal 命令行,在Function目录下运行下面几行命令:

python -m pip install -r requirements.txt

python.exe -m pip install --upgrade pip

pip install azure-functions-durable

第三 : 在本地文件   local.setting.json  检查是否有AzureWebJobsFeatureFlags字段 , 同样云端的Function Application Settings 中,也必须有AzureWebJobsFeatureFlags参数

"AzureWebJobsFeatureFlags": "EnableWorkerIndexing"

第四:  在本地测试运行, 最好连接到 真实的Azure Storage Account, 本地模拟的Storage 有时候不工作

"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=xxxxxx

第五 : 查看本地目录下, 确保有这几个 Durable Python V2 的核心文件

  • function_app.py
  • host.json
  • requirements.txt

第六:Python Model V2 Durable Function 示例代码

文件名 function_app.py

import azure.functions as func
import azure.durable_functions as df
myApp = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS) # An HTTP-Triggered Function with a Durable Functions Client binding
@myApp.route(route="httproute")
@myApp.durable_client_input(client_name="client")
async def http_start(req: func.HttpRequest, client):
#function_name = req.route_params.get('functionName')
function_name = "hello_orchestrator"
instance_id = await client.start_new(function_name)
response = client.create_check_status_response(req, instance_id)
return response # Orchestrator
@myApp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
result1 = yield context.call_activity("get_result", "Seattle")
result2 = yield context.call_activity("get_result", "Tokyo")
result3 = yield context.call_activity("get_result", "London")
return [result1, result2, result3] # Activity
@myApp.activity_trigger(input_name="city")
def get_result(city: str):
return "Hello " + city

第七: 本地测试

http://localhost:7071/api/httproute 这个可以返回 statusQueryGetUri 的 url ,http://localhost:7071/runtime/webhooks/durabletask/instances/xxxxxxxxxxxxxxxxx?taskHub=TestHubName&connection=Storage&code=xxxxxxxxxxxxxxxx,然后通过上面url 就可以看到 activity 的 结果了。

参考资料

使用 Python 创建你的第一个持久函数:https://learn.microsoft.com/zh-cn/azure/azure-functions/durable/quickstart-python-vscode

【Azure Function】示例运行 python durable function(model V2)的更多相关文章

  1. [Python] Python 之 function, unbound method 和 bound method

    首先看一下以下示例.(Python 2.7) #!/usr/bin/env python # -*- coding: utf-8 -*- class C(object): def foo(self): ...

  2. 【Azure 应用服务】部署Kafka Trigger Function到Azure Function服务中,解决自定义域名解析难题

    问题描述 经过前两篇文章,分别使用VM搭建了Kafka服务,创建了Azure Function项目,并且都在本地运行成功. [Azure Developer]在Azure VM (Windows) 中 ...

  3. Python Built-in Function 学习笔记

    Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...

  4. RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more infor

    在virtualenv环境下使用matplotlib绘图时遇到了这样的问题: >>> import matplotlib.pyplot as pltTraceback (most r ...

  5. 【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?

    问题描述 在App Service中运行Python编写的定时任务,需要使用pymssql连接到数据库,但是发现使用 python.exe -m pip install --upgrade -r re ...

  6. linux运行python程序

    linux下有多种方式运行python:   1. 命令行执行: 建立一个*.py文档,在其中书写python代码.之后,在命令行执行: $ python   *.py 注意事项:1. 需要指明文件的 ...

  7. python's object model

    [python's object model] 1.object.__init__(self[, ...])        如果subclass没有实现__init__,那么python类在实例化的时 ...

  8. 如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE

    http://www.crifan.com/how_to_do_python_development_under_windows_environment/ 本文目的 希望对于,如何在Windows下, ...

  9. Skulpt在线模拟运行Python工具

    1. Skulpt是一个完全依靠浏览器端模拟实现Python运行的工具 2. 不需要预处理.插件或服务器端支持,只需编写python并重新载入即可. 3. 由于代码完全是在浏览器中运行的,所以不必担心 ...

  10. 【Python从入门到精通】(二)怎么运行Python呢?有哪些好的开发工具(PyCharm)

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 这是Pyhon系列文章的第二篇,本文主要介绍如何运行Python程序以及安装PyCharm开发工具. 干货满满,建议收藏,需要用到时常看看. 小伙 ...

随机推荐

  1. systemctl 关闭图形界面的办法

    开机以命令模式启动,执行: systemctl set-default multi-user.target   开机以图形界面启动,执行: systemctl set-default graphica ...

  2. Vue3中hook的简单使用

    创建文件夹 在src下创建文件夹.文件名称为hooks. hooks下的文件夹下,是你的封装的hook: 通过命名为useXXXXXX usexy.js 文件是封装的获取屏幕的坐标 import { ...

  3. 【0基础学爬虫】爬虫基础之自动化工具 Pyppeteer 的使用

    大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶.逆向相关文章,为实现从易到难全方位覆盖,特设[0基础学爬 ...

  4. JS 逆向之 Hook,吃着火锅唱着歌,突然就被麻匪劫了!

    关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 什么是 Hook? Hook 中文译为钩子,Hook 实际上是 Windows 中提供的一种用以 ...

  5. git push卡住了 git push writing object

    解决方案: 执行命令:$ git config --global http.postBuffer 524288000 再次push 会卡在这里:POST git-receive-pack(892384 ...

  6. el-select添加全部选项

    /**给返回的搜索条件插入全部**/ global.addAll = function (list) { let addAllList = list addAllList.unshift({label ...

  7. 机器学习算法(三):基于horse-colic数据的KNN近邻(k-nearest neighbors)预测分类

    机器学习算法(三):基于horse-colic数据的KNN近邻(k-nearest neighbors)预测分类 项目链接参考:https://www.heywhale.com/home/column ...

  8. 创建Vue项目,报错spawn yarn ENOENT

    1. 使用 vue 创建项目的时候,报错 Error: spawn yarn ENOENT 1.1 用户自己设置了默认的包管理 yarn 1.2 没有安装 yarn 解决方式1: 打开 C盘 , 在 ...

  9. SpringCloud-02-Nacos注册中心

    Nacos注册中心 1.认识Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件.相比Eureka功能更加丰富,在国内受欢迎程度较高. 2.安装Nacos 1 1.下载安装 ...

  10. flutter3+dart3聊天室|Flutter3跨平台仿微信App语音聊天/朋友圈

    全新研发flutter3+dart3+photo_view跨多端仿微信App界面聊天Flutter3-Chat. flutter3-chat基于最新跨全平台技术flutter3+dart3+mater ...