作为我的shell脚本的一部分,我正在尝试在AWS Route53中创建记录集.但是,使用我的shell脚本中的aws cli中的变量来创建这些记录集,我在Shell脚本中导出的变量不会传递给aws cli命令.
AWS提供的AWS CLI命令:
$ aws route53 change-resource-record-sets --hosted-zone-id 1234567890ABC \
--change-batch file:///path/to/record.json
Run Code Online (Sandbox Code Playgroud)
为简单起见,我不想在我的计算机上创建单独的json文件,我想在shell脚本中包含所有命令和变量.
#!/bin/bash
export TARGET_ENVIRONMENT=uat
export BASE_ENVIRONMENT_DNS=abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com
# Creates route 53 records based on env name
aws route53 change-resource-record-sets --hosted-zone-id 1234567890ABC
--change-batch '{ "Comment": "Testing creating a record set",
"Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name":
"$(TARGET_ENVIRONMENT).company.com", "Type": "CNAME", "TTL":
120, "ResourceRecords": [ { "Value": "$(BASE_ENVIRONMENT_DNS)" } ] } } ] }'
Run Code Online (Sandbox Code Playgroud)
最后一个命令是在AWS Route53上创建一个记录集,如下所示:
$(TARGET_ENVIRONMENT).company.com
Run Code Online (Sandbox Code Playgroud)
与CNAME一样
$(BASE_ENVIRONMENT_DNS)
Run Code Online (Sandbox Code Playgroud)
而不是我想要的那样,这是:
uat.company.com
Run Code Online (Sandbox Code Playgroud)
使用CNAME:
abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com …Run Code Online (Sandbox Code Playgroud)