一、API介绍
Google Cloud Function API,一个轻量级的服务,创建Function,可以触发各种微服务。可选择的Trigger Type触发方式包括:HTTPS,Cloud Pub/Sub, Cloud Storage, Cloud Firestore以及Other Trigger。
二、API使用说明
在常见的Trigger Type为HTTPS时,GCP会根据你设置的名字,生成一个URL链接。且有两种认证方式,如下:
如果选择“Allow unauthenticated invocations”,则类似于一个公开的网站,或公开的API接口;如果选择“Require authentication”,则访问的过程需要IAM的授权与认证。
2.1. Allow unauthenticated invocations
在选择这个后,生成的URL可以被任何人访问和调用。点击下一步后,默认的情况,Runtime(代码语言)为NodeJS,且会有个简单的NodeJS代码。
最后,点击部署,便可完成Function的创建。通过生成的URL可以访问查看结果。
2.2. Require authentication
而选择这个后,生成的URL需要IAM的授权与认证才可以被访问和调用。
在部署完成后,需要给具体的用户设置权限才可以访问和调用。在IAM中,需要分配 的Role为Cloud Functions Invoker。然后,可能GCP会显示,如果是2代的Function,用Cloud Run Invoker代替 Cloud Functions Invoker。然而,根据我们的尝试,当分配Run Invoker时,用户仍然不能访问和调用这个Function, 所以,建议分配Cloud Functions Invoker。
最后,我们用postman对Function发起GET请求,注意的时,这里要携带的Token是identity token,并不是access token。如果使用access token,依旧不能实现访问和调用,必须使用identity token,查看identity token的gcloud命令为:
gcloud auth print-identity-token