javascript - 无法从 lambda 列出阶跃函数标签
问题描述
我浪费了几个小时试图找出stepfunctions.listTagsForResource(...)
从 AWS Lambda 集成编辑器调用它时为什么没有定义,如下所示:
const { tags } = await stepfunctions.listTagsForResource({
resourceArn: process.env.STATE_MACHINE_ARN
}).promise()
lambda.listTags(...)
但是,似乎可用。问一个(看似)简单的问题,我觉得真的很愚蠢:
如何使用 AWS 开发工具包访问 AWS Step Functions 资源标签?文档当然没有帮助。
编辑:值得注意的是,所有其他list
功能都按预期工作,listTagsForResource
是唯一未定义的功能。
解决方案
简短的回答:
可在内联 AWS Lambda 编辑器中使用的版本aws-sdk
通常已过时;当前版本没有定义该listTagsForResource
功能。
长答案:
现在,在内联编辑器中运行以下命令显示aws-sdk
版本为2.290.0
:
var AWS = require("aws-sdk")
exports.handler = async (event) => {
console.log(AWS.VERSION)
}
此时的最新版本(如您的文档链接中所示)是2.409.0
,它确实定义了listTagsForResource
函数。您可以在v2.409.0 源代码中确认这一点。
listTagsForResource
不幸的是,在v2.290.0中不可用,因此您将无法在 Lambda 内联编辑器中调用它。(似乎在v2.382.0的此提交中添加了该功能。)
仍然可以在 Lambda 中使用此功能,只是不需要通过时髦的内联编辑器——您必须构建Node 应用程序包并将其作为 Zip 文件部署到 Lambda。
所以,你的问题一点也不愚蠢。您遇到了一个令人沮丧的问题,该问题经常困扰想要在内联编辑器中快速尝试某些东西的人。
推荐阅读
- java - 为什么三元表达式在 if 语句工作正常时不更新值?
- google-cloud-platform - 如何安全地使用 Google Speech-to-Text API?
- php - 如何打印这个图案?嵌套循环不起作用
- java - 执行批处理不更新 SQL 表中的数据 -
- html - Thymeleaf:连接表达式
- ruby-on-rails - 带有 XML 正文的 HTTP 200 的 API 响应
- ruby - sinatra activerecord 在heroku 上找不到模型
- javascript - 使用过滤器按钮从黑白到彩色的组合图像
- c# - WinForms 项目中的“类型或命名空间报告不存在”
- arrays - 如何通过c中的函数修改具有可变大小的二维数组?