我在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分钟将输出发送到主题。
--region
参数传递给命令:AWS_ACCESS_KEY=xUISTaZscgstTgsreTTS AWS_SECRET_KEY=8hsggTjakjst86AHGSR98agHHYI aws sns publish --topic-arn $topicARN --message-structure json --message "${json}" --region ap-south-1
。 - hjpotter92$json
有问题 :) - hjpotter92