0

我在无服务器中有几个 AWS Lambda 函数,发现我一遍又一遍地编写相同的 sendEmail 函数。只需设置客户端并通过一些小的调整来编写 SES 响应。我决定最好将其抽象为一个由其他人调用的函数。我的文件夹结构类似于:

Serverless
-----> Commons
-----------> sendEmail.py
-----> AlarmsManager
---------> Alarm1.py
---------> Alarm2.py 
---------> serverless.yml
-----> BackupManager
---------> Backup1.py
---------> Backup2.py 
---------> serverless.yml

我的问题是,如何从其他部署中调用此电子邮件功能?是否像在调用函数的 serverless.yml 文件中包含完全限定的路径一样简单(该文件已经具有适当的 SES IAM 权限),还是需要它自己的 serverless.yml 文件和触发器而不是事件时间表? 如果它属于自己的部署,我什至可以从其他功能中使用它吗?显然,我更喜欢前者,但我对它们应该如何组合在一起感到困惑。

4

1 回答 1

0

一个选项是将所有函数打包在一起(即serverless.yml仅在根目录中使用文件)并使用完整路径声明函数,例如

functions:
  alarm1:
    handler: AlarmsManager/Alarm1.handler
    ...
  alarm2:
    handler: AlarmsManager/Alarm2.handler
    ...
  backup1:
    handler: BackupManager/Backup1.handler
    ...

这将创建一个独特的存档,其中所有目录结构都从根目录开始。此时,您可以Commons通过相对路径访问您的源文件。

于 2016-09-28T08:19:51.290 回答