您可使用阿里云CLI通过命令方式调用函数计算API。本文介绍如何通过阿里云CLI调用函数计算API,并提供使用示例。
前提条件
- 安装阿里云CLI
- 配置阿里云CLI
- 了解使用阿里云CLI调用RESTful API的命令结构(函数计算API为RESTful风格)。更多信息,请参见调用RPC API和RESTful API。
快速入门
您可按以下步骤使用阿里云CLI,执行从创建服务到成功请求函数的完整流程。
说明 --body参数有以下两种设置方式。
- 第一种为上文快速入门演示的方式,转义后直接填写在--body位置处。
- 第二种方式为通过JSON文件引入。
aliyun fc-open POST /2021-04-06/services --body "$(cat createService.json)"
文件示例。{ "serviceName": "testServiceName" }
服务调用示例
// serviceName: testServiceName
// 创建服务
aliyun fc-open POST /2021-04-06/services --body "{\"serviceName\":\"testServiceName\",\"description\":\"testServiceName\"}"
// 查询指定的服务
aliyun fc-open GET /2021-04-06/services/testServiceName
// 更新服务描述
aliyun fc-open PUT /2021-04-06/services/testServiceName --body "{\"description\":\"update service\"}"
// 查询服务列表
aliyun fc-open GET /2021-04-06/services
// 删除服务
aliyun fc-open DELETE /2021-04-06/services/testServiceName
函数调用示例
// serviceName: testServiceName
// functionName: testFunctionName
// 创建函数:请将代码包预先上传到OSS中,并在Body中配置OSS Bucket和Object
aliyun fc-open POST /2021-04-06/services/testServiceName/functions --body "{\"functionName\":\"testFunctionName\",\"runtime\":\"python3\",\"handler\":\"index.handler\",\"code\":{\"ossBucketName\":\"testBucket\",\"ossObjectName\":\"code.zip\"}}"
// 查询指定的函数
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName
// 获取函数代码包
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/code
// 更新函数
aliyun fc-open PUT /2021-04-06/services/testServiceName/functions/testFunctionName --body "{\"description\":\"update function\"}"
// 同步调用函数
aliyun fc-open POST /2021-04-06/services/testServiceName/functions/testFunctionName/invocations
// 异步调用函数
aliyun fc-open POST /2021-04-06/services/testServiceName/functions/testFunctionName/invocations --header x-fc-invocation-type=Async
// 查询函数列表
aliyun fc-open GET /2021-04-06/services/testServiceName/functions
// 删除函数
aliyun fc-open DELETE /2021-04-06/services/testServiceName/functions/testFunctionName
版本和别名调用示例
// serviceName: testServiceName
// aliasName: testAliasName
// 发布版本
aliyun fc-open POST /2021-04-06/services/testServiceName/versions --body "{\"description\":\"publish new version\"}"
// 查询版本列表
aliyun fc-open GET /2021-04-06/services/testServiceName/versions
// 删除版本
aliyun fc-open DELETE /2021-04-06/services/testServiceName/versions/1
// 创建别名
aliyun fc-open POST /2021-04-06/services/testServiceName/aliases --body "{\"aliasName\":\"testAliasName\",\"versionId\":\"1\"}"
// 查询指定的别名
aliyun fc-open GET /2021-04-06/services/testServiceName/aliases/testAliasName
// 查询别名列表
aliyun fc-open GET /2021-04-06/services/testServiceName/aliases
// 更新别名
aliyun fc-open PUT /2021-04-06/services/testServiceName/aliases/testAliasName --body "{\"description\":\"update alias\"}"
// 删除别名
aliyun fc-open DELETE /2021-04-06/services/testServiceName/aliases/testAliasName
预留模式调用示例
// serviceName: testServiceName
// functionName: testFunctionName
// aliasName: testAliasName
// 配置预留模式
aliyun fc-open PUT /2021-04-06/services/testServiceName/functions/testFunctionName/provision-config\?qualifier=testAliasName --body "{\"target\":1}"
// 查询指定的预留配置
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/provision-config\?qualifier=testAliasName
// 查询预留配置列表
aliyun fc-open GET /2021-04-06/provision-configs
按量模式调用示例
// serviceName: testServiceName
// functionName: testFunctionName
// aliasName: testAliasName
// 配置按量模式
aliyun fc-open PUT /2021-04-06/services/testServiceName/functions/testFunctionName/on-demand-config\?qualifier=testAliasName --body "{\"maximumInstanceCount\":10}"
// 查询指定的按量配置
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/on-demand-config\?qualifier=testAliasName
// 查询按量配置列表
aliyun fc-open GET /2021-04-06/on-demand-configs
// 删除按量配置
aliyun fc-open DELETE /2021-04-06/services/testServiceName/functions/testFunctionName/on-demand-config\?qualifier=testAliasName
触发器调用示例
// serviceName: testServiceName
// functionName: testFunctionName
// triggerName: testTriggerName
// 创建触发器:示例为定时触发器
aliyun fc-open POST /2021-04-06/services/testServiceName/functions/testFunctionName/triggers --body "{\"triggerConfig\": \"{\\\"cronExpression\\\":\\\"@every 1m\\\"}\", \"triggerName\": \"TestTriggerName\", \"triggerType\": \"timer\" }"
// 查询指定的触发器
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/triggers/testTriggerName
// 更新触发器
aliyun fc-open PUT /2021-04-06/services/testServiceName/functions/testFunctionName/triggers/testTriggerName --body "{\"triggerConfig\": \"{\\\"cronExpression\\\":\\\"@every 1m\\\"}\", \"triggerName\": \"TestTriggerName\", \"triggerType\": \"timer\" }"
// 查询触发器列表
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/triggers
// 删除触发器
aliyun fc-open DELETE /2021-04-06/services/testServiceName/functions/testFunctionName/triggers/testTriggerName
异步调用配置示例
// serviceName: testServiceName
// functionName: testFunctionName
// 配置函数异步调用
aliyun fc-open PUT /2021-04-06/services/testServiceName/functions/testFunctionName/async-invoke-config --body "{\"maxAsyncRetryAttempts\":2}"
// 查询函数异步调用配置列表
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/async-invoke-configs
// 查询指定的函数异步调用配置
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/async-invoke-config
// 删除函数异步调用配置
aliyun fc-open DELETE /2021-04-06/services/testServiceName/functions/testFunctionName/async-invoke-config
// 查询指定的异步任务
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/stateful-async-invocations/invokeID
// 查询异步任务列表
aliyun fc-open GET /2021-04-06/services/testServiceName/functions/testFunctionName/stateful-async-invocations
更多参数信息
如需了解参数详细信息,请参见API参考。