[英]CloudWatch alarm to SNS in different region
我正在嘗試從位於不同區域的CloudWatch警報通知SNS主題。 原因是我想要短信提醒,這在我的服務所在的地區是不可用的。 如果我輸入訂閱的ARN並在控制台中保存更改,我會收到“保存警報時出錯。請再試一次。” 再試一次沒有用。 在本地區域使用主題確實有效,但這不是我需要的。
有沒有辦法通知不同地區的主題? 如果沒有,還有另一種簡單的方法可以實現我的目標嗎?
沒有找到任何明確表示無法完成的文檔,但嘗試使用CLI在us-east-1中設置SNS作為eu-west-1中的警報動作,我得到了:
An error occurred (ValidationError) when calling the PutMetricAlarm operation: Invalid region us-east-1 specified. Only eu-west-1 is supported.
所以我認為它不受支持。
要獲得所需的功能,您可以使用AWS Lambda。 假設您的服務位於不支持SMS的區域,我將使用eu-central-1作為示例。
安裝程序將如下所示:
要添加到@Tartaglia的答案,這里是使用Python 3的這種lambda函數的來源,從各種來源拼湊而成,因為我沒有時間正確地執行它:
import json
import logging
import boto3
logger = logging.getLogger()
logger.setLevel(logging.INFO)
session = boto3.Session(region_name='eu-west-1') # EU (Ireland)
sns_client = session.client('sns')
def lambda_handler(event, context):
logger.info('Received event: %s', event)
for record in event['Records']:
sns_message = record['Sns']
response = sns_client.publish(
TopicArn='YOUR TOPIC ARN HERE',
Subject=sns_message.get('Subject', None),
Message=sns_message.get('Message', None))
logger.info('Publish response: %s', response)
return 'OK'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.