Netlify Lambda 函數教程

如何使用 Netlify Lambda 函数,为 JAMstack 网站添加动态处理功能 之前我在我的Netlify教程中写到了Netlify。我使用它来托管这个博客,而且效果非常好。 我还使用它来运行其他网站,而且所有的网站都是基于 Hugo 构建的 - 这使得我的堆栈100%基于JAMstack。 JAM 的有趣之处在于它不仅仅局限于静态和"哑"网站 - 你可以实现任何你想要的动态功能。 其中大部分的功能由“lambda 函数”实现。 你可以让你的网站上的 JavaScript (或纯 HTML 表单) 调用 URL 接口,当调用时执行一些预先确定的代码。不同的供应商支持不同的编程语言。Netlify 目前支持 Node.js 和 Go。 在本教程中,我们将专注于使用 Node.js 编写的 lambda 函数。 Netlify 给我们提供了一个慷慨的免费使用限额,每个月最多可以调用 125,000 次函数,并且总计运行时间为 100 小时。函数提供了 128MB 的内存,每个函数可以执行最长 10 秒。对于一般需要,这已经足够了。 在内部,Netlify 在 AWS Lambda 上运行该函数,并为你抽象了 AWS 的所有复杂性。 我们如何创建函数呢?我们将一个 JavaScript 文件上传到站点的 functions 文件夹中。 在该文件中,我们必须遵循一个名为 handler 的方法: exports.handler = (event, context, callback) => { //功能实现 } 如果您对 AWS Lambda 比较熟悉,这段代码会让您感到亲切。如果您从未使用过它,不用担心 - 这里是我们 handler 接收到的参数的简要概述:...

Python Lambda 函數

Lambda 函數(也稱為匿名函數)是沒有名字且只有一個表達式作為其函體的小型函數。 在 Python 中,它們使用 lambda 關鍵字來定義: lambda <參數> : <表達式> 函體必須是單個表達式。注意,這是表達式,而不是語句。 這個差異很重要。一個表達式返回一個值,而一個語句則不會。 最簡單的 lambda 函數示例是將數字的值加倍: lambda num : num * 2 Lambda 函數可以接受多個參數: lambda a, b : a * b Lambda 函數不能直接調用,但可以將它們分配給變量: multiply = lambda a, b : a * b print(multiply(2, 2)) # 4 Lambda 函數在與其他 Python 功能(例如 map()、filter() 和 reduce())結合使用時非常有用。

如何使用Python的map()

Python提供了三个非常有用的全局函数,我们可以用来处理集合:map()、filter()和reduce()。 提示:有时使用列表推导更加合适,而且通常被认为更加“Pythonic”。 map()用于对可迭代的项(如列表)中的每个项运行一个函数,并创建一个具有相同数量项的新列表,但每个项的值可以更改。 下面是一个使用map()将列表中的每个项加倍的示例: numbers = [1, 2, 3] def double(a): return a * 2 result = map(double, numbers) 当函数是一行代码时,通常使用lambda函数: numbers = [1, 2, 3] double = lambda a: a * 2 result = map(double, numbers) 甚至可以内联使用lambda函数: numbers = [1, 2, 3] result = map(lambda a: a * 2, numbers) 原始列表保持不变,map()返回一个具有更新值的新列表。 结果是一个map对象,一个可迭代对象,您需要将其转换为list才能打印其内容: print(list(result)) # [2, 4, 6]