云函数 创建函数 URL

这篇说说通过控制台和API创建腾讯云函数URL的方法,包括配置项说明(如授权类型、网络访问、CORS)及参数示例。 控制台创建:需登录Serverless控制台,在函数详情页新建URL,配置别名/版本、授权类型等。 API创建:使用设置函数触发方式接口,Type设为http,TriggerDesc包含AuthType、NetConfig等参数。

相关产品
云函数 产品页,含版本规格、价格与购买入口。

这篇向你介绍如何使用控制台和使用 API 创建函数 URL。

一、使用控制台创建函数 URL

1. 登录 Serverless 控制台,单击左侧导航栏的函数服务。

2. 在函数服务页面,单击函数名,进入该函数详情页面。

3. 选择左侧导航中的函数 URL,单击新建函数 URL。如下:

4. 在新建函数 URL 页面,参考以下信息进行创建。

配置项 描述
别名/版本 URL 绑定在别名或者版本维度,每一个别名或者版本仅允许创建一个 URL。
公网/内网访问 可以根据业务需求选择开启公网或者内网 URL 访问。
CORS 使用 CORS 允许从任何域访问函数 URL。你还可以使用 CORS 来控制对函数 URL 的请求中特定 HTTP 标头和方法的访问。具体设置方法查看 跨源资源共享(CORS)。
授权类型 授权类型支持选择开放和 CAM 鉴权。开放:不需要对函数请求进行身份验证,支持匿名访问,任何人都可以发起 HTTP 请求调用你的函数。CAM 鉴权:需要对函数 CAM 鉴权验证,用户可以基于函数 InvokeFunctionUrl 接口进行资源管理和使用权限配置,详情请参见 函数 URL 认证鉴权配置。

5. 单击确定完成创建。

二、使用 API 创建函数 URL

创建函数 URL 与创建触发器共用接口,公用参数详情请参见 设置函数触发方式,其中Type参数请填写http,TriggerDesc参数配置说明如下:

名称 类型 必选 描述
AuthType String 是 授权类型,CAM 表示需使用 函数 URL 认证鉴权配置,NONE 表示无需授权。
NetConfig NetConfig 是 网络访问配置,示例值:{ "EnableIntranet": true, "EnableExtranet": false }
CorsConfig CorsConfig 否 CORS 配置,示例值:{"Enable":true,"Origins":["*"],"Headers":["content-type","custom-header"],"Methods":["POST","PATCH"],"ExposeHeaders":["*"],"MaxAge":10,"Credentials":true}

三、NetConfig

名称 类型 必选 描述
EnableIntranet Bool 是 是否开启内网访问。
EnableExtranet Bool 是 是否开启公网访问。

四、CorsConfig

名称 类型 必选 描述
Enable Bool 是 是否开启 CORS。
Origins Array of String 是 Access-Control-Allow-Origin 参数指定了单一的源,告诉浏览器允许该源访问资源。或者,对于不需要携带身份凭证的请求,服务器可以指定该字段的值为通配符“*”,表示允许来自任意源的请求。
Headers Array of String 否 Access-Control-Allow-Headers 标头字段用于预检请求的响应。其指明了实际请求中允许携带的标头字段。这个标头是服务器端对浏览器端 Access-Control-Request-Headers 标头的响应。
Methods Array of String 是 Access-Control-Allow-Methods 标头字段指定了访问资源时允许使用的请求方法,用于预检请求的响应。其指明了实际请求所允许使用的 HTTP 方法。
ExposeHeaders Array of String 否 Access-Control-Expose-Headers 头将指定标头放入允许列表中,供浏览器的 JavaScript 代码(如 getResponseHeader())获取。
MaxAge Integer 否 Access-Control-Max-Age 头指定了 preflight 请求的结果能够被缓存多久。
Credentials Bool 否 Access-Control-Allow-Credentials 头指定了当浏览器的 credentials 设置为 true 时是否允许浏览器读取 response 的内容。

五、参数示例

trigger_desc = { "AuthType": "NONE", "NetConfig": { "EnableIntranet": true, "EnableExtranet": false }, "CorsConfig": { "Enable":true, "Origins":["*"], "Headers":["content-type","custom-header"], "Methods":["POST","PATCH"], "ExposeHeaders":["*"], "MaxAge":10, "Credentials":true }}params = { "FunctionName": "helloworld", "TriggerName": "func_url", "TriggerDesc": json.dumps(trigger_desc), "Type": "http", "Namespace": "default", "Enable": "OPEN",}

赞 (0)
上一篇 4天前
下一篇 4天前