错误:参数后缺少换行符,│参数定义必须以换行符结尾

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

我正在运行一个 docker 容器来构建 python 包。我使用 null_resource 和

local-exec
来执行此操作,如下所示:

resource "null_resource" "install_dependencies" {
  provisioner "local-exec" {
    command = "docker run -v (dirname "{PWD}"):/var/task 'public.ecr.aws/sam/build-${local.python_runtime}' /bin/sh -c 'pip install -r ${var.package_requirements_path} -t ${var.lambda_function_source_directory};exit'"
  }

  triggers = {
    dependencies_versions = filemd5(var.package_requirements_path)
  }
}

但是,我得到

│ An argument definition must end with a newline.
我的问题是,这个错误是什么意思?

terraform terraform-provider-aws
2个回答
0
投票

我认为这是因为您正在使用双引号创建一个字符串,然后在其中使用双引号。

要解决此问题,请将字符串内使用的双引号更改为单引号,例如在您的情况下。

command = "docker run -v (dirname "{PWD}"):/var/task 'public.ecr.aws/sam/build-${local.python_runtime}' /bin/sh -c 'pip install -r ${var.package_requirements_path} -t ${var.lambda_function_source_directory};退出'"

可以改为

command = "docker run -v (dirname '{PWD}'):/var/task 'public.ecr.aws/sam/build-${local.python_runtime}' /bin/sh -c 'pip install -r ${var.package_requirements_path} -t ${var.lambda_function_source_directory};退出'"

所以“{PWD}”改为“{PWD}”

您还可以通过添加反斜杠来转义它,如下所示:

command = "docker run -v (dirname "{PWD}"):/var/task 'public.ecr.aws/sam/build-${local.python_runtime}' /bin/sh -c 'pip install -r ${var.package_requirements_path} -t ${var.lambda_function_source_directory};退出'"


-1
投票

对其进行格式化后修复。

fmt

我使用 PyCharm,因此我使用 IDE 运行格式化。

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