我写了一个类似于以下内容的bash脚本:Download an already uploaded Lambda function
对于通过SAM模板文件部署的所有lambda函数,一切都很好。但是,当我检索通过AWS的Web UI部署的lambda函数(应用程序)的部署包时,得到的只是该函数的部署包中的index.js文件。
无论如何,可以通过在Lambda管理控制台上通过操作>导出功能>下载AWS SAM文件选择给定的lambda应用程序的体系结构,以生成描述该lambda应用程序架构的SAM yaml文件。因此,应该有可能通过aws-cli来做到这一点,或者根本不可能吗?
答案 0 :(得分:0)
您可以使用awscli https://docs.aws.amazon.com/cli/latest/reference/lambda/get-function-configuration.html获得功能配置,并且响应将包含一个Code
部分,并带有一个指向功能包https://docs.aws.amazon.com/lambda/latest/dg/API_FunctionCodeLocation.html的链接
此外,您还可以使用CloudFormer https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cloudformer.html
从现有基础架构中创建CloudFormation堆栈。具有CloudFormation模板,您可以获得资源说明。 https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-resources.html以及指向S3上函数源代码的链接。
中了解更多答案 1 :(得分:0)
抱歉,这是一个提示,而不是完整的答案。应该有(但现在还没有)aws-cli以获取此SAM内容。浏览器中的URI被一些晦涩的网络调用所困扰,例如
https://us-west-2.console.aws.amazon.com/p/log/1/lambda/1/OP/&k0=feevc&m0=1&d0=%7B%22s_fid%22:%2233SNIPPEDC66-34SNIPPED7FE5B%22%7D&p0=exportSAM&cb=1595621538378&proxy-rid=7c6a6a31SNIPPEDf1a400b457cc
似乎没有简单的方法来构造URI来获取exportSAM
下载。
浏览器lambda.js
并没有太大帮助,例如
var A = Object(p.connect)((function(e) {
return {
blueprint: Object(v.b)(e).query.exportBp,
integrationConfigs: h.c.getNodes(e),
downloadMessages: h.c.getDownloadMessages(e),
isOpen: !!Object(v.b)(e).query.exportModal,
exporting: h.c.getExporting(e)
}
}
), (function(e) {
return {
downloadSam: function(t) {
return e((n = t,
{
type: b.f.EXPORT_BLUEPRINT_TO_FLOURISH,
blueprintName: n
}));
var n
},
close: function() {
return e(Object(m.c)({
query: {
exportModal: void 0,
exportBp: void 0
}
}, {
persistQuery: !0
}))
}
}
}
), (function(e, t, n) {
return S(S(S(S({}, n), e), t), {}, {
downloadSam: function() {
return t.downloadSam(e.blueprint)
}
})
}