华为云用户手册
-
Yaml完整配置 华为云 函数工作流 (FunctionGraph)组件的Yaml字段如下: edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范 name: fg-test # 项目名称 access: "default" # 秘钥别名 vars: # 全局变量 region: "cn-east-3" functionName: "start-fg-event-nodejs14" services: component-test: # 服务名称 component: fgs # 组件名称 props: region: ${vars.region} function: functionName: ${vars.functionName} # 函数名 handler: index.handler # 函数执行入口 memorySize: 256 # 函数消耗的内存 timeout: 30 # 函数执行超时时间 runtime: Node.js14.18 # 运行时 agencyName: fgs-vpc-test # 委托名称 environmentVariables: # 环境变量 test: test hello: world vpcId: xxx-xxx # 虚拟私有云唯一标识 subnetId: xxx-xxx # 子网编号 concurrency: 10 # 单函数最大实例数 concurrentNum: 10 # 单实例最大并发数 codeType: zip # 函数代码类型 dependVersionList: # 依赖包,取依赖包的ID - xxx-xxx code: # 本地代码地址 codeUri: ./code trigger: triggerTypeCode: TIMER # 触发器类型 status: DISABLED # 触发器状态 eventData: # 触发器配置 name: APIG_test # API名称 groupName: APIGroup_xxx # 分组名称 auth: IAM # 安全认证 protocol: HTTPS # 请求协议 timeout: 5000 # 后端超时时间
-
Yaml完整配置 华为云函数工作流(FunctionGraph)组件的Yaml字段如下: edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范 name: fg-test # 项目名称 access: "default" # 秘钥别名 vars: # 全局变量 region: "cn-east-3" functionName: "start-fg-event-nodejs14" services: component-test: # 服务名称 component: fgs # 组件名称 props: region: ${vars.region} function: functionName: ${vars.functionName} # 函数名 handler: index.handler # 函数执行入口 memorySize: 256 # 函数消耗的内存 timeout: 30 # 函数执行超时时间 runtime: Node.js14.18 # 运行时 agencyName: fgs-vpc-test # 委托名称 environmentVariables: # 环境变量 test: test hello: world vpcId: xxx-xxx # 虚拟私有云唯一标识 subnetId: xxx-xxx # 子网编号 concurrency: 10 # 单函数最大实例数 concurrentNum: 10 # 单实例最大并发数 codeType: zip # 函数代码类型 dependVersionList: # 依赖包,取依赖包的ID - xxx-xxx code: # 本地代码地址 codeUri: ./code trigger: triggerTypeCode: TIMER # 触发器类型 status: DISABLED # 触发器状态 eventData: # 触发器配置 name: APIG_test # API名称 groupName: APIGroup_xxx # 分组名称 auth: IAM # 安全认证 protocol: HTTPS # 请求协议 timeout: 5000 # 后端超时时间 表1 参数说明 参数 必填 类型 参数描述 region True Enum 地域 function True Struct 函数 triggers False Struct 触发器
-
triggers字段介绍 Yaml文件中triggers字段说明请参考表4。 表4 trigger参数说明 参数名 必填 类型 参数描述 triggerTypeCode True String 触发器类型。 status False Enum 触发器状态,取值为 ACTIVE、DISABLED,默认为 ACTIVE。 eventData True Struct 触发器配置,包括•APIG触发器, •TIMER触发器。 APIG触发器 表5 APIG参数说明 参数名 必填 类型 参数描述 name False String API名称,默认使用函数名。 groupName False String 分组,默认选择当前第一个。 auth False Enum 安全认证,默认为 IAM。 API认证方式: App: 采用Appkey&Appsecret认证,安全级别高,推荐使用,详情请参见APP认证。 IAM: IAM认证,只允许IAM用户能访问,安全级别中等,详情请参见IAM认证。 None: 无认证模式,所有用户均可访问。 protocol False Enum 请求协议,默认为 HTTPS。 分为两种类型: HTTP HTTPS timeout False Number 后端超时时间,单位为毫秒,取值范围为 1 ~ 60000。默认为 5000。 参考案例: trigger: triggerTypeCode: APIG status: ACTIVE eventData: name: APIG_test groupName: APIGroup_xxx auth: IAM protocol: HTTPS timeout: 5000 TIMER触发器 表6 TIMER参数说明 参数名 必填 类型 参数描述 name False String 定时器名称。 scheduleType True Enum 触发规则,取值为 Rate、Cron。 schedule True String 定时器规则内容。 userEvent False String 附加信息,如果用户配置了触发事件,会将该事件填写到TIMER事件源的“user_event”字段。 参考案例: trigger: triggerTypeCode: TIMER status: ACTIVE eventData: name: Timer-xxx scheduleType: Rate schedule: 3m userEvent: xxxx trigger: triggerTypeCode: TIMER status: ACTIVE eventData: name: Timer-xxx scheduleType: Cron schedule: 0 15 2 * * ? userEvent: xxxx
-
alias publish命令 alias publish命令,是对别名进行发布和更新的命令。 当执行命令alias publish -h/alias publish --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数。 表3 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 函数数名 alias-name - 必填 必填 别名 version-name - 选填 必填 别名对应的版本名称 description - 选填 选填 别名描述 gversion - 选填 选填 灰度版本 Id。灰度版本权重填写时必填 weight - 选填 选填 灰度版本权重。灰度版本 Id 填写时必填 操作案例: 有资源描述文件(Yaml)时,可以直接执行s alias publish进行别名的发布或者更新; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如 s cli fgs alias publish --region cn-north-4 --function-name fg-test --alias-name pre --version-name 1 执行cli 模式时,如果密钥信息不是default,需要添加 access参数,例如s cli fgs alias publish --region cn-north-4 --function-name fg-test --alias-name pre --version-name 1 --access xxxx 上述命令的执行结果示例: fg-test: aliasName: pre versionId: 1 description: additionalVersionWeight: createdTime: 2021-11-08T06:51:36Z lastModifiedTime: 2021-11-08T06:51:36Z 如果需要对别名进行升级,只需要指定别名之后,进行相对应的参数更新,例如针对上述的pre别名,指定--description参数后再次执行上述命令,执行示例: fc-deploy-test: aliasName: pre versionId: 1 description: test publish version additionalVersionWeight: createdTime: 2021-11-08T06:51:36Z lastModifiedTime: 2021-11-08T06:54:02Z
-
alias list命令 alias list命令,是进列举别名列表的命令。 当执行命令alias list -h/alias list --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数。 表2 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 函数名称 table - 选填 选填 是否以表格形式输出 操作案例: 有资源描述文件(Yaml)时,可以直接执行s alias list获取别名列表; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如s cli fgs alias list --region cn-north-4 --function-name fg-test 执行cli 模式时,如果密钥信息不是default,需要添加 access参数,例如s cli fgs alias list --region cn-north-4 --function-name fg-test --access xxxx 上述命令的执行结果示例: fg-test: - aliasName: pre versionId: 1 description: test publish version lastModifiedTime: 2021-11-08T06:54:02Z additionalVersionWeight: 如果指定了--table参数,如图1所示: 图1 输出示例
-
alias get命令 alias get命令,是获取服务指定别名详情的命令。 当执行命令alias get -h/alias get --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数。 表1 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 函数名称 alias-name - 必填 必填 别名 操作案例: 有资源描述文件(Yaml)时,可以直接执行s alias get --alias-name aliasName进行指定的别名详情获取; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如s cli fgs alias get --region cn-north-4 --function-name fg-test --alias-name pre 执行cli 模式时,如果密钥信息不是default,需要添加 access参数,例如s cli fgs alias get --region cn-north-4 --function-name fg-test --alias-name pre --access xxxx 上述命令的执行结果示例: fg-test: aliasName: pre versionId: 1 description: test publish version additionalVersionWeight: createdTime: 2021-11-08T06:51:36Z lastModifiedTime: 2021-11-08T06:54:02Z
-
remove trigger命令 remove trigger命令,是删除指定触发器的命令。 当执行命令remove trigger -h/remove trigger --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数。 表3 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 函数名 version-name - 选填 选填 指定版本,不设置默认为latest版本 trigger-type - 选填 必填 触发器类型 trigger-name - 选填 必填 触发器名,APIG为API名称,OBS为桶名,TIMER为触发器名称 assume-yes y 选填 选填 在交互时,默认选择y 操作案例: 有资源描述文件(Yaml)时,可以直接执行s remove trigger删除Yaml中声明的触发器; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如s cli fgs remove trigger --region cn-north-4 --function-name fgs-test --trigger-type APIG --trigger-name fgs-test-trigger 上述命令的执行结果示例: Trigger [fgs-test-trigger] deleted.
-
remove function命令 remove function命令,是删除指定函数的命令。默认会把整个函数删除,包含所有的版本、别名以及触发器。 当执行命令remove function -h/remove function --help时,可以获取帮助文档。 表2 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 函数名 assume-yes y 选填 必填 在交互时,默认选择y 操作案例: 有资源描述文件(Yaml)时,可以直接执行s remove function删除指定的函数; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如s cli fgs remove function --region cn-north-4 --function-name fgs-test 执行cli 模式时,如果密钥信息不是default,需要添加 access参数,例如s cli fgs remove function --region cn-north-4 --function-name fgs-test --access xxxx 上述命令的执行结果示例: Function [fg-test] deleted.
-
remove version命令 remove version命令,是用户删除指定已发布的版本命令。 当执行命令remove version -h/remove version --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数。 表4 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 服务名 version-name - 必填 必填 版本名称,不能为latest 操作案例: 有资源描述文件(Yaml)时,可以直接执行s remove version --version-name versionName删除指定versionName的版本; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如s cli fgs remove version --region cn-north-4 --function-name fgs-test --version-name v1 上述命令的执行结果示例: Version [v1] deleted.
-
remove alias命令 remove alias命令,是删除指定服务别名的命令。 当执行命令remove alias -h/remove alias --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数。 表5 参数说明 参数全称 参数缩写 Yaml模式下必填 Cli模式下必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 服务名 alias-name - 必填 必填 别名 操作案例: 有资源描述文件(Yaml)时,可以直接执行s remove alias --alias-name aliasName删除指定别名; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如s cli fgs remove alias --region cn-north-4 --function-name fgs-test --alias-name pre 上述命令的执行结果示例: Alias [pre] deleted.
-
命令解析 当执行命令remove -h/remove --help时,可以获取帮助文档。 在该命令中,包括了四个子命令: function:删除指定的函数 trigger:删除指定的触发器 version:删除指定的版本 alias:删除指定的别名 表1 参数说明 参数全称 参数缩写 Yaml模式下必填 参数含义 assume-yes y 选填 在交互时,默认选择y 操作案例: 有资源描述文件(Yaml)时,可以直接执行s remove进行资源删除,描述文件(Yaml)示例: Function [myFunction] deleted successfully.
-
操作案例 可以在 Funcraft 项目目录下,通过fun2s命令,实现Yaml规范转换,例如: s cli fgs fun2s --region cn-north-4 --function-name fgs-deploy-test --target ./s.yml Tips for next step ====================== * Deploy Function: s deploy -t ./s.yml 此时,就可以将原有的函数配置转换成支持 Serverless Devs 规范的 s.yaml。 转换后(s.yaml): edition: 1.0.0 name: transform_fun access: default vars: region: cn-north-4 functionName: fgs-deploy-test services: component-test: # 服务名称 component: fgs # 组件名称 props: region: ${vars.region} function: functionName: ${vars.functionName} handler: index.handler memorySize: 256 timeout: 300 runtime: Node.js14.18 codeType: zip code: codeUri: ./code
-
version list命令 version list命令,是查看服务已发布的版本列表的命令。 当执行命令version list -h/version list --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考Serverless Devs 全局参数。 表1 参数说明 参数全称 参数缩写 Yaml模式下是否必填 Cli模式下是否必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 函数名称 table - 选填 必填 是否以表格形式输出 操作案例: 有资源描述文件(Yaml)时,可以直接执行s version list查看当前函数所发布的版本列表; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如s cli fgs version list --region cn-north-4 --function-name fg-test 执行cli 模式时,如果密钥信息不是default,需要添加 access参数,例如s cli fgs version list --region cn-north-4 --function-name fg-test --access xxxx 上述命令的执行结果示例: fg-test: - version: 1 description: test publish version lastModifiedTime: 2021-11-08T06:07:00Z 如果指定了--table参数,则输出示例: 图1 输出示例
-
version publish命令 version publish命令,是用于发布版本的命令。 当执行命令version publish -h/version publish --help时,可以获取帮助文档。 当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数。 表2 参数说明 参数全称 参数缩写 Yaml模式下是否必填 Cli模式下是否必填 参数含义 region - 选填 必填 地区 function-name - 选填 必填 函数名称 version-name - 选填 必填 版本号 description - 选填 必填 版本描述 操作案例: 有资源描述文件(Yaml)时,可以直接执行s version publish进行版本的发布; 纯命令行形式(在没有资源描述Yaml文件时),需要指定服务所在地区以及服务名称,例如s cli fgs version publish --region cn-north-4 --function-name fg-test --version-name 1 --description "test publish version" 执行cli 模式时,如果密钥信息不是default,需要添加 access参数,例如s cli fgs version publish --region cn-north-4 --function-name fg-test --version-name 1 --description "test publish version" --access xxxx 上述命令的执行结果示例: fg-test: version: 1 description: test publish version lastModifiedTime: 2021-11-08T06:07:00Z
-
deploy命令解析 当执行命令deploy -h/deploy --help时,可以获取帮助文档。 在该命令中,包括了两个子命令:deploy function命令和deploy trigger命令。 deploy function命令 deploy function命令,是部署函数的命令。 当执行命令deploy function -h/deploy function --help时,可以获取帮助文档。 操作案例: 有资源描述文件(Yaml)时,可以直接执行s deploy function进行函数的部署,描述文件(Yaml)示例: fgs-deploy-test: region: cn-north-4 function: functionName: fgs-deploy-test handler: index.handler memorySize: 128 timeout: 30 runtime: Node.js14.18 package: default codeType: zip code: codeUri: ./code deploy trigger命令 deploy trigger命令,是部署函数触发器的命令。 当执行命令deploy trigger -h/deploy trigger --help时,可以获取帮助文档。 操作案例: 有资源描述文件(Yaml)时,可以直接执行s deploy trigger进行触发器的部署,描述文件(Yaml)示例: fgs-deploy-test: region: cn-north-4 trigger: triggerTypeCode: APIG status: ACTIVE eventData: name: APIG_test groupName: APIGroup_xxx auth: IAM protocol: HTTPS timeout: 5000 在进行服务资源部署时,可能会涉及到交互式操作,相关的描述参考 deploy 命令 注意事项中的在部署时可能会涉及到交互式操作。
-
操作案例 有资源描述文件(Yaml)时,可以直接执行s deploy 进行资源部署,描述文件(Yaml)示例: fgs-deploy-test: region: cn-north-4 function: functionName: fgs-deploy-test handler: index.handler memorySize: 128 timeout: 30 runtime: Node.js14.18 package: default codeType: zip code: codeUri: ./code trigger: triggerTypeCode: APIG status: ACTIVE eventData: name: APIG_test groupName: APIGroup_xxx auth: IAM protocol: HTTPS timeout: 5000
-
指令使用方法 华为云函数工作流(FunctionGraph)组件全部支持的能力如表1所示: 表1 组件支持能力介绍 构建&部署 发布&配置 其他功能 部署deploy 版本 version 项目迁移fun2s 删除remove 别名alias - 在使用华为云函数工作流(FunctionGraph)组件时,还会涉及到资源描述文件的编写,关于华为云函数工作流(FunctionGraph)组件的Yaml规范可以参考华为云函数工作流(FunctionGraph)Yaml规范章节。
-
为PHP函数制作依赖包 制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行。 为php7.3通过composer安装protobuf3.19依赖包,默认环境中已经安装了composer和对应版本的php。 新建一个composer.json文件,在composer.json中填入以下内容。 { "require": { "google/protobuf": "^3.19" } } 执行如下命令。 Composer install 可以看到当前目录底下生成一个vendor文件夹,文件夹中有autoload.php、composer 和google三个文件夹。 Linux系统 Linux系统下可以使用以下命令生成zip包。 zip –rq vendor.zip vendor windows系统 用压缩软件将vendor目录压缩成zip文件即可。 如果要安装多个依赖包,在composer.json文件中指定需要的依赖,把生成的vendor文件整体打包成zip上传。 php工程代码中使用通过composer下载的第三方依赖时,需要通过require "./vendor/autoload.php" 加载,平台默认把上传的zip包解压后的内容置于项目代码的同级目录下。
-
为Python函数制作依赖包 打包环境中的Python版本要和对应函数的运行时版本相同,如Python2.7建议使用2.7.12及以上版本,Python3.6建议使用3.6.3以上版本。 为Python 2.7安装PyMySQL依赖包,并指定此依赖包的安装路径为本地的/tmp/pymysql下,可以执行如下命令。 pip install PyMySQL --root /tmp/pymysql 执行成功后,执行以下命令。 cd /tmp/pymysql/ 进入子目录直到site-packages路径下(一般路径为usr/lib64/python2.7/site-packages/),接下来执行以下命令。 zip -rq pymysql.zip * 所生成的包即为最终需要的依赖包。 如果需要安装存放在的本地wheel安装包,直接输入: pip install piexif-1.1.0b0-py2.py3-none-any.whl --root /tmp/piexif //安装包名称以piexif-1.1.0b0-py2.py3-none-any.whl为例,请以实际安装包名称为准
-
为Nodejs函数制作依赖包 需要先保证环境中已经安装了对应版本的Nodejs。 为Nodejs 8.10安装MySQL依赖包,可以执行如下命令。 npm install mysql --save 可以看到当前目录下会生成一个node_modules文件夹。 Linux系统 Linux系统下可以使用以下命令生成zip包。 zip -rq mysql-node8.10.zip node_modules 即可生成最终需要的依赖包。 windows系统 用压缩软件将node_modules目录压缩成zip文件即可。 如果需要安装多个依赖包,也可以先新建一个package.json文件,例如在package.json中填入如下内容后,执行如下命令。 { "name": "test", "version": "1.0.0", "dependencies": { "redis": "~2.8.0", "mysql": "~2.17.1" } } npm install --save 不要使用CNPM命令制作nodejs依赖包。 然后将node_modules打包成zip即可生成一个既包含MySQL也包含redis的依赖包。 Nodejs其他版本制作依赖包过程与上述相同。
-
约束与限制 HTTP函数只能绑定APIG/APIC触发器,根据函数和APIG/APIC之间的转发协议,函数的返回合法的http响应报文中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(boolean),HTTP函数会默认对返回结果做Base64编码,isBase64Encoded默认为true,其它框架同理。相关约束条件请参考Base64解码和返回结构体的说明。 HTTP函数默认开放端口为8000。 Context类中提供了许多上下文方法供用户使用,其声明和功能请参见表1。
-
制作依赖包 制作函数依赖包推荐在Huawei Cloud EulerOS 2.0环境中进行。使用其他系统打包可能会因为底层依赖库的原因,运行出问题,比如找不到动态链接库。 如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如,添加.dll、.so、.a等依赖库。 使用Java编译型语言开发函数时,依赖包需要在本地编译。开发Java函数中如何添加依赖包请参见Java函数开发指南(使用IDEA工具普通Java项目)。 父主题: Java
-
initializer接口规范 各个runtime的initializer接口有以下共性: 无自定义参数 Initializer不支持用户自定义参数,只能获取FunctionGraph提供的context参数中的变量进行相关逻辑处理。 无返回值 开发者无法从invoke的响应中获取initializer预期的返回值。 超时时间 开发者可单独设置initializer的超时时间,与handler的超时相互独立,但最长不超过 300 秒。 执行时间 运行函数逻辑的进程称之为函数实例,运行在容器内。FunctionGraph会根据用户负载伸缩函数实例。每当有新函数实例创建时,系统会首先调用initializer。系统保证一定initializer执行成功后才会执行handler逻辑。 最多成功执行一次 FunctionGraph保证每个函数实例启动后只会成功执行一次initializer 。如果执行失败,那么该函数实例执行失败,选取下一个实例重新执行,最多重试3次。一旦执行成功,在该实例的生命周期内不会再执行initializer,收到Invoke请求之后只执行请求处理函数。 initializer入口命名 除Java外,其他runtime的initializer入口命名规范与原有的执行函数命名保持一致,格式为 [文件名].[ initializer名],其中initializer名可自定义。Java需要定义一个类并实现函数计算预定义的初始化接口。 计量计费 Initializer的执行时间也会被计量,用户需要为此付费,计费方式同执行函数。
-
引入initializer接口的价值 分离初始化逻辑和请求处理逻辑,程序逻辑更清晰,让用户更易写出结构良好,性能更优的代码。 用户函数代码更新时,系统能够保证用户函数的平滑升级,规避应用层初始化冷启动带来的性能损耗。新的函数实例启动后能够自动执行用户的初始化逻辑,在初始化完成后再处理请求。 在应用负载上升,需要增加更多函数实例时,系统能够识别函数应用层初始化的开销,更准确的计算资源伸缩的时机和所需的资源量,让请求延时更加平稳。 即使在用户有持续的请求且不更新函数的情况下,系统仍然有可能将已有容器回收或更新,这时没有平台方的冷启动,但是会有业务方冷启动,Initializer可以最大限度减少这种情况。
-
适用场景 用户函数执行调度包括以下几个阶段: FunctionGraph预先为函数分配执行函数的容器资源。 下载函数代码。 通过runtime运行时加载代码。 用户函数内部进行初始化逻辑。 函数处理请求并将结果返回。 其中1、2和3是系统层面的冷启动开销,通过对调度以及各个环节的优化,函数工作流服务能做到负载快速增长时稳定的延时。4是函数内部初始化逻辑,属于应用层面的冷启动开销,例如深度学习场景下加载规格较大的模型、数据库场景下连接池构建、函数依赖库加载等等。 为了减小应用层冷启动对延时的影响,FunctionGraph推出了initializer接口,系统能识别用户函数的初始化逻辑,从而在调度上做相应的优化。
-
PyCharm-Plugin 在Python主流开发工具(PyCharm)上实现一键生成python模板工程、打包、部署等功能。 获取插件(插件.sha256)。 打开JetBrains PyCharm,单击“File”菜单,选择“Settings ”,在弹出界面的菜单中选择“Plugins”页面,单击右上角设置按钮中的“Install plugin from disk... ”,如图1所示。 图1 安装Plugins 在弹出的界面中,选择插件包,单击“OK”,如图2所示。 图2 选择插件包 在插件列表中,勾选插件名称,单击“Restart IDE”,如图3所示。 图3 重启IDE 单击“File”菜单,选择“New Project”,如图4所示。 图4 新建工程 在弹出的新建工程页面中,选择“FunctionGraph”,如图5所示。 图5 FunctionGraph 在“Location”栏中选择工程的路径 ,在“Project Interpreter: New Virtualenv environment”中选择使用python的版本。如图6所示。 图6 选择版本 在“More Settings”中选择要创建的模板,如图7所示。 图7 选择模板 目前仅支持python 2.7的Context模板。 单击“Create”,完成创建。 父主题: 开发工具
-
PHP函数接口定义 FunctionGraph运行时支持PHP 7.3版本,PHP 7.3函数的接口定义如下所示: function handler($event, $context) 入口函数名($handler):入口函数名称, 需和函数执行入口处用户自定义的入口函数名称一致。 执行事件($event):函数执行界面由用户输入的执行事件参数, 格式为JSON对象。 上下文环境($context):Runtime提供的函数执行上下文,其接口定义在SDK接口说明。 函数执行入口: index.handler。 PHP函数的函数执行入口参数格式为:[文件名].[函数名],请参考函数执行入口通过FunctionGraph控制台进行配置或修改。
-
执行结果 执行结果由3部分组成:函数返回、执行摘要和日志。 表2 执行结果说明 参数项 执行成功 执行失败 函数返回 返回函数中定义的返回信息。 返回包含错误信息、错误类型和堆栈异常报错信息的JSON文件。格式如下: { "errorMessage": "", "errorType": "", "stackTrace": {} } errorMessage:Runtime返回的错误信息 errorType:错误类型 stackTrace:Runtime返回的堆栈异常报错信息 执行摘要 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 日志 打印函数日志,最多显示4KB的日志。 打印报错信息,最多显示4KB的日志。
-
添加引用 选择解决方案资源管理器中“test”工程,单击鼠标右键,选择“添加引用”,下载dll文件引用进来。如图4所示。 图4 添加引用 所引用的dll下载后放在一个lib文件中,一共有三个库:HC.Serverless.Function.Common.dll、HC.Serverless.Function.Common.JsonSerializer.dll、Newtonsoft.Json.dll。 选择“浏览”,单击“浏览(B) ”,把HC.Serverless.Function.Common.dll和HC.Serverless.Function.Common.JsonSerializer.dll引用进来,单击“确定”。如图5所示。 图5 引用文件 引用成功后界面如图6所示。 图6 完成引用
-
执行结果 执行结果由3部分组成:函数返回、执行摘要和日志。 表21 执行结果说明 参数项 执行成功 执行失败 函数返回 返回函数中定义的返回信息。 返回包含错误信息和错误类型的JSON文件。格式如下: { "errorMessage": "", "errorType":"", } errorMessage:Runtime返回的错误信息 errorType:错误类型 执行摘要 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 日志 打印函数日志,最多显示4KB的日志。 打印报错信息,最多显示4KB的日志。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- ...
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333