【发布时间】:2018-08-20 01:49:18
【问题描述】:
作为我的 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
为了简单起见,我不想在我的计算机上创建一个单独的 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)" } ] } } ] }'
最后一条命令在 AWS Route53 上创建一个记录集:
$(TARGET_ENVIRONMENT).company.com
以 CNAME 为
$(BASE_ENVIRONMENT_DNS)
而 不是 真的如我所愿,即:
uat.company.com
使用 CNAME:
abcd-External-9982627718-1916763929.us-west-1.elb.amazonaws.com
如何在脚本中将环境变量传递给我的 aws cli 命令?
我们将不胜感激。
谢谢!
【问题讨论】:
标签: shell amazon-web-services aws-cli amazon-route53 recordset