谷歌脚本和 AWS SDK
Googlescript and AWS SDK
我想通过 Google 脚本中的代码在 Google Sheet 中与 Amazon Web Services DynamoDB 进行交互。但是,我不知道如何集成 AWS SDK。我希望避免必须编写一个库来处理通过 AWS HTTP API 的集成,因为有 JavaScript 和 Java SDK 可用于 SDK。有帮助吗?
(我做了一些相当广泛的 Google 和 Stack Overflow 搜索。This 是我找到的最接近答案的东西,但那是 Google App引擎,而不是 Google Apps 脚本。)
谢谢!
我即将实现它,看起来最好的方法是使用 Lambda 函数通过 API 网关查询 DynamoDB。
如果你会 NodeJS,其实并不难。
我刚刚制作了一个功能,可以为您要发出的任何 api 请求执行基本身份验证。您可能仍然需要按顺序获得一些 headers,但它会为您完成大部分艰苦的工作。
例如:
function myFunction() {
AWS.init("MY_ACCESS_KEY", "MY_SECRET_KEY");
var instanceXML = AWS.request('ec2', 'us-east-1', 'DescribeInstances', {"Version":"2015-10-01"});
...
}
我把它和一些文档放在一个仓库中以供使用。这是 link:https://github.com/smithy545/aws-apps-scripts
如果其他人觉得这有用,请回复,上面的回复之一为我提供了一个很好的入门提示,但无法对其添加评论。
下面教程中的步骤介绍了如何设置 API Gateway、Lambda 和 DynamoDb。设置完成后,您可以直接使用 URLFetch in GAS 到您的 API 网关。
http://docs.aws.amazon.com/lambda/latest/dg/with-on-demand-https-example.html
AWS link 中的代码已完成,无需额外设置即可直接使用 URL Fetch。但是,您可能希望在 API 网关上启用安全性。
在天然气方面 -
var headers = {
"x-api-key" : AWS_KEY
};
var event = {};
event.operation = "create";
event.tableName = AWS_DB_NAME;
event.payload.Item = yourDataObjwithKey;
var options = {
"method":"POST",
"headers":headers,
"payload":JSON.stringify(event)
};
var url = AWS_GW;
var response = UrlFetchApp.fetch(url, options);
我最近在此处添加了我自己的“AWS via Google Apps Script”的衍生版本:https://github.com/neilobremski/gas/blob/main/GasAWS.js
此处的 JavaScript 代码更现代一些,专门使用了 Utilities available in Google Apps Script for the SHA-256 stuff rather than the abandoned (but excellent!) Crypto-JS 库。
用法相同除了我移动了region
参数并且有一个全局默认值。我这样做是因为资源通常位于同一区域并且重复指定它很痛苦。
我想通过 Google 脚本中的代码在 Google Sheet 中与 Amazon Web Services DynamoDB 进行交互。但是,我不知道如何集成 AWS SDK。我希望避免必须编写一个库来处理通过 AWS HTTP API 的集成,因为有 JavaScript 和 Java SDK 可用于 SDK。有帮助吗?
(我做了一些相当广泛的 Google 和 Stack Overflow 搜索。This 是我找到的最接近答案的东西,但那是 Google App引擎,而不是 Google Apps 脚本。)
谢谢!
我即将实现它,看起来最好的方法是使用 Lambda 函数通过 API 网关查询 DynamoDB。
如果你会 NodeJS,其实并不难。
我刚刚制作了一个功能,可以为您要发出的任何 api 请求执行基本身份验证。您可能仍然需要按顺序获得一些 headers,但它会为您完成大部分艰苦的工作。
例如:
function myFunction() {
AWS.init("MY_ACCESS_KEY", "MY_SECRET_KEY");
var instanceXML = AWS.request('ec2', 'us-east-1', 'DescribeInstances', {"Version":"2015-10-01"});
...
}
我把它和一些文档放在一个仓库中以供使用。这是 link:https://github.com/smithy545/aws-apps-scripts
如果其他人觉得这有用,请回复,上面的回复之一为我提供了一个很好的入门提示,但无法对其添加评论。
下面教程中的步骤介绍了如何设置 API Gateway、Lambda 和 DynamoDb。设置完成后,您可以直接使用 URLFetch in GAS 到您的 API 网关。
http://docs.aws.amazon.com/lambda/latest/dg/with-on-demand-https-example.html
AWS link 中的代码已完成,无需额外设置即可直接使用 URL Fetch。但是,您可能希望在 API 网关上启用安全性。
在天然气方面 -
var headers = {
"x-api-key" : AWS_KEY
};
var event = {};
event.operation = "create";
event.tableName = AWS_DB_NAME;
event.payload.Item = yourDataObjwithKey;
var options = {
"method":"POST",
"headers":headers,
"payload":JSON.stringify(event)
};
var url = AWS_GW;
var response = UrlFetchApp.fetch(url, options);
我最近在此处添加了我自己的“AWS via Google Apps Script”的衍生版本:https://github.com/neilobremski/gas/blob/main/GasAWS.js
此处的 JavaScript 代码更现代一些,专门使用了 Utilities available in Google Apps Script for the SHA-256 stuff rather than the abandoned (but excellent!) Crypto-JS 库。
用法相同除了我移动了region
参数并且有一个全局默认值。我这样做是因为资源通常位于同一区域并且重复指定它很痛苦。