0
我有一個AutoScale組,當CloudWatch警報關閉時,SQS隊列中有消息時啓動該組。將日誌文件複製到S3並通過用戶數據關閉AutoScale實例
但我不想創建另一個CloudWatch警報,以減少AutoScale組中的實例數,因爲在該實例中進行的任務可能比Alarm設置花費的時間更長。
所以我試圖做的方式是,一旦實例創建,我作爲「.sh」文件傳遞的用戶數據運行我想要的任務,等待它完成,將文件複製到S3並終止實例。
不幸的是,該文件確實進入S3,但它是空的,實例從不關閉。
我讀過這可能與像lifecycle-hooks這樣的事情有關,但我想知道是否有可能按照上面解釋的方式進行操作。
我的用戶數據如下:
#!/bin/bash
runuser -l ec2-user -c "cd /my-directory && nohup execute-my-task --trace > /logs-directory/my-log-file.log & "
PID=$!
wait $PID
runuser -l ec2-user -c "aws s3 cp /logs-directory/my-log-file.log s3://-my-logs-bucket/my-log-file.log"
PID2=$!
wait $PID2
runuser -l ec2-user -c "shutdown -h now"
感謝。