Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 获取有关已delpoyed AWSLambda函数的信息,以创建类似的部署模板_Amazon Web Services_Amazon S3_Aws Lambda_Aws Sam - Fatal编程技术网

Amazon web services 获取有关已delpoyed AWSLambda函数的信息,以创建类似的部署模板

Amazon web services 获取有关已delpoyed AWSLambda函数的信息,以创建类似的部署模板,amazon-web-services,amazon-s3,aws-lambda,aws-sam,Amazon Web Services,Amazon S3,Aws Lambda,Aws Sam,是否有可能获得我部署lambda函数所需的所有信息以及它所需的所有依赖项(权限、策略、调用事件文件),以便以后通过AWS SAM CLI(或任何类似的工具)从模板中自动部署它 有没有一个选项可以在不使用UI元素的情况下追溯lambda函数后来是如何设置的,以便能够以自动化的方式完成 我的计划是从AWS Lambda上已经部署的无服务器应用程序中收集无服务器应用程序模型。我不想在任何平台上部署一个功能,但想研究一下从一个提供商(这里是AWS)获取一个无服务器应用程序并以自动化方式将其迁移到另一个平

是否有可能获得我部署lambda函数所需的所有信息以及它所需的所有依赖项(权限、策略、调用事件文件),以便以后通过AWS SAM CLI(或任何类似的工具)从模板中自动部署它

有没有一个选项可以在不使用UI元素的情况下追溯lambda函数后来是如何设置的,以便能够以自动化的方式完成

我的计划是从AWS Lambda上已经部署的无服务器应用程序中收集无服务器应用程序模型。我不想在任何平台上部署一个功能,但想研究一下从一个提供商(这里是AWS)获取一个无服务器应用程序并以自动化方式将其迁移到另一个平台(比如Azure)的可能性。这正是计划。据我所知,所有现有框架都侧重于无服务器功能的提供商无关部署,但我希望将一个功能及其所有体系结构关系(例如,基于S3触发器的事件)迁移到另一个具有类似服务的提供商平台

TLDR:我想提取一个已经部署的Lambda函数,并获取与我在SAM CLI模板中传递的信息类似的信息,以便在AWS上初始部署一个无服务器函数


一个函数可以是的常见示例。

您是否尝试过
Terraform

Terraform
能够返回输出并将lambda和基础设施设置为代码,因此,您应该能够在yor cli中仅使用一个
Terraform apply
命令轻松部署另一个lambda

开始使用
terraform
,首先了解一下

创建
main.tf
variables.tf
output.tf
terraform.tfvars

使用git对terraform代码进行版本控制,在学习如何使用
terraform
之后,您应该学习如何构建一个平台,因为使用它是最强大的使用方式

您应该将地形代码添加到
main.tf
中,请记住,当您需要在
variables.tf
文件中使用新变量时,始终需要引用该变量。变量设置为
terraform.tfvars
output.tf
将具有使用terraform output命令返回值所需的属性引用,或者您可以在其他terraform配置中将输出用作变量

对于应用
策略
角色
,您可以在.tpl文件中创建它并构建
地形

lambda入门:
Terraform
Lambda文档:

您应该在
source\u code\u hash
参考中压缩您的代码并添加一个压缩文件名,然后使用此地形配置上载。您可以遵循terraform lambda文档的相同示例

将lambda部署为模块后,可以使用以下命令terraformoutput-module=

例如,
amazon web service
网络模块可以返回以下信息,但使用lambda输出检索某些数据信息的方式相同,如下所示:

application_subnet_cidrs = [
    172.26.36.0/24,
    172.26.38.0/24
]
application_subnets = [
    subnet-0cc58542e12abf485,
    subnet-0bab1bffc0af1b14e
]
persistence_subnet_cidrs = [
    172.26.39.0/24,
    172.26.40.0/24
]
persistence_subnets = [
    subnet-0db668829e4849612,
    subnet-031c4ff888b1e3d3b
]
public_subnets = [
    subnet-096db791faf60cc20,
    subnet-04a305177a6bac31c
]
vpc_id = vpc-0f2fdb66b7ae73e5c

我希望它能帮助你

@AlexHarvey,对不起,我把(任何类似的东西)理解为可以实现这一目标的任何工具。谢谢你的回答。我更新了这个问题来澄清我的意图,你可以考虑澄清这个问题。