跳至內容

如何使用 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"
            }
        ]
    }

    **注意:**將 your-regionyour-account-numberyour-topic-name 替換為您的變數。

  4. 在 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)
    
  5. 測試您的 Lambda 函式

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

相關資訊

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

AWS 官方已更新 1 年前