使用來自其他服務的事件叫用 Lambda AWS - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用來自其他服務的事件叫用 Lambda AWS

某些 AWS 服務可以使用 觸發程序 直接叫用 Lambda 函數。這些服務會將事件推送至 Lambda,並在發生指定事件時立即叫用 函數。觸發條件適用於離散事件和即時處理。當您使用 Lambda 主控台 建立觸發條件時,主控台會與對應的 AWS 服務互動,以設定該服務上的事件通知。觸發程序實際上是由產生事件的服務儲存和管理,而不是由 Lambda 儲存和管理。

這些事件是以 JSON 格式建構的資料。JSON 結構會因產生的服務與事件類型而有所不同,但都包含函數處理事件所需的資料。

函數可以有多個觸發條件。每個觸發條件皆做為獨立調用函數的用戶端,而 Lambda 傳遞給函數的每個事件只會包含來自一個觸發條件的資料。Lambda 將事件文件轉換為物件並將其傳遞給您的函數處理常式。

視服務而定,事件驅動調用可以是同步或非同步

  • 對於同步調用,產生事件的服務會等待來自您的函數回應。該服務定義函數需要在回應中傳回的資料。服務控制項錯誤策略,例如發生錯誤時是否重試。

  • 對於非同步調用,Lambda 會先將事件排入佇列,再將事件傳送至您的函數。當 Lambda 將事件排入佇列時,它會立即向產生事件的服務傳送成功回應。在函數處理事件後,Lambda 不會向事件產生服務傳回回應。

建立觸發程序

建立觸發程序的最簡單方法是使用 Lambda 主控台。當您使用主控台建立觸發條件時,Lambda 會自動將所需的許可新增至函數的資源型政策

使用 Lambda 主控台建立觸發程序
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選取您要為其建立觸發程序的函數。

  3. 函數概觀窗格中,選擇新增觸發條件

  4. 選取您要叫用函數 AWS 的服務。

  5. 填寫觸發組態窗格中的選項,然後選擇新增 。取決於 AWS 服務 您選擇調用函數的 ,觸發組態選項會有所不同。

下表列出可叫用 Lambda 函數的服務。

服務 調用的方法

Amazon Managed Streaming for Apache Kafka

事件來源映射

自我管理的 Apache Kafka

事件來源映射

Amazon API Gateway

事件驅動;同步調用

AWS CloudFormation

事件驅動;非同步調用

Amazon CloudWatch Logs

事件驅動;非同步調用

AWS CodeCommit

事件驅動;非同步調用

AWS CodePipeline

事件驅動;非同步調用

Amazon Cognito

事件驅動;同步調用

AWS Config

事件驅動;非同步調用

Amazon Connect

事件驅動;同步調用

Amazon DynamoDB

事件來源映射

Amazon Elastic File System

特殊整合

Elastic Load Balancing (Application Load Balancer)

事件驅動;同步調用

Amazon EventBridge (CloudWatch 事件)

事件驅動;非同步調用 (事件匯流排)、同步或非同步調用 (管道和排程)

AWS IoT

事件驅動;非同步調用

Amazon Kinesis

事件來源映射

Amazon Data Firehose

事件驅動;同步調用

Amazon Lex

事件驅動;同步調用

Amazon MQ

事件來源映射

Amazon Simple Email Service

事件驅動;非同步調用

Amazon Simple Notification Service

事件驅動;非同步調用

Amazon Simple Queue Service

事件來源映射

Amazon Simple Storage Service (Amazon S3)

事件驅動;非同步調用

Amazon Simple Storage Service 批次

事件驅動;同步調用

Secrets Manager

特殊整合

AWS Step Functions

事件驅動;同步或非同步調用

Amazon VPC Lattice

事件驅動;同步調用

AWS X-Ray

特殊整合