Amazon web services 在Terraform中使用外部数据源调用Bash脚本时出现问题

Amazon web services 在Terraform中使用外部数据源调用Bash脚本时出现问题,amazon-web-services,terraform,terraform-provider-aws,Amazon Web Services,Terraform,Terraform Provider Aws,我有一个外部数据源,即调用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-am

我有一个外部数据源,即调用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\u instance\u status.sh:没有这样的文件或目录

在main.tf第38行的数据“外部”“实例_状态”中: 38:数据“外部”“实例_状态”{

我的bash脚本出现在/check_instance_status.sh中,但仍有错误


请帮助我。

这可能只是一个路径问题,我假设这是在子模块中?然后像这样尝试
path.root
program=[“bash”,“${path.root}/check\u instance\u status.sh”


还要确保
check_instance_status.sh
可与
chmod+x check_instance_status.sh一起执行,并且它在命令行上正确运行。

直接在

program = ["bash", "/path/to/check_instance_status.sh"]

已尝试使用path.root,并且脚本具有可执行权限,但仍出现错误。