云服务器内容精选

  • 创建函数 登录 函数工作流 控制台,在左侧的导航栏选择“函数模板”。 在“函数模板”界面,“云服务”选择“函数工作流”,模板选择Python 2.7的“context使用指导”,单击“使用模板”。 此处以Python 2.7的“context使用指导”举例,请您根据实际需求选择模板。 选择函数模板后,会加载模板内置的代码、配置信息,进入到“创建函数”界面。 输入函数名称“context”,选择已创建的委托,其他设置保持不变,单击“创建函数”,进入配置详情页。 若不配置委托,在触发函数时,执行结果会返回 Failed to access other services because no temporary AK, SK, or token has been obtained. Please set an agency. 请您根据实际业务进行参数配置。
  • 概述 函数是处理事件的自定义代码,您可以使用空白模板函数创建函数,根据实际业务场景进行函数配置。 由于FunctionGraph承担计算资源的管理工作,在函数完成编码以后,需要为函数设置运算资源等信息,目前主要是在FunctionGraph函数控制台完成。 创建函数时可以使用空模板,也可以使用示例模板创建函数、使用容器镜像部署函数。 使用空模板创建函数时,需要设置基础配置信息和代码信息,如表1所示,带*参数为必填项。 每个FunctionGraph函数都运行在其自己的环境中,有其自己的资源和文件系统。
  • 配置代码源 您可以根据所选的运行时语言Runtime,参见创建程序包,选择适合的方式进行代码源部署,完成后单击“部署”。 以下图为例,运行时语言为“Node.js 10.16”,可以选择“在线编辑”、“Zip文件”、“OBS地址”三种方式进行代码源部署。 图2 部署代码源 当使用“OBS地址”方式进行代码源部署时,请确保创建函数选择的“区域”与创建OBS桶选择的“区域”一致。 代码若有修改,请修改完成后再次单击“部署”,重新部署代码。
  • 查看代码信息 查看代码属性 代码属性展示最新部署代码的大小及上次修改时间。 图3 查看代码属性 查看基本信息 函数创建完成后,各语言默认内存和执行超时时间如图4所示,请根据实际业务评估,若需修改“函数执行入口”、“内存(MB)”“执行超时时间(秒)”,可单击“编辑”,在常规设置中修改配置信息,具体请参见配置常规信息。 图4 编辑基本信息 函数一旦创建,便不能修改运行时语言。 表2 各语言默认基本信息 Runtime 默认基本信息 JAVA 内存(MB):512MB 函数执行入口:com.demo.TriggerTests.apigTest 执行超时时间(秒):15s Node.js 内存(MB):128 MB 函数执行入口:index.handler 执行超时时间(秒):3s Custom 内存(MB):128 MB 函数执行入口:bootstrap 执行超时时间(秒):3s PHP 内存(MB):128 MB 函数执行入口:index.handler 执行超时时间(秒):3s Python 内存(MB):128 MB 函数执行入口:index.handler 执行超时时间(秒):3s Go 1.x 内存(MB):128 MB 函数执行入口:handler 执行超时时间(秒):3s
  • 函数公共请求头 HTTP函数请求头默认携带如下字段。 表2 默认请求头 字段 描述 X-CFF-Request-Id 当前请求ID X-CFF-Memory 分配的内存 X-CFF-Timeout 函数超时时间 X-CFF-Func-Version 函数版本 X-CFF-Func-Name 函数名称 X-CFF-Project-Id ProjectID X-CFF-Package 函数组 X-CFF-Region 当前region
  • 概述 HTTP函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行,从而使用自己的Web服务。HTTP函数只允许创建APIG/APIC的触发器类型,其他触发器不支持。 HTTP函数当前不区分编程语言,函数执行入口必须在bootstrap文件中设置,用户直接写启动命令,端口统一开放成8000,绑定IP为127.0.0.1。 bootstrap文件是HTTP函数的启动文件,HTTP函数仅支持读取bootstrap 作为启动文件名称,其它名称将无法正常启动服务,bootstrap启动文件请参见bootstrap文件示例。 HTTP函数支持多种开发语言。 用户函数需要返回一个合法的http响应报文。 该章节均以Nodejs为样例,若需要使用其他语言,则更换语言路径即可,代码包路径无需更换。其他各语言路径请参见表1。 关于Go语言构建FunctionGraph HTTP函数,请参考使用Go构建FunctionGraph HTTP函数。 函数发起HTTP请求时,如果是内网访问,则请求IP地址是动态;如果是公网访问,则请求IP地址是固定。如需了解更多详情请咨询技术支持工程师。
  • 打包规范说明 函数除了支持在线编辑代码,还支持上传ZIP、JAR、引入OBS文件等方式上传代码,函数工程的打包规范说明如表1所示。 表1 函数工程打包规范 编程语言 JAR包 ZIP包 OBS文件 Node.js 不支持该方式 假如函数工程文件保存在“~/Code/”文件夹下,在打包的时候务必进入Code文件夹下选中所有工程文件进行打包,这样做的目的是:入口函数是程序执行的入口,确保解压后,入口函数所在的文件位于根目录。 如果函数工程引入了第三方依赖,可以将第三方依赖打成ZIP包,在函数代码界面设置外部依赖包;也可以将第三方依赖和函数工程文件一起打包。 将工程打成ZIP包,上传到OBS存储桶。 PHP 不支持该方式 假如函数工程文件保存在“~/Code/”文件夹下,在打包的时候务必进入Code文件夹下选中所有工程文件进行打包,这样做的目的是:入口函数是程序执行的入口,确保解压后,入口函数所在的文件位于根目录。 如果函数工程引入了第三方依赖,可以将第三方依赖打成ZIP包,在函数代码界面设置外部依赖包;也可以将第三方依赖和函数工程文件一起打包。 将工程打成ZIP包,上传到OBS存储桶。 Python 2.7 不支持该方式 假如函数工程文件保存在“~/Code/”文件夹下,在打包的时候务必进入Code文件夹下选中所有工程文件进行打包,这样做的目的是:入口函数是程序执行的入口,确保解压后,入口函数所在的文件位于根目录。 如果函数工程引入了第三方依赖,可以将第三方依赖打成ZIP包,在函数代码界面设置外部依赖包;也可以将第三方依赖和函数工程文件一起打包。 将工程打成ZIP包,上传到OBS存储桶。 Python 3.6 不支持该方式 假如函数工程文件保存在“~/Code/”文件夹下,在打包的时候务必进入Code文件夹下选中所有工程文件进行打包,这样做的目的是:入口函数是程序执行的入口,确保解压后,入口函数所在的文件位于根目录。 如果函数工程引入了第三方依赖,可以将第三方依赖打成ZIP包,在函数代码界面设置外部依赖包;也可以将第三方依赖和函数工程文件一起打包。 将工程打成ZIP包,上传到OBS存储桶。 Java 8 如果函数没有引用第三方件,可以直接将函数工程编译成Jar包。 如果函数引用第三方件,将函数工程编译成Jar包后,将所有依赖三方件和函数jar包打成ZIP包。 将工程打成ZIP包,上传到OBS存储桶。 Go 1.x 不支持该方式 必须在编译之后打zip包,编译后的二进制文件必须与执行函数入口保持一致,例如二进制名称为Handler,则执行入口为Handler。 将工程打成ZIP包,上传到OBS存储桶。 C# 不支持该方式 必须在编译之后打zip包,必须包含“工程名.deps.json”,“工程名.dll”,“工程名.runtimeconfig.json”,“工程名.pdb”和“HC.Serverless.Function.Common.dll”文件。 将工程打成ZIP包,直接上传到OBS存储桶。 定制运行时 不支持该方式 打zip包,必须包含“bootstrap”可执行引导文件。 将工程打成ZIP包,直接上传到OBS存储桶。
  • ZIP工程包示例 Nods.js工程ZIP包目录示例 Example.zip 示例工程包 |--- lib 业务文件目录 |--- node_modules npm三方件目录 |--- index.js 入口js文件(必选) |--- package.json npm项目管理文件 PHP工程ZIP包目录示例 Example.zip 示例工程包 |--- ext 扩展库目录 |--- pear PHP扩展与应用仓库 |--- index.php 入口PHP文件 Python工程ZIP包目录示例 Example.zip 示例工程包 |--- com 业务文件目录 |--- PLI 第三方依赖PLI目录 |--- index.py 入口py文件(必选) |--- watermark.py 实现打水印功能的py文件 |--- watermark.png 水印图片 Java工程ZIP包目录示例 Example.zip 示例工程包 |--- obstest.jar 业务功能JAR包 |--- esdk-obs-java-3.20.2.jar 第三方依赖JAR包 |--- jackson-core-2.10.0.jar 第三方依赖JAR包 |--- jackson-databind-2.10.0.jar 第三方依赖JAR包 |--- log4j-api-2.12.0.jar 第三方依赖JAR包 |--- log4j-core-2.12.0.jar 第三方依赖JAR包 |--- okhttp-3.14.2.jar 第三方依赖JAR包 |--- okio-1.17.2.jar 第三方依赖JAR包 Go工程ZIP包目录示例 Example.zip 示例工程包 |--- testplugin.so 业务功能包 C#工程ZIP包目录示例 Example.zip 示例工程包 |--- fssExampleCsharp2.0.deps.json 工程编译产生文件 |--- fssExampleCsharp2.0.dll 工程编译产生文件 |--- fssExampleCsharp2.0.pdb 工程编译产生文件 |--- fssExampleCsharp2.0.runtimeconfig.json 工程编译产生文件 |--- Handler 帮助文件,可直接使用 |--- HC.Serverless.Function.Common.dll 函数工作流提供的dll 定制运行时 Example.zip 示例工程包 |--- bootstrap 可执行引导文件