【发布时间】:2021-07-10 06:18:18
【问题描述】:
我有外部数据源,即调用 bash 脚本。
Main.tf :
resource "aws_ami_from_instance" "QA-ami" {
name = "QA-ami"
source_instance_id = "i-00f4*****75**a"
}
resource "aws_instance" "QA-server-via-ami" {
ami = aws_ami_from_instance.QA-ami.id
instance_type = var.qa_instance_type
subnet_id = var.qa_subnet_id
key_name = var.qa_key_name
}
data "external" "instance_status" { //line 38
program = ["bash", "${path.module}/check_instance_status.sh"]
query = {
id = aws_instance.QA-server-via-ami.id
}
}
output "test" {
value = data.external.instance_status.result
}
Bash 脚本:
#!/bin/bash
set -e
eval "$(jq -r '@sh "INSTANCE_ID=\(.id)"')"
sleep 600
status=$(aws ec2 describe-instance-status --instance-ids ${INSTANCE_ID} --output json --query
'InstanceStatuses[0]')
instance_status=$(echo ${status} | jq -r '.InstanceStatus.Details[0].Status')
system_status=$(echo ${status} | jq -r '.SystemStatus.Details[0].Status')
jq -n --arg inst_status "$instance_status" \
--arg sys_status "$system_status" \
'{"instance_status":$inst_status,"system_status":$sys_status}'
但是当我运行 terraform apply 时,我遇到了以下错误:
错误:执行“bash”失败:bash: ./check_instance_status.sh: 没有这样的文件或目录
在 main.tf 第 38 行,在数据“external”“instance_status”中: 38:数据“外部”“instance_status”{
我的 bash 脚本存在于 /check_instance_status.sh 中,但仍然出现错误。
请帮助我。
【问题讨论】:
标签: amazon-web-services terraform terraform-provider-aws