簡體   English   中英

無服務器部署多種功能

[英]Serverless deploying multiple functions

我最近更新了我的無服務器項目,我發現在最近的幾次更新中,很多事情都發生了變化。

https://serverless.com/

我不完全理解擁有與同一項目相關的多個 lambda 函數和 api 網關端點的正確方法是什么。 對於舊的無服務器,我將每個 lambda 和端點都作為一個完全獨立的函數,這對我來說效果很好。

我似乎不能再這樣做了,如果我嘗試我的第二個 lambda 函數覆蓋我的第一個,大概是因為我的“服務名稱”是相同的。 我的服務名稱是相同的,因為我希望 API Gateway 中的同一個 API 中的兩個其余端點。 由於無服務器根據服務名稱創建 API 名稱。

然后我嘗試將這兩個功能添加到同一個“服務”中。 這在大多數情況下有效,除了現在我需要將我所有功能的自定義角色聲明包含在同一個角色中(因為這個角色現在已鏈接到我的所有功能)。 有效地為每個單獨的功能提供比它應該擁有的更多的權限。 另一個問題是我針對不同功能的所有處理程序文件都被放入每個功能部署包中。

所以基本上,我不確定擁有與同一項目相關但功能獨立的多個功能的正確方法是什么。 以前有道理,現在沒有了。

如果有人可以給我一些指示,請

謝謝

我理解你的沮喪。 我也有同樣的感覺,直到我更深入地研究新版本並形成了更好的理解。 不過需要注意的一件事是,新版本還沒有完全完成。 因此,如果某些內容完全缺失,您可以提交問題並在 1.0 發布之前對其進行優先級排序。

您應該在serverless.ymlfunctions:部分下的同一服務下定義多個函數。 要單獨打包這些函數(排除其他函數的代碼),您必須在package:部分下individually: true設置individually: true 然后,您可以在根級別和函數級別使用包含和排除選項。 即將進行的更改將允許您在包含和排除選項中使用 glob 語法(例如 **/*-fn.js)。 您可以在https://serverless.com/framework/docs/guide/packaging/找到有關打包的更多信息。

不知道如何在同一個服務下為不同的功能使用不同的角色..你是怎么用0.5做的?

我也試圖為每個功能的單個 iam 角色找到解決方案。 我找不到方法來做到這一點,但是在我查看文檔時,我發現了一行: “即將為每個函數提供單獨的 IAM 角色支持。” 這個頁面上,所以至少我們知道他們正在努力。

無服務器的“IAM Roles Per Function”插件允許您完全按照它所說的去做:為每個函數指定角色。 您仍然可以使用提供者級別的角色:

默認情況下,函數級別iamRoleStatements會覆蓋提供程序級別定義。 也可以通過指定選項iamRoleStatementsInherit: true來繼承提供者級別的定義

編輯:您還可以在 provider 和 function level應用預定義的 AWS role

暫無
暫無

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

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