如何在没有Application Default Credentials或Cloud SDK的情况下对Google Cloud API进行身份验证?

Moh*_*ine 11 amazon-web-services google-cloud-platform gcloud aws-lambda google-cloud-nl

我正在尝试从AWS Lambda函数访问Google Cloud API,但我不知道如何进行身份验证.Google云端文档(https://cloud.google.com/docs/authentication)中的身份验证指南要求我下载凭据JSON文件并使用应用程序默认凭据,但是任何使用过托管函数的人都已经知道了是您不需要管理服务器或运行时环境,因此Lambda不允许我在运行代码的环境中存储任意文件.

我可以在本地使用Cloud SDK来获取访问令牌,但它会过期,所以我不能在我的函数中使用它作为永久解决方案.

我是否有办法获得一个访问令牌,我可以无限期地在我的代码中使用它来调用Google Cloud API?还有其他解决方案吗?

Moh*_*ine 7

我发现如何硬编码凭证而无需将它们保存在JSON文件中.这是在这里的文件:

https://googlecloudplatform.github.io/google-cloud-node/#/docs/language/0.7.0/guides/authentication

下面是一个调用Language API的示例.

var language = require('@google-cloud/language')({
  projectId: '',
  credentials: {
      client_email: '',
      private_key: '',
  }
});

language.detectEntities('Axel Foley is from Detroit').then(function(data) {
  var entities = data[0];
  var apiResponse = data[1];
});
Run Code Online (Sandbox Code Playgroud)

  • 实际上对我有用的是将它添加到ImageAnnoatorClient.将其添加到视觉要求中说"需要不是一个功能":var vision = require('@ google-cloud/vision'); //创建客户端const client = new vision.ImageAnnotatorClient({projectId:config.projectId,credentials:{client_email:config.clientEmail,private_key:config.privateKey}}); (2认同)