爆款云主机低至25.83元/年
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 云聚517 · 好价翼起拼 NEW 爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 聚力AI赋能 天翼云大模型专项 大模型特惠专区·Token Plan 轻享包低至9.9元起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 企业出海解决方案 NEW 助力您的业务扬帆出海,通达全球!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
Token服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V4-Flash
  • GLM-5.1
  • Qwen3.5-122B-A10B
  • DeepSeek-V3.2(旗舰版)
  • GLM-5(正式版)
智算一体机
  • 智算一体机
智能体引擎
  • 智能体引擎
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      EasyCoding敏捷开发平台_相关内容
      • 合并多个查询结果
        本文为你介绍合并多个查询结果的方法。 不过滤重复的记录。 plaintext teledb create table teledbpg1(id int, nickname varchar); CREATE TABLE teledb insert into teledbpg1 values(3, 'pg'),(5,'test'); COPY 2 teledb select from teledbpg union all select from teledbpg1; id nickname + 1 teledb 1 hello,pgxc 2 TELEDB 3 pg 4 5 test 3 pg (7 rows) 过滤重复的记录。 plaintext teledb select from teledbpg union select from teledbpg1; id nickname + 1 teledb 1 hello,pgxc 4 5 test 2 TELEDB 3 pg (6 rows) 每个子查询分布在合并结果中的使用。 plaintext teledb select from (select from teledbpg limit 2) as t union all select from (select from teledbpg1 limit 2) teledb ; id nickname + 1 teledb 1 hello,pgxc 5 test 3 pg (4 rows)
        来自:
      • 删除存储过程
        本页介绍天翼云TeleDB数据库删除存储过程的语法。 删除不带参数的存储过程 plaintext teledb CREATE OR REPLACE PROCEDURE proc1() AS $$ begin raise notice 'Hello teledbpg'; end; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb drop procedure proc1 ( ); DROP PROCEDURE teledb 删除带参数的存储过程 plaintext teledb CREATE OR REPLACE PROCEDURE proc1(aint int) AS $$ begin raise notice '%',aint; end; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb drop procedure proc1 ( aint int); DROP PROCEDURE teledb 也可以只指定参数的类型即可。 plaintext teledb drop procedure proc1 (int); DROP PROCEDURE teledb
        来自:
      • 存储过程执行
        本页介绍天翼云TeleDB数据库存储过程执行的语法。 不带参数 plaintext teledb create or replace procedure pnopara() as $$ begin raise notice 'nopara procedure'; end; $$ language plpgsql; CREATE PROCEDURE teledb call pnopara(); NOTICE: nopara procedure CALL teledb 带参数 plaintext teledb create or replace procedure ppara(aint integer) as $$ begin raise notice 'aint %',aint; end; $$ language plpgsql; CREATE PROCEDURE teledb call ppara(1); NOTICE: aint 1 CALL teledb
        来自:
      • Java探针性能压测报告
        应用性能监控APM探针在应用运行时进行字节码增强,实现应用性能管理能力。与其他通过字节码增强技术实现的性能管理方案一样,APM探针会带来一定的应用性能开销,您可以参考本篇分析报告,在接入应用性能监控APM前,基于性能影响进行充分的评估。 测试用例 机器类型: CTyunOS V4.0 25.07 64 位,2C4G 测试时长:10分钟 jvm参数:Xms3500m Xmx3500m XX:MetaspaceSize500m 测试场景:整体架构如下图所示 Java应用基于Spring MVC框架编写,包含 Spring Boot、Spring MVC,Jedis,HikariCP 连接池,每次请求产生5个span(1个 Tomcat 调用、1个 Spring MVC 框架调用、2个 Redis 请求和1个 MySQL 请求),每次请求会随机sleep 2040ms。 基线性能 在不接入 APM 的情况下,性能表现如下: 业务流量(TPS) CPU 利用率 内存利用率 平均响应时间(ms) 500 9.5% 79% 30 1000 15.5% 79% 30 2000 26.5% 80.15% 30 安装探针后的性能指标 应用接入 APM 后,性能表现如下: 业务流量(TPS) CPU 利用率 内存利用率 平均响应时间(ms) 500 25.3% 82% 31 1000 40.1% 82.2% 31.1 2000 66.5% 83.4% 31.2
        来自:
        帮助文档
        应用性能监控 APM
        用户指南
        开发参考
        Java探针性能压测报告
      • 收发普通消息
        本章节介绍普通消息的收发方法和示例代码。其中,普通消息发送方式分为同步发送、异步发送、单向发送。 同步发送:同步发送是指消息发送方发出一条消息后,会在收到服务端同步响应之后才发下一条消息的通讯方式。 异步发送:异步发送是指发送方发出一条消息后,不等服务端返回响应,接着发送下一条消息的通讯方式。 单向发送:发送方只负责发送消息,不等待服务端返回响应且没有回调函数触发。 收发消息前,请参考收集连接信息收集RocketMQ所需的连接信息。 准备环境 开源的Java客户端支持连接分布式消息服务RocketMQ版,推荐使用的客户端版本为4.9.7。 通过以下任意一种方式引入依赖: 1. 使用Maven方式引入依赖。 org.apache.rocketmq rocketmqclient 4.9.7 org.apache.rocketmq rocketmqacl 4.9.7 2. 点击下载依赖JAR包:rocketmqall4.9.7binrelease.zip 同步发送 同步发送是最常用的方式,是指消息发送方发出一条消息后,会在收到服务端同步响应之后才发下一条消息的通讯方式,可靠的同步传输被广泛应用于各种场景,如重要的通知消息、短消息通知等。 参考如下示例代码 import org.apache.rocketmq.acl.common.AclClientRPCHook; import org.apache.rocketmq.acl.common.SessionCredentials; import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.common.message.Message; import org.apache.rocketmq.remoting.RPCHook; import org.apache.rocketmq.remoting.common.RemotingHelper; public class ProducerNormalExample { private static RPCHook getAclRPCHook() { return new AclClientRPCHook(new SessionCredentials( "accessKey", // 分布式消息服务RocketMQ控制台用户管理菜单中创建的用户ID "accessSecret" // 分布式消息服务RocketMQ控制台用户管理菜单中创建的密钥 )); } public static void main(String[] args) throws Exception { DefaultMQProducer producer new DefaultMQProducer("YOUR GROUP ID", getAclRPCHook()); // 填入控制台获取NAMESRV接入点地址 producer.setNamesrvAddr("XXX:xxx"); ; // 如果需要开启SSL,请增加此行代码 producer.start(); for (int i 0; i < 128; i++) try { { Message msg new Message("YOUR TOPIC", "TagA", "Hello RocketMQ".getBytes(RemotingHelper.DEFAULTCHARSET)); SendResult sendResult producer.send(msg); System.out.println(sendResult); } } catch (Exception e) { e.printStackTrace(); } producer.shutdown(); } }
        来自:
        帮助文档
        分布式消息服务RocketMQ
        开发指南
        Java
        收发普通消息
      • 消费限流
        在分布式消息服务RocketMQ中,消费者消费消息时,可能会出现消费过快导致下游业务来不及处理的情况,进而影响系统的稳定性。本章节介绍在消费端进行限流的示例代码,以保障系统的稳定。 import java.util.List; import java.util.concurrent.TimeUnit; import com.google.common.util.concurrent.RateLimiter; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; import org.apache.rocketmq.client.exception.MQClientException; import org.apache.rocketmq.common.consumer.ConsumeFromWhere; import org.apache.rocketmq.common.message.MessageExt; public class ConsumerLimitExample { public static void main(String[] args) throws InterruptedException, MQClientException { DefaultMQPushConsumer consumer new DefaultMQPushConsumer("GroupTest"); consumer.subscribe("TopicTest", ""); consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUMEFROMFIRSTOFFSET); RateLimiter rateLimiter RateLimiter.create(200); consumer.registerMessageListener(new MessageListenerConcurrently() { @Override public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { if (!rateLimiter.tryAcquire(msgs.size(),3, TimeUnit.SECONDS)) { return ConsumeConcurrentlyStatus.RECONSUMELATER; } System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs); return ConsumeConcurrentlyStatus.CONSUMESUCCESS; } }); consumer.start(); System.out.printf("Consumer Started.%n"); } }
        来自:
        帮助文档
        分布式消息服务RocketMQ
        开发指南
        Java
        消费限流
      • 收发顺序消息
        订阅顺序消息 参考如下示例代码 import org.apache.rocketmq.acl.common.AclClientRPCHook; import org.apache.rocketmq.acl.common.SessionCredentials; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyStatus; import org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly; import org.apache.rocketmq.client.consumer.rebalance.AllocateMessageQueueAveragely; import org.apache.rocketmq.remoting.RPCHook; public class ConsumerFifoExample { private static RPCHook getAclRPCHook() { return new AclClientRPCHook(new SessionCredentials( "accessKey", // 分布式消息服务RocketMQ控制台用户管理菜单中创建的用户ID "accessSecret" // 分布式消息服务RocketMQ控制台用户管理菜单中创建的密钥 )); } public static void main(String[] args) throws Exception { / 创建Consumer,如果想开启消息轨迹,可以按照如下方式创建: DefaultMQPushConsumer consumer new DefaultMQPushConsumer("YOUR GROUP ID", getAclRPCHook(), new AllocateMessageQueueAveragely(), true, null); / DefaultMQPushConsumer consumer new DefaultMQPushConsumer("YOUR GROUP ID", getAclRPCHook(), new AllocateMessageQueueAveragely()); // 填入控制台NAMESRV接入点地址 consumer.setNamesrvAddr("XXX:xxx"); // consumer.setUseTLS(true); // 如果需要开启SSL,请增加此行代码 / 如果想要消费指定TAG的消息,可以按照如下方式订阅: 为订阅所有的TAG pushConsumer.subscribe(TOPICNAME, "Tag1"); / consumer.subscribe("TopicTest", ""); consumer.registerMessageListener((MessageListenerOrderly) (msgs, context) > { System.out.printf("Receive New Messages: %s %n", msgs); return ConsumeOrderlyStatus.SUCCESS; }); consumer.start(); System.out.println("Consumer Started."); } }
        来自:
        帮助文档
        分布式消息服务RocketMQ
        开发指南
        Java
        收发顺序消息
      • 请求处理程序(Handler)
        本文介绍如何使用Go请求处理程序响应接收到的事件并执行相应的业务逻辑。 请求处理程序 请求处理程序 是您提供的一个方法。当您的函数被调用时,函数计算会运行该方法处理请求。 您可以通过函数计算控制台页面配置请求处理程序,对于Go语言的函数,请求处理程序会被被编译为一个可执行的二进制文件。例如,您的可执行二进制文件名为handler,则请求处理程序直接配置为handler。 在Go语言的代码中,您需要引入官方的SDK库 gitee.com/ctyunfaas/cfruntimegosdk/cf,并实现 handler方法和 main方法。示例如下: package main import ( "log" "gitee.com/ctyunfaas/cfruntimegosdk/cf" ) func main() { cf.Start(HandleRequest) } func HandleRequest() (string, error) { log.Println("hello world!") return "hello world"!", nil } Handler方法签名 下面列举出了有效的Event Handler方法签名,其中 InputType和 OutputType与 encoding/json标准库兼容。 函数计算会使用 json.Unmarshal方法对传入的 InputType进行反序列化,以及使用 json.Marshal方法对返回的 OutputType进行序列化。 func () func () error func (InputType) error func () (OutputType, error) func (InputType) (OutputType, error) func (context.Context) error func (context.Context, InputType) error func (context.Context) (OutputType, error) func (context.Context, InputType) (OutputType, error) Handler的使用需遵循以下规则: Handler必须是一个方法。 Handler支持0~2个输入参数。如果有2个参数,则第一个参数必须是 context.Context。 Handler支持0~2个返回值。如果有1个返回值,则必须是 error类型;如果有2个返回值,则第2个返回值必须是 error。
        来自:
      • 请求处理程序(Handler)
        本文介绍如何使用PHP请求处理程序响应接收到的事件并执行相应的业务逻辑。 请求处理程序 请求处理程序是您提供的一个方法。当您的函数被调用时,函数计算会运行该方法处理请求。 您可以通过函数计算控制台页面配置请求处理程序 ,对于PHP语言的函数,请求处理程序需配置为 [文件名].[方法名]。例如,您的文件名为index.php,方法名为handler,则请求处理程序可配置为 index.handler。 如下是一个事件请求处理程序的方法签名示例: php getBody()>getContents(); $logger $GLOBALS['fcLogger']; $logger>info('request body:' . $body); return new Response( 200, array( 'helloheader1' > 'aaa', 'helloheader2' > ['bbb', 'ccc'], 'ContentType2' > 'application/json' ), 'hello world' ); }
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        PHP
        请求处理程序(Handler)
      • 错误处理
        字段 类型 解释说明 errorMessage string 异常信息。 errorType string 异常类型。 stackTrace string[] 异常堆栈。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        PHP
        错误处理
      • 代码开发概述
        运行时可为您的函数提供针对不同语言在执行环境中运行的环境。运行时可传递函数调用的事件(event)、上下文信息(context)和响应。天翼云函数计算支持多种语言的标准运行时,同时也可以使用标准运行时构建您自己的运行时,或自行构建容器镜像。 标准运行时 Node.js Python Java Go C PHP 自定义运行时 更多信息,请参考自定义运行时章节。 容器镜像函数 更多信息,请参考容器镜像函数章节。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        代码开发概述
      • 环境说明
        版本 标识符 操作系统 架构 Python 3.10.12 Python 3.10 Linux (Debian 10) x8664 Python 3.9.16 Python 3.9 Linux (Debian 10) x8664 Python 3.6.15 Python 3.6 Linux (Debian 10) x8664
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Python
        环境说明
      • 上下文
        字段 类型 说明 requestId String 函数请求ID。 credentials Credentials,该结构字段如下: accessKeyId accessKeySecret securityToken 临时密钥信息。 function FunctionMeta,该结构字段如下: name handler memory timeout 当前函数的基本信息。 service ServiceMeta,该结构字段如下: logProject logStore qualifier versionId 当前函数的服务信息。 region String 当前函数的所在地域ID。 accountId String 当前函数的所属账号ID。 logger ContextLog,该结构字段如下: debug info warn error log 日志对象。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Node.js
        上下文
      • 函数实例生命周期回调方法
        本文介绍Python如何实现并应用函数实例生命周期回调方法。 使用说明 当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。函数实例生命周期涉及Initializer和PreStop回调。 Initializer回调 Initializer回调在函数实例启动成功后,请求处理程序(Handler)之前执行。 PreStop回调 PreStop回调在函数实例销毁前执行。 Initializer回调和PreStop回调的方法签名一样,入参只有一个context参数,提供在调用时的运行上下文信息。回调方法定义如下: coding: utf8 import logging def initialize(context): print("initialize...") def preStop(context): print("preStop...")
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Python
        函数实例生命周期回调方法
      • 上下文
        本文介绍在函数计算中Context的相关概念和使用示例。 上下文 当函数计算运行您的函数时,会将上下文(Context)对象传递到执行方法中。该对象包含有关调用、服务、函数和执行环境等信息。Context接口定义如下: package com.ctg.faas.runtime; / The context object allows you to access useful information available within the Tianyi cloud function compute execution environment / public interface Context { / Gets the function request ID associated with the request. This is the same ID returned to the client that called invoke(). This ID is reused for retries on the same request. @return The request id / public String getRequestId(); / Gets the credentials of the execution role @return The request Credentials / public Credentials getExecutionCredentials(); / Gets the function related parameters @return The request function params / public FunctionParam getFunctionParam(); / Gets the service related parameters @return The request service info / public Service getService(); / Gets the function compute logger instance associated with the context object @return The fc logger / public FunctionComputeLogger getLogger(); / Gets the function compute opentracing instance associated with the context object @return The fc tracing / public OpenTracing getTracing(); / Gets the function compute retry count associated with the context object @return The retry count / public int getRetryCount(); } 示例:获取函数相关信息 使用Context获取函数Handler和Initializer: package example; import com.ctg.faas.runtime.Context; import com.ctg.faas.runtime.FunctionParam; import com.ctg.faas.runtime.PojoRequestHandler; public class PojoHandler implements PojoRequestHandler { @Override public String handleRequest(String in, Context context) { FunctionParam functionParam context.getFunctionParam(); String initializer functionParam.getFunctionInitializer(); String handler functionParam.getFunctionHandler(); return String.format("Function initializer is: %s, handler is: %s", initializer, handler); } }
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Java
        上下文
      • 函数实例生命周期回调方法
        本文介绍Java如何实现并应用函数实例生命周期回调方法。 使用说明 当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。函数实例生命周期涉及Initializer和PreStop回调。 Initializer回调 Initializer回调在函数实例启动成功后,请求处理程序(Handler)之前执行。使用Initializer回调需要继承com.ctg.faas.runtime.FunctionInitializer接口,并实现该接口的initialize方法。 PreStop回调 PreStop回调在函数实例销毁前执行。使用PreStop回调需要继承com.ctg.faas.runtime.PreStopHandler接口,并实现该接口的preStop方法。 Initializer回调和PreStop回调的方法签名一样,入参只有一个context参数,提供在调用时的运行上下文信息。一个包含回调方法的示例如下: package example; import com.ctg.faas.runtime.Context; import com.ctg.faas.runtime.FunctionInitializer; import com.ctg.faas.runtime.PojoRequestHandler; import com.ctg.faas.runtime.PreStopHandler; public class PojoHandler implements PojoRequestHandler , FunctionInitializer, PreStopHandler { @Override public String handleRequest(String input, Context context) { context.getLogger().info("Hello:" + input); return input; } @Override public void initialize(Context context) { context.getLogger().info("initialize..."); } @Override public void preStop(Context context) { context.getLogger().info("preStop..."); } }
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Java
        函数实例生命周期回调方法
      • 函数实例生命周期回调方法
        本文介绍Go如何实现并应用函数实例生命周期回调方法。 使用说明 当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。 Initializer回调 Initializer回调在函数实例启动成功后,请求处理程序(Handler)之前执行。 PreStop回调 PreStop回调在函数实例销毁前执行。使用PreStop回调需要继承com.ctg.faas.runtime.PreStopHandler接口,并实现该接口的preStop方法。 Initializer回调和PreStop回调的方法签名一样,入参只有一个context参数,提供在调用时的运行上下文信息。cfruntimegosdk官方库提供了RegisterInitializerFunction、RegisterPreStopFunction方法分别用于注册Initializer回调和PreStop回调。 示例代码如下: package main import ( "context" "gitee.com/ctyunfaas/cfruntimegosdk/cf" "gitee.com/ctyunfaas/cfruntimegosdk/fccontext" ) func initialize(ctx context.Context) { fctx, : fccontext.FromContext(ctx) fctx.GetLogger().Info("initialize...") } func preStop(ctx context.Context) { fctx, : fccontext.FromContext(ctx) fctx.GetLogger().Info("preStop...") } func HandleRequest(ctx context.Context) (string, error) { fctx, : fccontext.FromContext(ctx) fctx.GetLogger().Info("HandleRequest...") return "hello world", nil } func main() { cf.RegisterPreStopFunction(preStop) cf.RegisterInitializerFunction(initialize) cf.Start(HandleRequest) }
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Go
        函数实例生命周期回调方法
      • 部署代码包
        本文以安装第三方依赖ramda为例,介绍如何打包您的Node.js函数代码,并部署代码至函数计算。 准备工作 1. 创建一个代码目录,如 myapp 。 2. 在 myapp 目录下,创建 index.js 文件,文件内容如下: 'use strict'; var r require('ramda'); exports.handler (event, context, callback) > { var numbers [1, 2, 3, 4, 5]; callback(null, r.map(r.multiply(3), numbers)); } 3. 在本地运行环境上已经安装好npm环境,且具备执行npm命令的权限。 安装依赖 您需要进入 myapp目录,然后执行 npm install ramda 命令安装ramda依赖库到当前目录。 部署代码 对于Linux系统,您可以在 myapp 目录下执行 zip code.zip r ./ 命令将代码打包成zip压缩包文件。对于Windows系统,您可以在 myapp 目录下选中所有文件,单击鼠标右键,选择打包为ZIP包。 注意 由于函数计算的运行环境是Linux系统,您在Windows系统或macOS系统安装ramda依赖库时如果带有二进制文件,会导致您的代码包上传到函数计算后运行失败。 在函数计算控制台 找到对应的目标函数,然后在函数详情页面的右上角,点击上传代码 上传zip进行上传刚打包的ZIP文件。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Node.js
        部署代码包
      • 上下文
        本文介绍在函数计算中Context的相关概念和使用示例。 上下文 当函数计算运行您的函数时,会将上下文(context.Context)对象传递到执行方法中。该对象包含有关调用、服务、函数和执行环境等信息。 示例 您可以 import gitee.com/ctyunfaas/cfruntimegosdk/fccontext,通过fccontext.FromContext方法获取fccontext。如下示例将输出上下文相关信息: package main import ( "context" "encoding/json" "gitee.com/ctyunfaas/cfruntimegosdk/cf" "gitee.com/ctyunfaas/cfruntimegosdk/fccontext" ) func main() { cf.Start(HandleRequest) } func HandleRequest(ctx context.Context) (string, error) { fctx, : fccontext.FromContext(ctx) res, : json.Marshal(fctx) return string(res), nil }
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Go
        上下文
      • 日志
        本文介绍如何在Node.js运行环境下打印和查看函数日志。 打印日志 当需要查看函数运行相关的自定义状态时,可以使用如下几种方式打印日志至标准输出stdout。往标准输出stdout打印的日志内容会被函数收集。 ES模块 export const handler async (event, context) > { process.stdout.write('hi,fcn'); console.log('hello,world'); context.logger.info('hello,fc'); return "Hello World!"; }; CommonJS模块 'use strict'; exports.handler (event, context, callback) > { process.stdout.write('hi,fcn'); console.log('hello,world'); context.logger.info('hello,fc'); callback(null, 'hello,world'); }; 以下分别介绍所使用的几种日志打印方法。 使用process.stdout.write打印日志 使用此方法打印日志会将内容原样输出到日志中。输出的日志内容如下所示。 hi,fc 使用console.log打印日志 使用此方法打印的每条日志中都会包含时间、RequestId、日志级别等信息。输出的日志内容如下所示。 20240304 07:01:16.927 165e571bc158a59e8b63f98cd471c [info] hello,world 直接使用context.logger打印日志 当您配置的函数实例并发度大于1时,一个函数实例会同时并发处理多个请求。此时强烈建议使用context.logger打印日志,以通过RequestId区分各并发请求的日志。输出的日志内容如下所示。 20240304 07:01:16.927 165e571bc158a59e8b63f98cd471c [[object Object]] hello,fc 查看日志 函数执行完成后,您可以在函数详情页的日志页签查看日志信息。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Node.js
        日志
      • 日志
        本文介绍如何在Python运行环境下的日志打印。 打印日志 当需要查看函数运行相关的自定义状态时,可以使用如下几种方式打印日志至标准输出stdout。往标准输出stdout打印的日志内容会被函数收集。 以下分别介绍所使用的几种日志打印方法。 使用print打印日志 使用此方法打印日志会将内容原样输出到日志中。相应的执行代码及输出的日志内容如下所示。 def handler(event, context): print ('hello world') return 'done' hello world 使用logging模块打印日志 使用此方法打印的每条日志中都会包含时间、RequestId、日志级别等信息。相应的执行代码及输出的日志内容如下所示。 import logging def handler(event, context): logger logging.getLogger() logger.info('hello world') return 'done' 20241114 09:34:34.052 a8b30ba91afc46cd98b758e2a443ced0 [INFO] hello,world 查看日志 函数执行完成后,您可以在函数详情页的日志页签查看日志信息。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Python
        日志
      • 上下文
        当函数计算运行您的函数时,会将上下文对象传递到执行方法中。该对象包含有关调用、服务、函数和执行环境等信息。 上下文对象context主要包括如下字段: 字段 类型 说明 requestid String 函数请求ID。 credentials Credentials结构,包含以下字段: accesskeyid accesskeysecret securitytoken 临时密钥信息。 function FunctionMeta结构,包含以下字段: name handler memory timeout 当前函数的基本信息。 service ServiceMeta结构,包含以下字段: logproject logstore qualifier versionid 当前函数的服务信息。 region String 当前函数的所在地域ID。 accountid String 日志对象。 事件请求函数上下文 当函数计算运行您的函数时,会将上下文相关信息传递到执行方法中的第二个参数context中,通过如下示例查看上下文相关信息: coding: utf8 import logging def handler(event, context): logger logging.getLogger() logger.info(f"Request id: {context.requestid}") return context.headersMap HTTP请求函数上下文 当函数计算运行您的函数时,会将上下文相关信息传递到执行方法中的第一个参数environ中,通过如下示例查看上下文相关信息: coding: utf8 def handler(environ, startresponse): ret "" for key, value in environ.items(): ret ret + f"key: {key}, value:{value} n" status '200 OK' responseheaders [('Contenttype', 'text/plain')] startresponse(status, responseheaders) return [ret]
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Python
        上下文
      • 函数实例生命周期回调方法
        本文介绍Node.js如何实现并应用函数实例生命周期回调方法。 使用说明 当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。 Initializer回调 Initializer回调在函数实例启动成功后,请求处理程序(Handler)之前执行。在一个实例生命周期内,Initializer回调会且仅会成功执行一次。 ES模块 export const initialize async (context) > { console.log('initializer'); return ""; } CommonJS模块 exports.initialize function(context, callback) { console.log('initializer'); callback(null, ""); }; PreStop回调 PreStop回调在函数实例销毁前执行。 ES模块 export const preStop async (context) > { console.log('preStop'); return ""; } CommonJS模块 module.exports.preStop function(context, callback){ console.log('preStop'); callback(null, ""); } Initializer回调和PreStop回调的方法签名一样,入参只有一个context参数,提供在调用时的运行上下文信息。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Node.js
        函数实例生命周期回调方法
      • 错误处理
        字段 类型 解释说明 errorMessage String 异常信息。 errorType String 异常类型。 stackTrace List 异常堆栈。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Python
        错误处理
      • 错误处理
        本文介绍函数计算Go运行环境的错误处理相关内容。 返回错误信息 如下示例直接返回错误信息: package main import ( "errors" "gitee.com/ctyunfaas/cfruntimegosdk/cf" ) func HandleRequest() error { return errors.New("trouble now") } func main() { cf.Start(HandleRequest) } 调用函数时,会收到如下响应: { "errorMessage": "trouble now", "errorType": "errorString" } 使用panic抛出错误 如下示例使用panic抛出错误信息: package main import ( "gitee.com/ctyunfaas/cfruntimegosdk/cf" ) func HandleRequest() error { panic("Error: trouble now") return nil } func main() { cf.Start(HandleRequest) } 调用函数时,会收到如下响应(示例中仅列出了部分堆栈信息): { "errorMessage": "Error: trouble now", "errorType": "string", "stackTrace": [ { "path": "gitee.com/ctyunfaas/cfruntimegosdk@v0.0.020240319091518e684f96d8b85/cf/errors.go", "line": 33, "label": "fcPanicResponse" }, { "path": "gitee.com/ctyunfaas/cfruntimegosdk@v0.0.020240319091518e684f96d8b85/cf/function.go", "line": 111, "label": "(userFunction).Invoke.func1" }, ...... ] } os.Exit(1) 非必要不建议使用包含 os.Exit(1)代码的错误处理代码,使用该方法无法获取退出时的报错信息和堆栈信息。例如 log.Fatal方法。示例如下: package main import ( "gitee.com/ctyunfaas/cfruntimegosdk/cf" "log" ) func HandleRequest() error { log.Fatal("trouble now") return nil } func main() { cf.Start(HandleRequest) } 调用函数时,会收到如下响应: EOF
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Go
        错误处理
      • 错误处理
        本文介绍函数计算Node.js运行环境的错误处理相关内容。 抛出异常 如下示例我们在函数中抛出了一个异常。函数计算会捕获到抛出的异常,并生成包含错误信息、类型和堆栈信息的JSON格式数据: exports.handler function(event, context, callback) { throw new Error('trouble now'); }; 调用函数时,会收到如下响应(示例中仅列出了部分堆栈信息): { "errorMessage": "trouble now", "errorType": "Error", "stackTrace": [ "Error: trouble now", " at handler (file:///code/index.mjs:2:9)", ... ] } 异常退出 如下示例我们在函数中进行异常退出。函数计算会返回一个通用的错误信息: exports.handler function(event, context, callback) { process.exit(1); }; 调用函数时,会收到如下响应: EOF
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Node.js
        错误处理
      • 基本原理
        本文介绍在函数计算中自定义运行时的基本原理。 基本原理 对于自定义运行时环境,你上传的代码ZIP包实质上是一个能够处理HTTP请求的服务器应用。你需要在函数配置中指定一个启动命令,来启动这个HTTP服务器。当函数计算服务在冷启动自定义运行时函数时,它将依据你的启动命令来启动您的HTTP服务器,此时,该服务器将负责接收并处理所有由函数计算服务转发过来的请求。默认情况下,HTTP服务器监听的端口是9000,但如果你的服务器配置了不同的端口,比如8080,你可以配置监听端口至8080。 HTTP Server配置要求 创建HTTP Server时您需要满足以下要求: 1:http server监听端口需要和函数配置一致,比如,函数属性监听端口默认是9000。那么您实现的HTTP Server监听的端口也必须是9000。 2: Connection需要设置为KeepAlive。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        自定义运行时
        基本原理
      • 上下文
        字段 说明 string RequestId 调用请求ID。 ICfFunctionParameter FunctionParam 函数相关参数信息。 ICfLogger Logger 日志对象。 string AccountId 用户的AccountId。 string Region 当前函数所在的Region。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        C#
        上下文
      • 部署代码包
        本文以安装第三方依赖numpy为例,介绍如何为您的Python代码安装依赖,打包并部署代码至函数计算。 注意 由于函数计算的运行环境是Linux系统,在Windows系统或macOS系统安装numpy依赖库带有跟当前系统相关二进制文件,会导致您的代码包部署到函数计算后运行失败。建议您使用Linux系统进行以下操作。 准备工作 1. 创建一个代码目录,如 myapp。 2. 在 myapp目录下,创建 index.py文件,文件内容如下: coding: utf8 import numpy as np import logging def handler(event, context): a np.arange(6) return a 安装依赖 在 myapp目录下执行 pip3 install numpy t .安装numpy依赖库到当前目录。 部署代码 在 myapp目录下执行zip code.zip r ./命令将代码打包成zip压缩包文件。 在函数计算控制台 找到对应的目标函数,然后在函数详情页面的右上角,点击上传代码 上传zip进行上传刚打包的ZIP文件。
        来自:
        帮助文档
        函数计算
        用户指南
        代码开发
        Python
        部署代码包
      • 如何保证代码的安全?
        函数计算服务对用户数据的保护采取了严格的安全措施,确保用户代码的存储和执行环境都是安全且隔离的。函数计算服务不会访问或查看用户的数据和代码,同时实施严格的权限控制机制,确保每个账号只能访问其拥有权限的资源,没有权限读取或获取其他账号的数据,包括代码。
        来自:
        帮助文档
        函数计算
        常见问题
        代码开发
        如何保证代码的安全?
      • 翼MR如何连接spark-shell?
        本章节主要介绍翼MapReduce组件Spark使用说明。 1. 任一用户登录集群客户端节点。 2. 配置/usr/local/ 下spark客户端目录 conf下的配置,主要是Sparkenv.sh 需要配置SPARKHOME、HADOOPHOME、HADOOPCLASSPATH等。 3. 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户。如果当前集群未启用Kerberos认证,则无需执行此命令。 1. 首先klist kt ,获取keytab文件的principal,例如 klist kt user.keytab 获得 user/hostname@realm。 2. 然后kinit kt ,例如 kinit kt user.keytab user/hostname@realm。 3. Kinit认证完成登录后,可以klist l查看。 4. 如果SPARKHOME/bin 已经配置到系统环境变量中,可以直接sparkshell 进入。否则需要去到SPARKHOME/bin下执行。
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        翼MR如何连接spark-shell?
      • HBase支持的压缩算法有哪些?
        本章节主要介绍翼MapReduce组件HBase支持的压缩算法。 HBase目前默认支持的压缩算法有snappy和gz,根据需要可以增加lzo、lz4、bzip2等算法支持。
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        HBase支持的压缩算法有哪些?
      • 1
      • ...
      • 159
      • 160
      • 161
      • 162
      • 163
      • ...
      • 170
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      云聚517 · 好价翼起拼

      爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      聚力AI赋能 天翼云大模型专项

      大模型特惠专区·Token Plan 轻享包低至9.9元起

      青云志云端助力计划

      一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云

      企业出海解决方案

      助力您的业务扬帆出海,通达全球!

      天翼云信创专区

      “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      产品推荐

      弹性高性能计算 E-HPC

      天翼云CTyunOS系统

      训推服务

      公共算力服务

      智算一体机

      人脸实名认证

      人脸属性识别

      人脸活体检测

      营业执照识别

      推荐文档

      玩转天翼云⑦:Linux扩展Swap分区的三种方法

      基本概念

      创建队列

      代码示例

      删除

      术语解释

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 息壤智算平台
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号