扩展函数最大超时时间
更新时间:2026-02-09
默认情况下,CFC调用函数超时时间为300s,为了满足长时应用的需求,CFC支持扩展函数最大超时时间(最大可支持1800s),并以异步调用的方式调用最大超时时间超过300s的函数。
若您需要提高函数最大超时时间配置,您可以提工单来申请。
配置最大超时时间
前提条件
您可以根据实际需要,申请扩展函数最大超时时间。
操作步骤
- 以OpenAPI的方式创建函数创建函数,并根据实际需要设置函数超时时间Timeout。
- 异步方式调用函数,有两种异步调用方式,普通异步调用方式或为函数创建定时触发器方式
2.1 普通异步调用
在函数请求Query参数中设置InvocationType=Event,参考函数调用
2.2 以定时触发器方式触发函数异步调用
在函数创建完成后,可以为函数创建定时触发器触发函数异步调用,参考创建定时触发器
2.3 使用API配置超时时间
Python
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3
4import hashlib
5import hmac
6import urllib.parse
7import time
8
9# 1.AK/SK、host、method、URL绝对路径、querystring
10AK = "input your AK"
11SK = "input your SK"
12host = "cfc.bj.baidubce.com"
13method = "PUT"
14# 请将{functionName}替换为您的函数名称
15URI = "/v1/functions/{functionName}/configuration"
16query = "" # 定义初始 query,避免 NameError
17
18# 2.x-bce-date
19x_bce_date = time.gmtime()
20x_bce_date = time.strftime('%Y-%m-%dT%H:%M:%SZ',x_bce_date)
21# 3.header和signedHeaders
22header = {
23 "Host":host,
24 "content-type":"application/json;charset=utf-8",
25 "x-bce-date":x_bce_date
26 }
27signedHeaders = "content-type;host;x-bce-date"
28# 4.认证字符串前缀
29authStringPrefix = "bce-auth-v1" + "/" +AK + "/" +x_bce_date + "/" +"1800"
30# 5.生成CanonicalRequest
31#5.1生成CanonicalURI
32CanonicalURI = urllib.parse.quote(URI) # Python 3 统一使用 urllib.parse.quote
33#5.2生成CanonicalQueryString
34CanonicalQueryString = query # 如果您调用的接口的query比较复杂的话,需要做额外处理
35#5.3生成CanonicalHeaders
36result = []
37for key,value in header.items():
38 tempStr = str(urllib.parse.quote(key.lower(),safe="")) + ":" + str(urllib.parse.quote(value,safe=""))
39 result.append(tempStr)
40result.sort()
41CanonicalHeaders = "\n".join(result)
42#5.4拼接得到CanonicalRequest
43CanonicalRequest = method + "\n" + CanonicalURI + "\n" + CanonicalQueryString +"\n" + CanonicalHeaders
44# 6.生成signingKey
45signingKey = hmac.new(SK.encode('utf-8'),authStringPrefix.encode('utf-8'),hashlib.sha256)
46# 7.生成Signature
47Signature = hmac.new((signingKey.hexdigest()).encode('utf-8'),CanonicalRequest.encode('utf-8'),hashlib.sha256)
48# 8.生成Authorization并放到header里
49header['Authorization'] = authStringPrefix + "/" +signedHeaders + "/" +Signature.hexdigest()
50# 9.发送API请求并接受响应
51import requests
52import json
53
54# 根据您的需求配置合理的超时时间,单位为秒
55body={
56 "Timeout": 600
57 }
58
59url = "http://"+host + URI
60
61r = requests.put(url,headers = header,data=json.dumps(body))
62
63print(r.text)
