如何配置IBM Cloud Functions使用API Key而非Bearer令牌进行认证?
如何配置IBM Cloud Functions使用API Key而非Bearer令牌进行认证?
我来帮你搞定这个问题!IBM Cloud Functions默认确实用Bearer令牌做认证,要换成API Key其实操作起来挺清晰的,刚好适合和Watson Assistant做外部集成,下面分两步来:
一、给你的函数配置API Key认证
- 首先得在IBM Cloud里创建一个服务ID(Service ID),给它分配
Cloud Functions Invoker的角色权限,确保它能调用你的函数 - 给这个服务ID生成专属的API Key
- 最后把API Key和你的函数绑定,用IBM Cloud CLI的话可以这么操作:
# 更新已有函数的认证配置 ibmcloud fn action update <你的函数名称> --web-secure <生成的API Key> # 如果是创建新函数时直接配置 ibmcloud fn action create <你的函数名称> <函数代码路径> --web-secure <生成的API Key>
二、用API Key正确调用函数
你之前尝试的curl命令差了点小细节:IBM Cloud Functions的API Key认证要求把密钥放在Authorization请求头里,格式是Authorization: apikey <你的API Key>,而不是单独的apikey头。正确的调用命令应该是这样的:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: apikey xxxx' <你的函数的访问URL>
这样调整之后,就能顺利用API Key调用函数了,Watson Assistant那边也很容易配置这个请求头,完美适配外部集成的需求~
备注:内容来源于stack exchange,提问作者cappelaere
相关产品推荐
相关产品推荐

