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

时间:2017-01-10 11:19:00

标签: amazon-web-services google-cloud-platform aws-lambda gcloud google-cloud-nl

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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

以下是调用语言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];
});