Simple Message Queue (eski adıyla MNS) kuyruk tetikleyicileri, bir kuyruğa mesaj geldiğinde Function Compute işlevinizi otomatik olarak çalıştırır. Tetikleyici EventBridge tarafından desteklenir: Function Compute konsolunda tetikleyiciyi oluşturduğunuzda, Function Compute gerekli olay akışlarını sizin adınıza EventBridge üzerinde oluşturur. Olay akışları hakkında daha fazla bilgi için bkz. Overview.
Tetikleyici etkinleştirildikten sonra kaynak kuyruğa eklenen her mesaj ilişkili işlevi çalıştırır. Mesajlar, toplu iş yapılandırmanıza bağlı olarak tek tek veya toplu halde teslim edilir. Bu desen, uçtan uca akış veri işlemesi için uygundur.
Kısıtlamalar
Simple Message Queue (eski adıyla MNS) kuyruğu ve Function Compute işlevi aynı bölgede bulunmalıdır.
Alibaba Cloud hesabınız EventBridge olay akışı sınırına ulaşırsa ek Simple Message Queue (eski adıyla MNS) kuyruk tetikleyicileri oluşturamazsınız. Geçerli sınırlar için bkz. Limits.
Önkoşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
EventBridge etkinleştirildi ve izinler verildi: Activate EventBridge and grant permissions to a RAM user
Bir Function Compute olay işlevi: Create an event function
Simple Message Queue (eski adıyla MNS) etkinleştirildi ve RAM kullanıcı erişimi sağlandı: Activate SMQ and authorize RAM users to access SMQ
Simple Message Queue (eski adıyla MNS) içinde oluşturulmuş bir kuyruk: Create a queue
Adım 1: Tetikleyici oluşturun
Function Compute konsoluna giriş yapın ve kullanmak istediğiniz işlevi tıklayın.
İşlev ayrıntıları sayfasında Configurations sekmesini tıklayın, ardından Triggers bölümüne gidin ve Create Trigger seçeneğini tıklayın.
-
Tetikleyici ayarlarını doldurun. Anahtar alan Invocation Method değeridir. Ayrıntılar için bkz. Synchronous invocation ve Asynchronous invocation.
Çağrı yöntemi Davranış Maksimum yük Ne zaman kullanılır Sync Invocation Function Compute, sonraki olayı veya toplu işi teslim etmeden önce işlevin yanıt dönmesini bekler 32 MB Sıra veya sıralı işleme önemlidir Async Invocation Function Compute olayı teslim eder ve hemen sonrakine geçer; işlev arka planda çalışır 128 KB Olayları hızlı bir şekilde tüketmek istediğiniz yüksek aktarım hızı senaryoları OK seçeneğini tıklayın.

