如何使用 AWS Lambda 脚本通过 Terraform 部署 AWS 基础设施

Posted

技术标签:

【中文标题】如何使用 AWS Lambda 脚本通过 Terraform 部署 AWS 基础设施【英文标题】:How can you use AWS Lambda scripts to deploy AWS Infrastructure with Terraform 【发布时间】:2021-10-25 11:14:43 【问题描述】:

我已经在 Terraform 中设置了整个 AWS 基础设施,并且一切正常。所以现在,我不想从运行 terraform apply 的本地机器上部署它,而是想用完全无服务器的 AWS Lambda 脚本部署我的基础设施。有没有人知道如何做到这一点或在哪里阅读这个概念?直到现在才在互联网上找到任何有用的东西。

我认为我的源代码可能位于 S3 存储桶上,Lambda 函数会抓取它,并在 terraform 中运行它,我猜是因为 terraform 是一个很小的程序,所以也设置在函数本身中。

【问题讨论】:

【参考方案1】:

我会尝试如下:

    创建一个lambda container image,其中将包含官方 terraform 二进制文件。可以说,实际的 lambda 函数代码将使用 python 的 python-terraform 包与二进制文件进行交互。或者直接使用subprocess.run 调用二进制文件。 设置具有创建资源所需的所有权限的 lambda 执行角色。 使用容器映像创建 lambda 函数。

我还没有亲自尝试过,但我认为这应该可行。

【讨论】:

谢谢,这听起来很有趣。我将针对这些目标进行进一步研究。 @Thanatos-Delta 没问题。如果答案有帮助,我们将不胜感激。 我什至没有意识到这个平台上有接受答案的可能性,哈哈。我有点新,谢谢。 @Thanatos-Delta 没问题,谢谢 :-)

以上是关于如何使用 AWS Lambda 脚本通过 Terraform 部署 AWS 基础设施的主要内容,如果未能解决你的问题,请参考以下文章

通过AWS lambda在EC2实例上执行python脚本

如何在 AWS Lambda 上创建 EC2 时将脚本传递给 UserData 字段?

如何在AWS Lambda函数中安装/使用ruby gems?

如何使用 AWS API 网关和 Lambda 通过 CORS?

如何通过忽略未使用的资源从 aws cli 创建 aws java lambda 函数?

如何在 Cloudformation 脚本执行期间将 Cognito UserPoolID、客户端密码传递给 AWS Lambda?