terraform 导入后的 lambda 函数名称问题

问题描述 投票:0回答:1

我正在尝试将现有的 AWS Lambda 函数导入到我的 Terraform 状态中,但我遇到了函数名称的意外行为。 当我使用 AWS CLI 列出 Lambda 函数时,我看到正确的函数名称: 复制 lambda 列表函数

{
    "Functions": [
        {
            "FunctionName": "my-lambda-function",
            "FunctionArn": "arn:aws:lambda:eu-west-3:123456789012:function:my-lambda-function",
            ...
        }
    ]
}

但是,当我使用以下方法将此函数导入 Terraform 时:

terraform import aws_lambda_function.my_lambda_function arn:aws:lambda:eu-west-3:123456789012:function:my-lambda-function

然后使用 terraform show 检查状态,我看到 function_name 设置为完整的 ARN,而不仅仅是“my-lambda-function”:

resource "aws_lambda_function" "my_lambda_function" {
    function_name = "arn:aws:lambda:eu-west-3:123456789012:function:my-lambda-function"
    ...
}

这会导致问题,因为 Terraform 现在认为函数名称应该是完整的 ARN,这与 AWS 中的实际资源不匹配。 我的 Terraform 配置文件正确定义了函数名称:

resource "aws_lambda_function" "my_lambda_function" {
  function_name = "my-lambda-function"
  ...
}

如何解决此差异并让 Terraform 在导入后识别 Lambda 函数的正确短名称?

我从状态文件中删除了资源并再次导入,但同样的问题仍然存在

amazon-web-services aws-lambda lambda terraform terraform-import
1个回答
0
投票

从 terraform 状态中删除 lambda:

terraform state rm aws_lambda_function.my_lambda_function

手动导入 lambda 函数:

terraform import aws_lambda_function.my_lambda_function my-lambda-function

运行 terraform show:

terraform show

然后你就可以计划并申请了

© www.soinside.com 2019 - 2024. All rights reserved.