背景
通过调用函数的url,将参数传递给函数执行,函数里如何获取这个参数
过程
- 下一个简单的demo如下
参考这个链接https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0420.html写一个demo,这个是百度视频云获取token的过程,返回的是一个token。
import json
from hashlib import sha1
import hmac
import base64
import binascii
from optparse import OptionParser
def calculate_signature(app_key, app_id, ts, random_str, room_name, uid, expect_ts):
data = "ACS{}{}{}{}{}{}".format(app_id, ts, random_str, room_name, uid, expect_ts)
app_key = bytes(app_key, encoding='utf-8')
data = bytes(data, encoding='utf-8')
signature =hmac.new(app_key, data, sha1).digest()#.encode('base64').rstrip()
signature = binascii.b2a_hex(signature)
return signature
def calculate_token(version, signature, ts, random_str, expect_ts):
token ="{}{}{}{}{}".format(version, signature, ts, random_str, expect_ts)
return token
def handler (event, context):
rig=calculate_signature("57krhkd8qfuf222","appqk8fdr57iskp335","1553144847","dabdd97c","cc345","1006255","1731992174")
rig=rig.decode()
print("结果",rig)
res=dir(event)
print(res)
return {
"statusCode": 200,
"isBase64Encoded": False,
"body": calculate_token("004",rig,"1553144847","dabdd97c","1578380254"),
"body": event,
"headers": {
"Content-Type": "application/json"
}
}
- 在华为云中给这个函数配置一个触发器apig,配置后就有一个请求地址了,如
https://cccccccc.apig.cn-north-5.huaweicloudapis.com/my?my=6758
3.如何获取这个my的参数的值
其实这个参数就在even中,它是一个json格式数据,产品文档也有说明如下,
执行事件(event): 函数执行界面由用户输入的执行事件参数, 格式为JSON对象
因此,直接在函数中print这个even就可以了,安置好代码后,直接通过apig的地址请求访问 https://cccccccc.apig.cn-north-5.huaweicloudapis.com/my?my=6758,在返回结果的queryStringParameters字段中可以看到请求参数