为什么我在本地执行配置器中找不到/ bin / sh:aws:命令?

时间:2020-05-17 18:23:21

标签: amazon-web-services aws-lambda terraform

我想在销毁运行时从terraform执行lambda调用。 terraform作业由Jenkins在远程服务器上运行。

根据this文档,我定义了以下预配器:

provisioner "local-exec" {
   when = destroy
   command = "aws lambda invoke --function-name ${var.lambda_name} --payload '{ \"someProperty\": \"someValue\" }' response.json"
}

lambda调用的命令语法根据AWS CLI Command Reference

但是,在运行Terraform时出现以下错误:

Error running command 'aws lambda invoke --function-name my-lambda-name --payload '{ "someProperty": "someValue" }' response.json': exit status 127. Output: /bin/sh: aws: command not found

为什么我会在本地执行配置器中找不到/ bin / sh:aws:命令?

1 个答案:

答案 0 :(得分:0)

local-exec在本地计算机上而不是资源上运行。因此,我想您会丢失计算机上的aws-cli。

命令json_file = open('path...') data = json.load(json_file) lista_json = [data['Username'], data['Email']] for item in data['Risks']: print("item= ", item) print("Name, ", data['Risks'][item]['Name']) print("Min, ", data['Risks'][item]['Min']) lista_json.append(data['Risks'][item]['Name']) lista_json.append(data['Risks'][item]['Min']) 将显示您是否在which aws中安装了aws-cli并可用?如果尚未安装,请按照您操作系统的安装说明进行操作。