【发布时间】:2016-11-15 18:48:05
【问题描述】:
我在 AWS 控制台中创建了一个 arn 主题,还使用电子邮件创建了订阅并确认了订阅。
我有一个在 AWS 中运行的 EC2 实例,我编写了一个小脚本来发送一些详细信息,例如实例类型、使用的操作系统、架构、安装的 JDK 并使用“printf”命令将其格式化为“json”。
我想将脚本的 json 输出发送到我创建的主题。该计划是在未来使这些东西自动化,但目前它只是一个测试目的。
我正在尝试的代码:
#/bin/bash
AWS_ACCESS_KEY=xUISTaZscgstTgsreTTS
AWS_SECRET_KEY=8hsggTjakjst86AHGSR98agHHYI
credentials="-I $AWS_ACCESS_KEY -S $AWS_SECRET_KEY"
topicARN=arn:aws:sns:eu-west-1:9876577867654:xyzsy-ex:9d18e516-25h3-81h1-n148-chqa712qi1p0
json="$(./temp.sh)"
aws sns publish --topic-arn $topicARN --message-structure json --message "${json}"
temp.sh 输出:
{
"component": {
"component": "xyz-name",
"comp_version": "03"
},
"Instance": {
"Instance_Type": "t2.small",
"Instance_ID": "i-1e993001234q56789"
"operatingsystem": "rhel"
},
"JDK": "1.8.0_111"
}
但它要求提供 AWS 区域,如果提供则抱怨凭证有效性。有没有办法动态提供凭据,而不是设置 shell 从“.aws/config”中选择?
我打算将它作为 cronjob 运行,以便每 20 分钟将输出发送到主题。
【问题讨论】:
标签: json shell amazon-web-services sh amazon-sns