Packer 没有看到我的环境变量?

Packer doesn't see my environment variables?

我在我的环境中定义了 AWS_ACCESS_KEY 和 AWS_SECRET_KEY key/value 对(我在 运行 Packer 的同一终端上通过 env 命令看到它们) ,我希望 Packer 在构建脚本中使用它们。

我的 Packer 文件看起来像

{
  "variables" : {
    "aws_access_key" : "{{ env `AWS_ACCESS_KEY` }}",
    "aws_secret_key" : "{{ env `AWS_SECRET_KEY` }}",
    ...
  },
  ...
  "provisioners" : [
    {
      "type" : "shell",
      "environment_vars": "AWS_ACCESS_KEY={{ user `aws_access_key` }}",
      "environment_vars": "AWS_SECRET_KEY={{ user `aws_secret_key` }}",
      "execute_command": "{{.Vars}} sudo -E -S bash '{{.Path}}'",
      "script" : "./ecs_prepare_master.sh"
    }
  ]
}

ecs_prepare_master.sh 脚本有这些步骤,它们显示为空白。我什至尝试将 key/value 对与我的 packer build ... 命令行一起传递,但无济于事。

echo "access=$AWS_ACCESS_KEY"
echo "secret=AWS_SECRET_KEY"

缺少什么?

啊,多个环境变量的语法是

"environment_vars": [
    "AWS_ACCESS_KEY={{ user `aws_access_key` }}",
    "AWS_SECRET_KEY={{ user `aws_secret_key` }}"
]