簡體   English   中英

使用 Git 存儲庫作為 Terraform 中的 AWS Lambda 源的最佳方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM