我想從 AWS Lambda 函式向 Amazon Simple Notification Service (Amazon SNS) 主題發佈訊息。
解決方法
請依照下列步驟,使用 Lambda 函式將訊息傳送至 Amazon SNS 主題。
**注意:**本文中的範例使用 Python 執行時期,但您也可以使用偏好的 Lambda 執行時期。
-
建立 Amazon SNS 主題。
-
建立 Lambda 函式。
-
在 Lambda 函數中,確定 Lambda 執行角色具有發佈 SNS 訊息的權限,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublishSNSMessage",
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:your-region:your-account-number:your-topic-name"
}
]
}
**注意:**將 your-region、your-account-number 和 your-topic-name 替換為您的變數。
-
在 Lambda Functions (函式) 頁面上,選擇 Code (程式碼) 索引標籤。然後,在程式碼原始碼中,將下列發佈 boto3 動作的程式碼複製並貼到程式碼編輯器中:
import json
import boto3
client = boto3.client('sns')
def lambda_handler(event, context):
response = client.publish(TopicArn='arn:aws:sns:your-region:account-number:topic-name',Message="Test message")
print("Message published")
return(response)
-
測試您的 Lambda 函式。
如果您的 Lambda 函式連接到Amazon Virtual Private Cloud (Amazon VPC),請執行以下操作之一:
相關資訊
為什麼當我嘗試將 Lambda 函數訂閱到我的 Amazon SNS 主題時收到授權錯誤?