日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

輕量消息隊列(原 MNS)主題觸發(fā)器

輕量消息隊列(原 MNS)的主題(Topic)可以作為事件源通過事件總線EventBridge函數(shù)計算進行集成。通過輕量消息隊列(原 MNS)主題觸發(fā)器,當有新消息發(fā)送到您的輕量消息隊列(原 MNS)主題時,它會自動觸發(fā)與之關(guān)聯(lián)的函數(shù)執(zhí)行,從而您可以輕松地對傳入的消息進行自定義處理。

背景介紹

輕量消息隊列(原 MNS)是一種高效、可靠、安全、便捷、可彈性擴展的分布式消息服務。幫助應用開發(fā)者在其應用的分布式組件上自由地傳遞數(shù)據(jù)、通知消息,構(gòu)建松耦合系統(tǒng)。在輕量消息隊列(原 MNS)中,主題是發(fā)布消息的目的地。發(fā)布者可以通過PublishMessage接口向主題發(fā)布消息,主題的訂閱者接收該消息。接口信息,請參見PublishMessage

配置一個輕量消息隊列(原 MNS)主題觸發(fā)器,相當于將函數(shù)注冊為這個輕量消息隊列(原 MNS)主題的訂閱者,當發(fā)布者向輕量消息隊列(原 MNS)主題發(fā)布消息的時候,就會把消息內(nèi)容通知給函數(shù),即觸發(fā)函數(shù)執(zhí)行,同時消息內(nèi)容作為函數(shù)入口的event參數(shù)。具體信息,請參見基礎(chǔ)信息

輕量消息隊列(原 MNS)與函數(shù)計算集成有以下優(yōu)勢:

  • 可以實現(xiàn)對消息進行一些高階處理再發(fā)送郵件或者短信。

  • HTTP Endpoint不需要有自建的服務。

  • 支持豐富的自定義處理。例如,把消息發(fā)送給slack,或者對于特定的消息進行持久化存儲。

image

前提條件

注意事項

  • 輕量消息隊列(原 MNS)創(chuàng)建的主題和函數(shù)計算的函數(shù)部署在相同的地域。

  • 避免出現(xiàn)循環(huán)調(diào)用的情況。

    編寫函數(shù)時,注意不要出現(xiàn)以下邏輯:Topic A觸發(fā)函數(shù)B,函數(shù)B又發(fā)布新的消息到Topic A,從而造成函數(shù)無限循環(huán)調(diào)用。

步驟一:創(chuàng)建MNS主題觸發(fā)器

  1. 登錄函數(shù)計算控制臺,在左側(cè)導航欄,單擊服務及函數(shù)

  2. 在頂部菜單欄,選擇地域,然后在服務列表頁面,單擊目標服務操作列的函數(shù)管理
  3. 函數(shù)管理頁面,單擊目標函數(shù)名稱。

  4. 在函數(shù)詳情頁面,單擊觸發(fā)器管理頁簽,從版本或別名下拉列表選擇要創(chuàng)建觸發(fā)器的版本或別名,然后單擊創(chuàng)建觸發(fā)器

  5. 創(chuàng)建觸發(fā)器面板,填寫相關(guān)信息。然后單擊確定

    參數(shù)

    操作

    本文示例

    觸發(fā)器類型

    選擇輕量消息隊列(原 MNS) topic 觸發(fā)

    輕量消息隊列(原 MNS) topic觸發(fā)

    名稱

    填寫自定義的觸發(fā)器名稱。

    trigger-mns

    版本或別名

    默認值為LATEST,如果您需要創(chuàng)建其他版本或別名的觸發(fā)器,需先在函數(shù)詳情頁的右上角切換到該版本或別名。關(guān)于版本和別名的簡介,請參見管理版本管理別名

    LATEST

    MNS地域

    選擇Topic所在的地域。輕量消息隊列(原 MNS)主題和函數(shù)計算的函數(shù)要部署在相同的地域。

    西南1(成都)

    主題

    在列表中選擇已創(chuàng)建的Topic。

    Mytopic

    過濾標簽

    填寫消息過濾標簽。

    只有收到包含了此處設置的過濾標簽字符串的消息時,才會觸發(fā)函數(shù)執(zhí)行。

    tag

    Event格式

    選擇Event格式。取值:

    • STREAM

    • JSON

    JSON

    重試策略

    選擇重試策略。取值:

    • 退避重試

    • 指數(shù)衰減

    如何選擇重試策略,請參見NotifyStrategy

    退避重試

    角色名稱

    選擇AliyunMNSNotificationRole

    說明

    如果您第一次創(chuàng)建該類型的觸發(fā)器,則需要在單擊確定后,在彈出的對話框中選擇立即授權(quán)

    AliyunMNSNotificationRole

    創(chuàng)建完成后,在觸發(fā)器名稱列表中顯示已創(chuàng)建的觸發(fā)器。如需對創(chuàng)建的觸發(fā)器進行修改或刪除,具體操作,請參見觸發(fā)器管理

