我想在销毁运行时从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:命令?
答案 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并可用?如果尚未安装,请按照您操作系统的安装说明进行操作。