1
我在AWS控制檯中創建了一個arn主題,還使用電子郵件創建了訂閱並確認訂閱。如何發送shell腳本(json)輸出到aws sns主題?
我有一個在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-1e9930q56789"
"operatingsystem": "rhel"
},
"JDK": "1.8.0_111"
}
但它要求提供AWS區域,如果提供的抱怨證書的有效性。有沒有一種方法來動態提供憑證,而不是設置shell從「.aws/config」中選擇?
我打算將它作爲cronjob運行,以便每20分鐘將輸出發送到主題。
感謝快速回復。我試過你的解決方案。它不再要求證書,但仍然抱怨地區。 '您必須指定一個區域。您也可以通過運行「aws configure」來配置您的區域。 我甚至試圖追加區域就像憑證,但它沒有奏效。 –
@KrishnaGhantaChowdary對於區域,您需要將'--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
WOW ...我做了一些跟蹤和錯誤..它只是工作..現在我得到一些錯誤消息: 當調用發佈操作時發生錯誤(InvalidParameter) :無效參數:消息結構 - 在JSON消息體中沒有默認條目 –