Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Lambda层能否在函数/处理程序不调用该层的情况下拦截Lambda函数处理程序?_Amazon Web Services_Aws Lambda_Aws Lambda Layers - Fatal编程技术网

Amazon web services AWS Lambda层能否在函数/处理程序不调用该层的情况下拦截Lambda函数处理程序?

Amazon web services AWS Lambda层能否在函数/处理程序不调用该层的情况下拦截Lambda函数处理程序?,amazon-web-services,aws-lambda,aws-lambda-layers,Amazon Web Services,Aws Lambda,Aws Lambda Layers,我正在研究AWS Lambda层的能力,并试图确认该层是否可以在Lambda函数没有任何知识/与该层交互的情况下添加行为 我从文档中了解到,层实际上是一个.zip文件,解包到Lambda实例,主要用于交付资源,而无需将这些资源直接打包到Lambda函数/处理程序中。例如,使用层部署运行时(可执行文件)或共享资源(如二进制依赖项)是有很好的文档记录的——在这两种情况下,函数本身调用或引用层内容 我的问题是,一个层是否可以完全独立地向Lambda函数添加行为。例如,假设我想要一个新的层,它只是呼应“

我正在研究AWS Lambda层的能力,并试图确认该层是否可以在Lambda函数没有任何知识/与该层交互的情况下添加行为

我从文档中了解到,层实际上是一个.zip文件,解包到Lambda实例,主要用于交付资源,而无需将这些资源直接打包到Lambda函数/处理程序中。例如,使用层部署运行时(可执行文件)或共享资源(如二进制依赖项)是有很好的文档记录的——在这两种情况下,函数本身调用或引用层内容

我的问题是,一个层是否可以完全独立地向Lambda函数添加行为。例如,假设我想要一个新的层,它只是呼应“Hello World”——是否可以将一个层部署到一个现有函数,而该函数不引用该层?

签出。它们提供了一种方法来执行您所描述的操作,并且它们被部署为层,但正是扩展方面允许与典型层中的依赖代码进行不同的交互。也看到

不是扩展的层本质上不是这样工作的。这是一个常见的编码概念,尤其是在web环境中,拥有一个模块管道,这些模块可以在传入请求上进行交互,并且可以在请求到达核心代码之前修改请求,甚至终止请求,但这不是层通常的工作方式

相反,层用于核心代码中的运行时依赖项。它们只是因为核心代码中的某些内容导入/引用了它们才发挥作用。如果没有这样的引用,代码就停留在那里,没有使用

“层”的名称可能会给人一种错误的印象,即这些是封装核心代码的代码模块,或者流在到达代码lambda函数代码之前通过这些层,但实际上是扩展方面赋予了它们您所要求的功能

提供了有用的视觉效果:

也看到


进一步研究后,我发现Lambda层确实可以修改Lambda函数的行为,而不需要函数与层资源进行任何交互

该层能够拦截运行时调用,AWS提供的运行时也提供了一些环境变量,这些变量可以设置为提供一些“挂钩”。这些能力在AWS标题为的文档中进行了描述


虽然这是可能的,但提供了更大的能力。截至目前,扩展正在预览中,但值得考虑探索。

如果函数没有任何对执行echo作业的脚本的引用,该echo作业是如何触发的?好吧,这就是我要问的。。。这种情况是否得到支持或可能(如果是,是否明智/可取)?例如,我想您可以用包装器替换运行时入口点。