簡體   English   中英

S3 事件如何觸發 VPC 中的 Lambda 函數?

[英]How can an S3 event trigger a Lambda Function in a VPC?

我有一個查詢。 我試圖用谷歌搜索,但找不到特定於我的查詢的答案。

S3 是一項全球服務。 我們可以通過 Internet 或使用我們的專用網絡中的 VPC 端點訪問它。 我明白了。

如果 VPC 中存在 lambda 函數。 那么s3事件是如何觸發lambda函數的呢?

您必須區分 Lambda 服務、Lambda 函數和執行上下文。

Lambda 服務操作 Lambda 函數,Execution Context 是 Lambda 函數的一個實例。 只有執行上下文位於 VPC 中。 其余組件位於其外部。 Lambda 服務始終可以與任何特定 Lambda 函數的執行上下文通信,以將事件傳遞給它並監控執行。 它通過私有渠道而不是通過 VPC 來實現。

S3 也不是真正的全球服務。 存儲桶和 API 位於特定區域。 它有一個全局命名空間,這意味着存儲桶名稱必須是全局唯一的。 這意味着一些 API 會進行“全局檢查”,但是當 S3 起作用時,它會在一個區域內起作用。

讓我們討論一下 S3-Lambda 集成中發生的情況。 當存儲桶中發生事件(例如創建對象)時,S3 服務會檢查哪些端點對此事件感興趣。 如果要將事件發送到 Lambda 函數,它必須與存儲桶位於同一區域。 然后,S3 將聯系 Lambda 服務並告訴它使用此特定事件調用 Lambda 函數。 S3 不關心這里的結果。

這就是 Lambda 接管的地方。 該服務檢查是否允許 S3 調用相關函數。 如果是這種情況,它將檢查不忙的該功能的現有執行上下文。 一旦找到,它將事件發送到執行上下文,該執行上下文在 VPC 內部執行,並且可以訪問 VPC 中的資源。

假設一切順利,這就是它的結束方式,否則,Lambda 將在另一個執行上下文中重試該事件。

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM