如何使用 Lambda 函數將訊息發佈到 Amazon SNS 主題?

1 分的閱讀內容
0

我想從 AWS Lambda 函數向 Amazon Simple Notification Service (Amazon SNS) 主題發佈訊息。

解決方案

請依照下列步驟,使用 Lambda 函數將訊息傳送至 Amazon SNS 主題。

**注意:**本文中的範例使用 Python 執行期,但您可以使用偏好的 Lambda 執行期

1.    創建一個 Amazon SNS 主題

2.    創建一個 Lambda 函數

3.    在 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>"
    }
  ]
}

4.     選擇程式碼標籤。然後,在程式碼原始碼中,將下列發佈 Boto3 動作的程式碼複製並貼到程式碼編輯器中

import json
import boto3
client = boto3.client('sns')
def lambda_handler(event, context):
   response = client.publish(TopicArn='arn:aws:sns:<region>:<account-number>:<topic-name>',Message="Test message")
   print("Message published")
   return(response)

5.    測試您的 Lambda 函數

如果您的 Lambda 函數連接到Amazon Virtual Private Cloud (Amazon VPC),請執行以下操作之一:

如果您的 Lambda 函數需要網際網路存取權,請確定您授予網際網路存取權。如需詳細資訊,請參閱如何讓網際網路存取連線到 Amazon VPC 的 Lambda 函數?

-或-

對於私人網路,請在相同的 VPC 中為 Amazon SNS 建立 Amazon VPC 端點。如需詳細資訊,請參閱為 Amazon SNS 建立 Amazon VPC 端點

相關資訊

為什麼當我嘗試將 Lambda 函數訂閱到我的 Amazon SNS 主題時收到授權錯誤?

AWS 官方
AWS 官方已更新 2 年前