步驟二:配置函數(shù)的入口參數(shù)

  1. 在函數(shù)詳情頁面,單擊函數(shù)代碼頁簽,然后單擊測試函數(shù)右側(cè)xialatubiao圖標,從下拉列表中,選擇配置測試參數(shù)

  2. 配置測試參數(shù)面板,選擇創(chuàng)建新測試事件編輯已有測試事件頁簽,填寫事件名稱和事件內(nèi)容。然后單擊確定

    發(fā)布在輕量消息隊列(原 MNS)主題上的消息根據(jù)notifyContentFormat進行處理,即入口函數(shù)的event。更多信息,請參見NotifyContentFormat

    • 創(chuàng)建觸發(fā)器時,若event格式設置為STREAM

      • 當消息中不含消息屬性(MessageAttributes)時,event格式如下。

        說明

        當消息中不含消息屬性(MessageAttributes)時,event的內(nèi)容格式為JSON字符串。

        # 消息正文。
        'hello topic'
      • 當消息中含有消息屬性(MessageAttributes)時,event格式如下。

        說明

        event的內(nèi)容中包含MessageAttributes相關(guān)的鍵值對。更多信息,請參見PublishMessage

           {
                "body": "hello topic",
                "attrs": {
                    "Extend": "{\\"key\\":\\"value\\"}"
                }
            }                    
    • 創(chuàng)建觸發(fā)器時,若event格式設置為JSON

      • 當消息中不含消息屬性(MessageAttributes)時,event格式如下。

            {
                "TopicOwner": "118620210433****",
                "Message": "hello topic",
                "Subscriber": "118620210433****",
                "PublishTime": 1550216480040,
                "SubscriptionName": "test-fc-subscribe",
                "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
                "TopicName": "Mytopic",
                "MessageId": "2F5B3C082B923D4EAC694B76D928****"
            }        
                                    
      • 當消息中含有消息屬性(MessageAttributes)時,event格式如下。

        說明

        event的內(nèi)容中包含MessageAttributes相關(guān)的鍵值對。更多信息,請參見PublishMessage

            {
                "key": "value",
                "TopicOwner": "118620210433****",
                "Message": "hello topic",
                "Subscriber": "118620210433****",
                "PublishTime": 1550216302888,
                "SubscriptionName": "test-fc-subscribe",
                "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
                "TopicName": "Mytopic",
                "MessageId": "2F5B3C281B283D4EAC694B742528****"
            }
                                    

    event參數(shù)中不同屬性字段的解釋如下表所示。

    參數(shù)

    類型

    示例值

    描述

    key

    String

    value

    消息屬性相關(guān)的鍵值對。

    TopicOwner

    String

    118620210433****

    訂閱Topic的AccountId。

    Message

    String

    hello topic

    消息內(nèi)容。

    Subscriber

    String

    118620210433****

    用戶的AccountId。

    PublishTime

    Int

    1550216302888

    消息發(fā)布時間。

    SubscriptionName

    String

    test-fc-subscribe

    訂閱的名稱。

    MessageMD5

    String

    BA4BA9B48AC81F0F9C66F6C909C3****

    消息正文的MD5值。

    TopicName

    String

    Mytopic

    Topic名稱。

    MessageId

    String

    2F5B3C281B283D4EAC694B742528****

    消息的編號。

步驟三:編寫函數(shù)代碼并測試

完成創(chuàng)建輕量消息隊列(原 MNS)主題觸發(fā)器后,您可以開始編寫函數(shù)代碼并測試,以驗證代碼的正確性。

  1. 在函數(shù)詳情頁面,單擊函數(shù)代碼頁簽,在代碼編輯器中編寫代碼,然后單擊部署代碼

    本文以Python函數(shù)代碼為例。以下示例代碼可以作為輕量消息隊列(原 MNS)主題觸發(fā)器的函數(shù)模板。

    import json
    import logging
    
    def handler(event, context):
      logger = logging.getLogger()
      logger.info("mns_topic trigger event = {}".format(event))
      # 例如,將事件記錄到表格存儲。
      return "OK"                     
  2. 單擊函數(shù)代碼頁簽的測試函數(shù)

    執(zhí)行完成后,您可以在函數(shù)代碼頁簽的上方查看執(zhí)行結(jié)果。

更多信息

除了函數(shù)計算控制臺,您還可通過以下方式配置觸發(fā)器:

  • 通過Serverless Devs工具配置觸發(fā)器。更多操作,請參見Serverless Devs

  • 通過SDK配置觸發(fā)器。更多操作,請參見SDK列表

如需對創(chuàng)建的觸發(fā)器進行修改或刪除,具體操作,請參見觸發(fā)器管理