云服务器内容精选
-
在线编辑函数代码 要创建函数,首先需要创建函数部署程序包(包含代码和所有依赖项的文件)。 FunctionGraph支持如下三种方式部署程序包: 支持在线编辑代码。用户在编辑函数代码时支持类似工程方式的管理,可以创建文件、文件夹并对其进行编辑。 支持直接上传函数代码。用户在本地开发程序之后打包(程序包大小不超过40MB),必须是ZIP包(Java、Node.js、Python、Go)或者JAR文件(Java),然后上传至FunctionGraph即可运行,无需其它的部署操作。 支持OBS方式上传函数代码。当函数的程序包大小超过40MB时,使用该方式部署程序包。OBS中ZIP包大小限制为300MB。 本章节将介绍FunctionGraph的在线编辑函数代码方式。 表1 在线编辑支持介绍 运行时 在线编辑 说明 Node.js 支持 - Python 支持 使用Python语言在线编辑代码,需要输出中文时,请在编辑器中增加如下代码: # -*- coding:utf-8 -*- import json def handler (event, context): output = 'Hello message: ' + json.dumps(event,ensure_ascii=False) return output Java 不支持 Java是编译型语言,所以不能在线编辑代码,只能上传程序包。 Go 不支持 Go是编译型语言,所以不能在线编辑代码,只能上传程序包。 C# 不支持 C#是编译型语言,所以不能在线编辑代码,只能上传程序包。 PHP 支持 - 定制运行时 支持 - HTTP 支持 - FunctionGraph预装了适用于Node.js、Python、PHP、定制运行时和HTTP的开发工具包,如果自定义代码只需要软件开发工具包库,则可以使用FunctionGraph控制台的内联编辑器。使用控制台可以编辑代码并将代码上传到FunctionGraph,控制台会将代码及相关的配置信息压缩到FunctionGraph服务能够运行的部署程序包中。 在线编辑区域支持类似工程方式的管理,可以创建文件、文件夹并对其进行编辑。 文件:支持创建文件和文件夹功能。其中包括新建文件,新建文件夹、保存、关闭所有文件功能。 编辑:支持在编码框中,对代码进行撤销、恢复、剪切、复制、粘贴、查找、替换操作。 设置:支持设置编码框中代码字体大小、自动格式化和编码框主题颜色。 代码编辑区中如果代码有修改,请修改完成后再次单击“部署”,完成重新部署代码。 当您部署的代码大于20M时,在线编辑器将不展示代码,但您仍可以测试您的函数。 图1 编辑器不展示代码 父主题: 配置函数代码
-
为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其他版本制作依赖包过程与上述相同。
-
为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包解压后的内容置于项目代码的同级目录下。
-
搭建EulerOS环境 EulerOS是基于开源技术的企业级Linux操作系统软件,具备高安全性、高可扩展性、高性能等技术特性,能够满足客户IT基础设施和云计算服务等多业务场景需求。此处推荐Huawei Cloud EulerOS。 在华为云购买一台EulerOS的E CS 弹性云服务器,请参见购买并登录Linux弹性云服务器。在基础配置环节选择公共镜像时,选择Huawei Cloud EulerOS操作系统和具体的镜像版本。 下载EulerOS镜像,在本地使用虚拟化软件搭建EulerOS系统的虚拟机。
-
创建函数流任务 本章节主要介绍如何创建函数流任务和编排函数流任务。您可以根据实际业务场景来创建标准函数流或快速函数流。 标准模式面向普通的业务场景,支持长时间任务,支持执行历史持久化和查询,只支持异步调用,在函数流运行记录页面查询执行结果。 快速模式面向业务执行时长较短,需要极致性能的场景,只支持流程执行时长低于5分钟的场景,不支持执行历史持久化(比如不支持查询执行节点的历史信息),支持同步和异步调用。通过同步执行函数流接口进行函数流的同步执行,接口直接返回函数流执行结果,同时日志页面查看上报到LTS的函数流执行日志。 快速函数流限时免费,欢迎体验! 父主题: 配置函数流
-
网络限制 根据对网络的不同设置,函数有以下网络访问能力,您可按需设置。 网络配置 说明 允许函数访问公网 当前函数默认的公网NAT访问带宽在多个租户间共享,带宽小,仅适合小量调用的测试业务场景使用;如果对带宽、性能、可靠性有高要求的生产业务场景,需开启函数访问VPC,在VPC内添加公网NAT网关并绑定EIP,分配独占的外网访问带宽。 允许函数访问VPC内资源 开启“允许函数访问VPC内资源”时,函数将禁用默认网卡并使用VPC绑定的网卡,是否允许公网访问由配置的VPC决定,开关“允许函数访问公网”将不生效。 仅允许指定的VPC调用函数 开启“仅允许指定的VPC调用函数”时,将仅允许通过指定的VPC调用函数,并禁止通过公网调用函数。
-
共享VPC 共享VPC是基于 资源访问管理 (Resource Access Manager,简称 RAM )服务的机制,VPC的所有者可以将VPC内的子网共享给其他账号使用,实现网络资源跨租户共享。在函数中可以配置其他用户共享给您的子网,从而可以在函数中访问该子网下的资源。 如果需要在函数中访问其他用户共享给您的子网,请先确保该子网的拥有者已经正常为您配置了子网共享(如何配置请参考VPC子网共享给其他账号),然后在函数的网络配置中选择共享的子网即可,具体操作请参考访问VPC。如果后续VPC子网拥有者取消了共享,则您将无法在函数中访问该子网。 有关VPC子网共享的更多信息,请参见《虚拟私有云用户指南》的“共享VPC”相关内容。
-
调用函数 在浏览器地址栏输入APIG触发器的调用地址URL,按“Enter”。 函数执行完毕,得到返回结果,如图3所示。 图3 返回结果 FunctionGraph函数对APIG调用的传入值为函数自带的事件模板,您可以参见表2。 FunctionGraph函数对来自APIG调用的返回结果进行了封装,APIG触发器要求函数的返回结果中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(boolean),才可以正确返回。
-
示例 使用环境变量设置以下信息:安装文件的目录、存储输出的位置、存储连接和日志记录设置等。这些设置与应用程序逻辑解耦,在需要变更设置时,无需更新函数代码。 在如下函数代码片段中,参数“obs_output_bucket”为图片处理后存储地址。 def handler(event, context): srcBucket, srcObjName = getObsObjInfo4OBSTrigger(event) obs_address = context.getUserData('obs_address') outputBucket = context.getUserData('obs_output_bucket') if obs_address is None: obs_address = '{obs_address_ip}' if outputBucket is None: outputBucket = 'casebucket-out' ak = context.getAccessKey() sk = context.getSecretKey() # download file uploaded by user from obs GetObject(obs_address, srcBucket, srcObjName, ak, sk) outFile = watermark_image(srcObjName) # 将转换后的文件上传到新的obs桶中 PostObject (obs_address, outputBucket, outFile, ak, sk) return 'OK' 通过设置环境变量obs_output_bucket,可以灵活设置存储输出图片的OBS桶。 图2 环境变量
-
操作步骤 登录 FunctionGraph 控制台,配置 Java 函数,并打开“快照式冷启动”开关。 图1 开启快照式冷启动 (可选)配置 Restore Hook,并在函数代码中实现对应的 Hook 逻辑。 图2 开启Restore Hook 函数代码中Restore Hook示例如下: 函数发布新版本后,触发快照的自动化制作。 图3 发布新版本 请耐心等待快照制作完成(5min 超时时间)。 图4 快照制作中 图5 快照制作成功 调用 Java 函数,体验快照优化后的性能提升。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格