对于每一个请求,函数计算服务会根据请求头部的 Authorization 字段来校验是否合法(设置了 HTTP 触发器的允许匿名访问的函数除外)。客户端须使用与函数计算服务端一致的签名算法才能通过验证,对于未包含签名字段或者签名错误的请求,函数计算服务将会返回 HTTP 403 错误。详细签名规则可以参考 签名认证。函数计算提供的 SDK 中有签名方法,可以使用 SDK 提供的接口执行 HTTP 触发器(需要身份认证)函数,下面进行详细介绍具体调用。
Java 1. 安装依赖
将 Maven 依赖项添加到 pom.xml 中
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-fc</artifactId>
<version>1.7.1</version>
</dependency>
import com.alibaba.fastjson.JSONObject; import com.aliyuncs.fc.client.FunctionComputeClient; import com.aliyuncs.fc.model.HttpAuthType; import com.aliyuncs.fc.model.HttpMethod; import com.aliyuncs.fc.request.; import com.aliyuncs.fc.response.; import java.io.IOException; import java.security.InvalidKeyException; public class testJavaSDK { private static final String REGION = "cn-hangzhou"; private static final String SERVICE_NAME = "XXX"; private static final String FUNCTION_NAME = "XXX"; public static void main(final String[] args) throws IOException, InvalidKeyException, IllegalStateException { String accountId = "XXX"; String accessKey = "XXX"; String accessSecretKey = "XXX"; FunctionComputeClient fcClient = new FunctionComputeClient(REGION, accountId, accessKey, accessSecretKey); HttpInvokeFunctionRequest request = new HttpInvokeFunctionRequest(SERVICE_NAME,FUNCTION_NAME, HttpAuthType.FUNCTION, HttpMethod.POST, null); JSONObject object = new JSONObject(); object.put("string","string"); object.put("int","123"); String payload = object.toJSONString(); request.setPayload(payload.getBytes()); request.setHeader("Content-Type", "application/json"); InvokeFunctionResponse invkResp = fcClient.invokeFunction(request); System.out.println(new String(invkResp.getContent())); } } 接口详细入参可以查看 SDK 源码。
Python 1. 安装依赖
pip install aliyun-fc2 2. 代码示例
import fc2 client = fc2.Client( endpoint=' ', accessKeyID=' ', accessKeySecret=' ') req = client.do_http_request( "method", "serviceName", "functionName", "path", headers={}, params=None, body=bytes('hello_world'.encode('utf-8'))) print (req.status_code) 接口详细入参可以查看 SDK 源码。
PHP 1. 安装依赖
可以通过 Composer 命令安装依赖: $ composer require aliyunfc/fc-php-sdk 您还可以在 composer.json 文件中声明对 Alibaba Cloud FC SDK for PHP 的依赖关系。 "require": { "aliyunfc/fc-php-sdk": "~1.2" } 然后运行 composer install——no dev 来安装依赖项。安装 Composer 依赖关系管理器后,在 PHP 代码中导入依赖关系:
require_once DIR . '/vendor/autoload.php'; 2. 代码示例
' ', "accessKeyID" =>' ', "accessKeySecret" =>' ' ]); $res = $fcClient->doHttpRequest("method", "serviceName", "functionName", "path", $headers = [], $unescapedQueries = [], $data = null); $s = $res->getStatusCode(); $data = $res->getBody()->getContents(); var_dump($s); var_dump($data); 接口详细入参可以查看 SDK 源码。 Node.js 1. 安装依赖 npm install @alicloud/fc2 --save 2. 代码示例 'use strict'; var FCClient = require('@alicloud/fc2'); var client = new FCClient(' ', { accessKeyID: ' ', accessKeySecret: ' ', region: 'cn-shanghai', }); async function test () { try { var resp = await client.get('/proxy/${serviceName}/${functionName}/${path}',null,headers ) console.log('invoke function: %j', resp); } catch (err) { console.error(err); } } test().then(); 上述是 GET 请求调用示例,其他请求方式接口详情可以查看 SDK 源码。 .Net Core 1. 安装依赖 在 .csproj 文件中添加如下 package: 2. 代码示例 using System; using System.Collections.Generic; using Aliyun.FunctionCompute.SDK.Client; using Aliyun.FunctionCompute.SDK.Request; namespace mynetcore { class Program { static void Main(string[] args) { var fcClient = new FCClient("region", " ", " ", " "); var customHeaders = new Dictionary { }; Dictionary unescapedQueries = new Dictionary { }; var resposnse = fcClient.InvokeHttpFunction(new HttpInvokeFunctionRequest(string serviceName, string functionName, string method, string path = null, string qualifier = null, byte[] payload = null, unescapedQueries , Dictionary customHeaders = null)); Console.WriteLine(resposnse.StatusCode); } } } 接口详细入参可以查看 SDK 源码。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。