Gönderme ayarları, yeniden deneme ilkeleri ve başarısız mektup kuyrukları gibi gelişmiş ayarlar için bkz. Advanced features of triggers.
Tetikleyici oluşturulduktan sonra Triggers sekmesinde görünür. Tetikleyiciyi değiştirmek veya silmek için bkz. Manage triggers.
Adım 2: (İsteğe bağlı) Test parametrelerini yapılandırın
İşlev, Simple Message Queue (eski adıyla MNS) olaylarını CloudEvents biçimindeki nesnelerden oluşan bir dizi olan event parametresi olarak alır. Gerçek bir mesaj göndermeden işlev kodunuzu test etmek için olayı manuel olarak simüle edin.
Code sekmesinde, Test Function öğesinin yanındaki
simgesini tıklayın ve Configure Test Parameters seçeneğini belirleyin.Configure Test Parameters panelinde Create New Test Event veya Modify Existing Test Event seçeneklerinden birini tıklayın, bir olay adı girin ve aşağıdaki olay içeriğini ekleyin, ardından OK seçeneğini tıklayın.
Örnek event yükü:
[
{
"id": "c2g71017-6f65-fhcf-a814-a396fc8d****",
"source": "MNS-Function-mnstrigger",
"specversion": "1.0",
"type": "mns:Queue:SendMessage",
"datacontenttype": "application/json; charset=utf-8",
"subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
"time": "2021-04-08T06:28:17.093Z",
"aliyunaccountid": "164901546557****",
"aliyunpublishtime": "2021-10-15T07:06:34.028Z",
"aliyunoriginalaccountid": "164901546557****",
"aliyuneventbusname": "MNS-Function-mnstrigger",
"aliyunregionid": "cn-chengdu",
"aliyunpublishaddr": "42.120.XX.XX",
"data": {
"requestId": "606EA3074344430D4C81****",
"messageId": "C6DB60D1574661357FA227277445****",
"messageBody": "TEST"
}
},
{
"id": "d2g71017-6f65-fhcf-a814-a396fc8d****",
"source": "MNS-Function-mnstrigger",
"specversion": "1.0",
"type": "mns:Queue:SendMessage",
"datacontenttype": "application/json; charset=utf-8",
"subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
"time": "2021-04-08T06:28:17.093Z",
"aliyunaccountid": "164901546557****",
"aliyunpublishtime": "2021-10-15T07:06:34.028Z",
"aliyunoriginalaccountid": "164901546557****",
"aliyuneventbusname": "MNS-Function-mnstrigger",
"aliyunregionid": "cn-chengdu",
"aliyunpublishaddr": "42.120.XX.XX",
"data": {
"requestId": "606EA3074344430D4C81****",
"messageId": "C6DB60D1574661357FA227277445****",
"messageBody": "TEST"
}
}
]
Olay alanı referansı
Dizideki her öğe CloudEvents specification standardını takip eder.
CloudEvents zarf alanları
| Alan | Tür | Örnek | Açıklama |
|---|---|---|---|
id |
String | c2g71017-6f65-fhcf-a814-a396fc8d**** |
Benzersiz olay kimliği |
source |
String | MNS-Function-mnstrigger |
Olay kaynağı tanımlayıcısı (olay veri yolu adı) |
type |
String | mns:Queue:SendMessage |
Olay türü |
subject |
String | acs:mns:cn-hangzhou:...:queues/zeus |
Kaynak kuyruğun ARN değeri |
time |
String | 2021-04-08T06:28:17.093Z |
Mesajın kuyruğa eklendiği saat (ISO 8601) |
specversion |
String | 1.0 |
CloudEvents teknik özellikler sürümü |
datacontenttype |
String | application/json; charset=utf-8 |
data alanının içerik türü |
aliyunregionid |
String | cn-chengdu |
Kuyruğun bulunduğu bölge |
aliyunaccountid |
String | 164901546557**** |
Alibaba Cloud hesap kimliği |
aliyunpublishtime |
String | 2021-10-15T07:06:34.028Z |
EventBridge'in olayı yayınladığı saat |
data alanları
| Alan | Tür | Örnek | Açıklama |
|---|---|---|---|
requestId |
String | 606EA3074344430D4C81**** |
Mesaj gönderme isteğinin benzersiz kimliği |
messageId |
String | C6DB60D1574661357FA227277445**** |
Mesajın benzersiz kimliği |
messageBody |
String | TEST |
Mesaj gövdesi içeriği |
Adım 3: İşlevi yazın ve test edin
Tetikleyici oluşturulduktan sonra işlev kodunuzu yazın, dağıtın ve ardından tetikleyicinin uçtan uca çalıştığını doğrulayın.
İşlev kodunu yazın ve dağıtın
Code sekmesinde işleyicinizi yazın ve Deploy Code seçeneğini tıklayın.
Aşağıdaki Node.js örneği, işlev kodunun nasıl yazılacağını gösterir:
'use strict';
/*
To enable the initializer feature
please implement the initializer function as below:
exports.initializer = (context, callback) => {
console.log('initializing');
callback(null, '');
};
*/
exports.handler = (event, context, callback) => {
console.log("event: %s", event);
// Parse and process event.
callback(null, 'return result');
}
İşlevi test edin
Aşağıdaki yöntemlerden birini kullanın:
Simüle edilmiş olay: 2. Adımda bir test olayı yapılandırdıysanız, Code sekmesinde Test Function seçeneğini tıklayın.
Gerçek mesaj: Simple Message Queue (eski adıyla MNS) konsoluna giriş yapın, kaynak kuyruğu seçin ve Send Message seçeneğini tıklayın.

İşlev çalıştıktan sonra çıktıyı Real-time Logs bölümünde görüntüleyin.

Sonraki adımlar
Tetikleyiciyi değiştirin veya silin: Manage triggers
Yeniden deneme ilkelerini ve başarısız mektup kuyruklarını yapılandırın: Advanced features of triggers