使用Lambda函式與自定義使用者應用程式



我們可以使用AWS Lambda函式透過以下兩種方式處理使用者應用程式生成的事件:

  • 使用AWS控制檯
  • 使用AWS CLI

使用AWS控制檯

在AWS控制檯中,我們將處理事件和AWS Lambda。為此,請訪問AWS控制檯並建立一個Lambda函式。

Lambda Custom

接下來,讓我們新增AWS Lambda的程式碼:

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Hello => "+ event.name);
   console.log("Address =>"+ event.addr);
   callback(null, 'Hello '+event.name +" and address is "+ event.addr);
};

請注意,在上面的程式碼中,我們使用event列印姓名和地址。

事件的詳細資訊將使用如下建立的測試事件提供:

Configure Events

現在,儲存事件並進行測試。

Save Event

相應的日誌輸出如下所示:

Custom Output

使用AWS CLI

我們可以使用AWS CLI呼叫上述函式,如下所示:

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt

事件詳細資訊將提供給有效負載,輸出將儲存在 **C:\clioutput\outputfile.txt** 中,如下所示:

input.txt

{"name":"Roy Singh", "addr":"Mumbai"}

使用AWS CLI呼叫Lambda後,您可以看到輸出如下:

Custom Command Prompt

同樣,如果您想測試任何其他AWS服務的AWS Lambda,可以使用AWS控制檯和AWS CLI中的測試事件。下面顯示了SNS服務的示例事件:

{
   "Records": [{
      "EventVersion": "1.0",
      "EventSubscriptionArn": "arnid",
      "EventSource": "aws:sns",
      "Sns": {
         "SignatureVersion": "1",
         "Timestamp": "1970-01-01T00:00:00.000Z",
         "Signature": "EXAMPLE",
         "SigningCertUrl": "EXAMPLE",
         "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
         "Message": "Hello from SNS!",
         "MessageAttributes": {
            "Test": {
               "Type": "String",
               "Value": "TestString"
            },
            "TestBinary": {
               "Type": "Binary",
               "Value": "TestBinary"
            }
         },
         "Type": "Notification",
         "UnsubscribeUrl": "EXAMPLE",
         "TopicArn": "topicarn",
         "Subject": "TestInvoke"
      }
   }]
}

讓我們新增上面顯示的示例事件並對其進行測試,如下所示:

Configure Sample Event

在AWS Lambda中,程式碼將列印SNS訊息,如下例所示:

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log(event.Records[0].Sns.Message);
   callback(null, event.Records[0].Sns.Message);};

Sns Message

讓我們使用AWS CLI呼叫相同的函式。讓我們將事件儲存在檔案中,並使用顯示的命令將其用於有效負載:

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt

Payload Command
廣告