1

是否有可能获取部署 lambda 函数所需的所有信息及其所有所需的依赖项(权限、策略、调用事件文件),以便稍后通过 AWS SAM CLI(或类似的东西)从模板自动部署它?

是否有一个选项可以在不使用 UI 元素的情况下追溯 lambda 函数的设置方式,以便可以自动方式完成?

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

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

一种功能可能是通过 S3 存储桶创建缩略图的常见示例。

4

1 回答 1

1

你试过Terraform吗?

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

开始使用terraform,先了解一点terraform安装

创建一个main.tf,variables.tfoutput.tfterraform.tfvars

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

您应该将 terraform 代码添加到main.tf中,请记住,当您需要在variables.tf文件中使用新变量时,您总是需要引用一个新变量。变量设置为terraform.tfvarsoutput.tf将具有使用 terraform output 命令返回值所需的属性参考,或者您可以将输出用作另一个 terraform 配置中的变量。

对于应用PoliciesRoles,您可以在 .tpl 文件中创建它并构建terraform 模板函数

开始使用 lambda:

TerraformLambda 文档:https ://www.terraform.io/docs/providers/aws/r/lambda_function.html

您应该压缩您的代码并在参考中添加一个 zip 文件名source_code_hash,然后使用此 terraform 配置上传。您可以遵循相同的 terraform lambda 文档示例。

将 lambda 部署为模块后,您可以使用以下命令 terraform output -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

我希望它可以帮助你

于 2019-03-12T11:08:52.260 回答