如何在没有应用程序默认凭据或 Cloud SDK 的情况下向 Google Cloud API 进行身份验证?
How to authenticate to Google Cloud API without Application Default Credentials or Cloud SDK?
我正在尝试从 AWS Lambda 函数访问 Google 云 API,但我不知道如何进行身份验证。 Google 云文档 (https://cloud.google.com/docs/authentication) 中的身份验证指南要我下载凭据 JSON 文件并使用应用程序默认凭据,但任何使用过托管功能的人都知道,重点是你不需要管理服务器或运行时环境,所以 Lambda 没有给我在 运行 代码的环境中存储任意文件的能力。
我可以在本地使用 Cloud SDK 获取访问令牌,但它已过期,因此我无法在我的函数中将其用作永久解决方案。
有没有办法获得一个访问令牌,我可以在我的代码中无限期地使用它来调用 Google 云 API?还有其他解决办法吗?
我发现了如何对凭据进行硬编码而无需将它们保存在 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];
});
我正在尝试从 AWS Lambda 函数访问 Google 云 API,但我不知道如何进行身份验证。 Google 云文档 (https://cloud.google.com/docs/authentication) 中的身份验证指南要我下载凭据 JSON 文件并使用应用程序默认凭据,但任何使用过托管功能的人都知道,重点是你不需要管理服务器或运行时环境,所以 Lambda 没有给我在 运行 代码的环境中存储任意文件的能力。
我可以在本地使用 Cloud SDK 获取访问令牌,但它已过期,因此我无法在我的函数中将其用作永久解决方案。
有没有办法获得一个访问令牌,我可以在我的代码中无限期地使用它来调用 Google 云 API?还有其他解决办法吗?
我发现了如何对凭据进行硬编码而无需将它们保存在 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];
});