gpt4 book ai didi

aws-lambda - 使用相同代码更新 Terraform lambda source_code_hash

转载 作者:行者123 更新时间:2023-12-02 04:49:26 30 4
gpt4 key购买 nike

我有一个使用 Terraform 成功部署的 AWS Lambda:

resource "aws_lambda_function" "lambda" {
filename = "dist/subscriber-lambda.zip"
function_name = "test_get-code"
role = <my_role>
handler = "main.handler"
timeout = 14
reserved_concurrent_executions = 50
memory_size = 128
runtime = "python3.6"
tags = <my map of tags>
source_code_hash = "${base64sha256(file("../modules/lambda/lambda-code/main.py"))}"
kms_key_arn = <my_kms_arn>
vpc_config {
subnet_ids = <my_list_of_private_subnets>
security_group_ids = <my_list_of_security_groups>
}
environment {
variables = {
environment = "dev"
}
}
}

现在,当我运行 terraform plan命令它说我的 lambda 资源需要更新,因为 source_code_hash已经改变,但我没有更新 lambda Python 代码库(它在同一个 repo 的文件夹中进行了版本控制):
  ~ module.app.module.lambda.aws_lambda_function.lambda
last_modified: "2018-10-05T07:10:35.323+0000" => <computed>
source_code_hash: "jd6U44lfe4124vR0VtyGiz45HFzDHCH7+yTBjvr400s=" => "JJIv/AQoPvpGIg01Ze/YRsteErqR0S6JsqKDNShz1w78"

我想这是因为它每次都会压缩我的 Python 源代码并且源代码发生变化。如果 Python 代码没有变化,我该如何避免这种情况?如果我不更改 Python 代码库,我的假设是否一致(我的意思是,为什么哈希会更改)?

最佳答案

这是因为您只是在对 main.py 进行哈希处理,但正在上传 dist/subscriber-lambda.zip。 Terraform 将哈希值与它在文件上传到 lambda 时计算的哈希值进行比较。由于散列是在两个不同的文件上完成的,因此最终会得到不同的散列。尝试在正在上传的完全相同的文件上运行哈希。

关于aws-lambda - 使用相同代码更新 Terraform lambda source_code_hash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52662244/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com