![](/img/trans.png)
[英]AWS Lambda not updating using Terraform source_code_hash property
[英]Best way to use Git repository as an AWS Lambda source within Terraform?
我正在与 Terraform 一起使用 API 网关和 DynamoDB 配置 AWS Lambda,对于我使用私有存储库的基础设施和 Lambda 代码源,我使用不同的私有存储库。
经过研究,我已经找到了一种下载源代码以在 Terraform 中使用的方法:
locals {
package_url = "https://github.com/.../main.zip"
downloaded = "downloaded_package_${md5(local.package_url)}.zip"
lambda_src_path = "${path.module}/lambda"
}
resource "null_resource" "download_package" {
triggers = {
downloaded = local.downloaded
}
provisioner "local-exec" {
command = "curl -L -o ${local.downloaded} ${local.package_url}"
}
}
如果回购是公开的,这会很好用,否则解决方案将使用:
curl -H 'Authorization: token TOKEN' \
-H 'Accept: application/vnd.github.v3.raw' \
-O \
-L https://api.github.com/repos/owner/repo/contents/path
我想问一下实现该目标的最佳解决方案是什么,也许是使用 Terraform 存储库中的 .env 数据。
谢谢
不要将秘密存储在 .env 文件中,因为它们将成为回购协议的一部分并且有被泄露的风险。 你永远不应该在回购中存储秘密。 解决方案取决于您实际托管存储库的位置。 但是所有提供者都支持以一种或另一种方式存储秘密。
例如 github 有https://docs.github.com/en/actions/security-guides/encrypted-secrets
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.