本文向您介绍如何使用控制台和使用 API 创建函数 URL。
使用控制台创建函数 URL
1. 登录 Serverless 控制台,单击左侧导航栏的函数服务。
2. 在函数服务页面,单击函数名,进入该函数详情页面。
3. 选择左侧导航中的函数 URL,单击新建函数 URL。如下图所示:

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

配置项 | 描述 |
别名/版本 | URL 绑定在别名或者版本维度,每一个别名或者版本仅允许创建一个 URL。 |
公网/内网访问 | 可以根据业务需求选择开启公网或者内网 URL 访问。 |
CORS | |
授权类型 | 授权类型支持选择开放和 CAM 鉴权。 开放:不需要对函数请求进行身份验证,支持匿名访问,任何人都可以发起 HTTP 请求调用您的函数。 CAM 鉴权:需要对函数 CAM 鉴权验证,用户可以基于函数 InvokeFunctionUrl 接口进行资源管理和使用权限配置,详情请参见 函数 URL 认证鉴权配置。 |
5. 单击确定完成创建。
使用 API 创建函数 URL
名称 | 类型 | 必选 | 描述 |
AuthType | String | 是 | |
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",}