云服务器内容精选

  • 响应示例 状态码: 201 OK { "created_at" : "2022-11-01T21:36:04.264564372+08:00", "name" : "execution-065", "execution_id" : "46c682b6-0310-4774-9c8e-62d7fb7e0b55", "description" : "", "workspace_id" : "0", "workflow_id" : "f1642618-43eb-4ab1-a0b1-9cc584182c60", "workflow_name" : "workflow_model_service_no_modify_xiahou_copy", "steps_execution" : null, "duration" : 0, "data_requirements" : [ { "name" : "model_input", "type" : "obs", "conditions" : [ { "attribute" : "object_type", "operator" : "equal", "value" : "directory" } ], "value" : { "object_type" : [ "DIRECTORY" ], "obs_url" : "/test-crq/train_output/" }, "used_steps" : [ "model_step" ] }, { "name" : "service_model", "type" : "model_list", "delay" : true, "conditions" : [ { "attribute" : "model_name", "operator" : "equal", "value" : "lh-xh" } ], "used_steps" : [ "service_step" ] } ], "parameters" : [ { "name" : "schedule_d5sm", "type" : "int", "format" : "schedule", "description" : "Set how long the deployed service will stop in hours, where -1 means the service will always run", "delay" : true, "used_steps" : [ "service_step" ] } ], "policies" : { } }
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 GetResult 参数名称 参数类型 描述 status int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 reason str 参数解释: HTTP文本描述。 默认取值: 无 errorCode str 参数解释: OBS服务端错误码,当status参数小于300时为空。 默认取值: 无 errorMessage str 参数解释: OBS服务端错误描述,当status参数小于300时为空。 默认取值: 无 requestId str 参数解释: OBS服务端返回的请求ID。 默认取值: 无 indicator str 参数解释: OBS服务端返回的错误定位码。 默认取值: 无 hostId str 参数解释: 请求的服务端ID,当status参数小于300时为空。 默认取值: 无 resource str 参数解释: 发生错误时相关的桶或对象,当status参数小于300时为空。 默认取值: 无 header list 参数解释: 响应消息头列表,由多个元组构成。每个元组均包含两个元素,代表响应头的键值对。 默认取值: 无 body object 参数解释: 操作成功后的结果数据,当status大于300时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表4 返回结果 GetResult.body类型 说明 表5 参数解释: 响应结果,详见表5 表5 ListWorkflowExecutionResponse 参数名称 参数类型 描述 count int 参数解释: 满足条件的运行实例个数 取值范围: 大于等于0的整型数。 默认取值: 无 nextMarker str 参数解释: 用于标明本次请求列举到的最后一个工作流实例。后续请求可以指定nextMarker等于该值来列举剩余的工作流实例。 约束限制: 如果isTruncated为false,该字段不会返回。 默认取值: 无 isTruncated bool 参数解释: 表明是否本次返回的ListWorkflowExecution结果列表被截断。 取值范围: True:本次没有返回全部结果 False:本次已经返回了全部结果 默认取值: 无 executions Array ExecutionDetail Json结构体 结构体说明 参数解释: 实例信息列表 默认取值: 无
  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 GetResult 参数名称 参数类型 描述 status int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 reason str 参数解释: HTTP文本描述。 默认取值: 无 errorCode str 参数解释: OBS服务端错误码,当status参数小于300时为空。 默认取值: 无 errorMessage str 参数解释: OBS服务端错误描述,当status参数小于300时为空。 默认取值: 无 requestId str 参数解释: OBS服务端返回的请求ID。 默认取值: 无 indicator str 参数解释: OBS服务端返回的错误定位码。 默认取值: 无 hostId str 参数解释: 请求的服务端ID,当status参数小于300时为空。 默认取值: 无 resource str 参数解释: 发生错误时相关的桶或对象,当status参数小于300时为空。 默认取值: 无 header list 参数解释: 响应消息头列表,由多个元组构成。每个元组均包含两个元素,代表响应头的键值对。 默认取值: 无 body object 参数解释: 操作成功后的结果数据,当status大于300时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无
  • 过滤策略说明 过滤策略参数填写通配符规则说明和约束说明参见表6。 表6 过滤策略参数说明 参数 说明 填写规则 约束说明 黑名单 命中黑名单规则,则文件不进行迁移/一致性对比。支持精确匹配和模糊匹配。 精确匹配,填写文件绝对路径 全路径精确匹配,特殊字符用反斜杠(\)转义 模糊匹配 *匹配任何字符0个或者多个,但不匹配斜杠(/) 使用**匹配任何字符0个或者多个,包括斜杠(/) ?匹配除斜杠(/)之外的任何字符,只能匹配一个 {和}定义元素之间的选择:包含一个以逗号分隔的模式列表, 其中任何一种模式都可能匹配,可以包含通配符。 特殊字符可以在它们之前使用 \进行转义,\后面为通配符时,表示转义,否则表示\本身 除{ 和 } 以外,不能出现连续的规则符号,例如:***、*?、**?、?*、?**、*{*、*}*、*}?、?{*、{*}、{,}、{*,、 ,*}、,*,。 { 和 } 之间的模式,只能使用*做通配符。 { 和 } 之间的模式,不能有{}嵌套。 文件绝对路径在黑名单和白名单同时命中,则黑名单生效,即不做迁移。 需要配置多个匹配规则时,用英文分号隔开。 白名单 白名单为空时,迁移所有文件。 白名单不为空时,仅对绝对路径命中白名单规则的文件进行迁移/一致性对比。 时间段 配置时间段,根据配置,迁移最后修改时间在配置时间段内的文件或者文件夹。 开始时间和结束时间可以配置为空,为空时表示不限制,时间可以精确到分钟。
  • 单实例单并发与单实例多并发的对比 当一个函数执行需要花费5秒,若配置为单实例单并发,三次函数调用请求分别在三个函数实例执行,总执行时长为15秒。 若配置为单实例多并发,设置单实例并发数为5,即单个实例最多支持5个并发请求,如果有三次函数调用请求,将在一个实例内并发处理,总执行时间为5秒。 单实例并发数大于1,在您设置的“单函数最大实例数”范围内,超过单实例并发处理能力时会自动扩容新实例。 表1 单并发与多并发对比 对比项 单实例单并发 单实例多并发 日志打印 - Node.js Runtime使用console.info()函数,Python Runtime使用print()函数,Java Runtime使用System.out.println()函数打印日志,该方式会把当前请求的Request ID包含在日志内容中。当多请求在同一个实例并发处理时,当前请求可能有很多个,继续使用这些函数打印日志会导致Request ID错乱。此时应该使用context.getLogger(),获取一个日志输出对象,通过这个日志输出对象打印日志,例如Python Runtime: log = context.getLogger() log.info("test") 共享变量 不涉及 单实例多并发处理时,修改共享变量会导致错误。这要求您在编写函数时,对于非线程安全的变量修改要进行互斥保护。 监控指标 按实际情况进行监控。 相同负载下,函数的实例数明显减少。 流控错误 不涉及 太多请求时,body中的errorcode为“FSS.0429” ,响应头中的status为429 ,错误信息提示:Your request has been controlled by overload sdk, please retry later。
  • 应用场景 单实例多并发适合函数处理逻辑中有较长时间等待下游服务响应的场景,也适合函数逻辑中初始化时间较长的场景,具备以下优势: 降低冷启动概率,优化函数处理时延:例如并发三个请求,不配置单实例多并发,FunctionGraph默认启动三个实例处理请求,会有三次冷启动。若配置了单实例支持三并发,三个并发请求,FunctionGraph只启动一个实例处理请求,减少了两次冷启动。 减少总请求处理时长,节省费用:单实例单并发下,多个请求的总处理时长为每个请求的处理时长相加。单实例多并发下,同一个实例对并发的多个请求的计费时间为,从第一个请求开始处理计时,到最后一个并发的请求处理结束记一次时长费用。
  • 网络限制 根据对网络的不同设置,函数有以下网络访问能力,您可按需设置。 网络配置 说明 允许函数访问公网 当前函数默认的公网NAT访问带宽在多个租户间共享,带宽小,仅适合小量调用的测试业务场景使用;如果对带宽、性能、可靠性有高要求的生产业务场景,需开启函数访问VPC,在VPC内添加公网NAT网关并绑定EIP,分配独占的外网访问带宽。 允许函数访问VPC内资源 开启“允许函数访问VPC内资源”时,函数将禁用默认网卡并使用VPC绑定的网卡,是否允许公网访问由配置的VPC决定,开关“允许函数访问公网”将不生效。 仅允许指定的VPC调用函数 开启“仅允许指定的VPC调用函数”时,将仅允许通过指定的VPC调用函数,并禁止通过公网调用函数。
  • 日志告警 如果没有对函数代码执行返回结果有特定要求,例如绑定了APIG触发器的事件函数需要返回一个APIG响应格式的结果如下: import json def handler (event, context): return { "statusCode": 200, "isBase64Encoded": False, "body": json.dumps(event), "headers": { "Content-Type": "application/json" } } 一般不建议在函数代码内捕获异常,其会导致创建的错误次数告警配置不生效。但是FunctionGraph实现了与云日志服务(LTS)的对接,支持在LTS服务中配置告警,LTS支持日志告警实时监控函数日志中出现的异常信息。 父主题: 使用函数访问Redis数据库
  • 创建委托 登录统一身份认证服务控制台。 在统一身份认证服务的左侧导航窗格中,选择“委托”菜单,单击右上方的“+创建委托”,如图2所示。 图2 创建委托 开始配置委托。 委托名称:LtsOperation。 委托类型:选择“云服务”。 云服务:选择“函数工作流 FunctionGraph”。 持续时间:选择“永久”。 描述:填写描述信息。 单击“下一步”,进入委托权限选择页面,在右方搜索框中搜索“LTS Administrator”权限和“Tenant Administrator”并勾选,如图3所示。 图3 选择权限 选择“LTS Administrator”,由于该策略有依赖,在勾选LTS Administrator时,还会自动勾选依赖的策略:Tenant Guest。 单击“下一步”,请根据业务需要选择权限的作用范围。
  • 日志采集和存储 在云日志服务创建日志组,此处以test1206、test-1121为例,创建过程请参考创建日志组。 在云日志服务创建日志流,此处以test-206、test-1121为例,创建过程请参考创建日志流。 创建函数A,负责写入日志到test-206。函数A代码样例请参考write_log.py。 创建函数B,挂载LTS触发器,接收test-206的日志,处理日志并发结果写入test-1121。函数B代码样例请参考lts_cleanse.py。 在云日志服务配置Agent,快速将ECS等服务器上日志采集到指定的日志组,配置过程请参考安装ICAgent。 图1 流程图
  • 告警消息推送 在SMN消息通知服务创建主题,此处以主题名称fss_test为例,创建过程请参考创建SMN日志主题。 在SMN消息通知服务订阅主题,用于将告警消息推送至该主题下的订阅终端,此处以添加邮件订阅终端为例,订阅fss_test主题,订阅过程请参考订阅主题。 SMN主题名称需添加在函数的环境变量中,以便将告警消息推送至该主题下的订阅终端。环境变量名称为“SMN_Topic”,环境变量值为SMN主题名称。以主题名称fss_test为例,在函数的环境变量配置中添加:“SMN_Topic”:“fss_test”。 订阅主题可选择通过邮件、短信、HTTP/HTTPS等形式推送告警消息 本案例中推送告警消息的事件是:当日志事件通过LTS触发器触发函数执行时,函数中过滤告警日志,产生的告警消息推送至SMN主题的订阅终端。
  • 创建委托 登录统一身份认证服务控制台。 在统一身份认证服务的左侧导航窗格中,选择“委托”页签,单击右上方的“+创建委托”。 图2 创建委托 开始配置委托。 委托名称:LtsOperation。 委托类型:选择“云服务”。 云服务:选择“函数工作流 FunctionGraph”。 持续时间:选择“永久”。 描述:填写描述信息。 单击“下一步”,进入委托选择页面,在右方搜索框中搜索“LTS Administrator”权限和“Tenant Administrator”并勾选。 图3 选择权限 选择“LTS Administrator”,由于该策略有依赖,在勾选LTS Administrator时,还会自动勾选依赖的策略:Tenant Guest。 单击“下一步”,请根据业务需要选择权限的作用范围。
  • 使用限制 单账号跟踪的事件可以通过云审计控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到对象存储服务(OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 保留SMS迁移任务 如果需要在主机工作流迁移完成后保留SMS迁移任务,需要手动在“迁移任务清理”步骤前添加一个卡点步骤,如图5所示。添加卡点步骤的方法和注意事项请参见添加阶段/步骤。 图5 添加卡点步骤 当工作流执行到该卡点步骤时,不要进行手动确认操作,如图6所示。此时SMS控制台上的迁移任务不会被清理且状态为“已完成”,如图7所示。如果进行了手动确认,SMS控制台上的任务会被删除。 图6 卡点步骤 图7 迁移完成
  • 资源包说明 您可以通过包年(资源包)的方式,提前购买请求次数和计量时间,获取更多的优惠。超出资源包的部分自动转按需计费。如何购买请参考资源包购买。 当前资源包方式仅支持华东-上海一。 函数工作流服务暂不支持退订资源包,建议您在购买资源包前提前规划资源的请求次数和计量时间。 函数工作流服务资源包仅支持抵扣资源包购买后产生的费用,不支持抵扣资源包购买前产生的费用。例如某用户于2023年7月15日购买了1亿请求次数规格资源包,且资源包于购买当天立即生效。那么2023年7月15日购买资源包生效时间前用户使用函数工作流产生的费用不能用资源包抵扣,2023年7月15日生效时间后使用函数工作流产生的请求次数费用可以用资源包抵扣。 FunctionGraph提供的资源包类型如表1所示,各类型资源包中不同规格的价格具体以实际显示为准。 表1 包年资源包类型说明 资源包类型 规格 函数调用包 1亿请求、10亿请求、100亿请求、1000亿请求、5000亿请求 活跃内存计量包 100万GB-秒内存计量时间、1000万GB-秒内存计量时间、1亿GB-秒内存计量时间、10亿GB-秒内存计量时间、100亿GB-秒内存计量时间 GPU计量包 50万GB-秒GPU计量时间、100万GB-秒GPU计量时间、1000万GB-秒GPU计量时间、1亿GB-秒GPU计量时间、10亿GB-秒GPU计量时间