NetlifyLambda関数のチュートリアル

Netlify Lambda関数を使用して、JAMstackサイトに動的処理を追加する方法

以前にNetlifyについて書いたNetlifyチュートリアル。私はこのブログをホストするためにそれを使用します、そしてそれは素晴らしいです。

I also use it to run other sites, and all run on Hugo - which makes my stack 100% JAMstack

JAMの優れた点は、すべてが静的な「ダム」サイトに限定されていないことです。必要に応じて動的な多くのことを実行できます。

その力のほとんどは次の形でもたらされますラムダ関数

サイトのJavaScript(またはプレーンHTMLフォーム)でURLエンドポイントを呼び出すことができます。このエンドポイントは、呼び出されると、事前に定義されたコードを実行します。さまざまなプロバイダーがさまざまな言語のサポートを提供しています。 Netlifyは現在Node.jsとGoをサポートしています。

このチュートリアルでは、Node.jsで記述されたラムダ関数に焦点を当てます。

Netlifyには、最大125.000の関数呼び出しと、毎月合計100時間の実行時間という、寛大な無料利用枠の制限があります。関数には128MBのメモリがあり、それぞれが最大10秒間実行できます。通常のニーズの場合、これで十分です。

内部的には、Netlifyはこの関数をAWS Lambda、AWSのすべての複雑さを抽象化します。

関数を作成するにはどうすればよいですか? JavaScriptファイルをにアップロードしますfunctionsサイトのフォルダ。

このファイルでは、次の名前のメソッドに従う必要がありますhandler

exports.handler = (event, context, callback) => {
  //functionality
}

AWS Lambdaに精通している場合は、関数コードに精通しているはずです。使用したことがない場合でも、心配はいりません。ハンドラーが受け取るパラメーターの概要は次のとおりです。

  • eventリクエストに関するデータを含むオブジェクトです
  • contextユーザー認証にIDを使用する場合のユーザー情報が含まれます
  • callback応答を作成するために使用できる関数です

私たちができる最も簡単なことは、肯定的な応答を返すことです。そのために、callback()方法:

exports.handler = (event, context, callback) => {
  callback(null, {
    statusCode: 200,
    body: 'No worries, all is working fine!'
  })
}

これをに保存しますfunctions/test.jsファイル。

それを機能させるためにあなたがする必要がある唯一のことは、の機能のためにフォルダを設定することですnetlify.tomlファイル:

[build]
functions = "./functions"

Try this. Create the file in an empty folder, push it to a GitHub repository and create a new Netlify site from that repo.

Once you do so, in the Settings -> Functions menu in Netlify a new menu will show up which shows the details of our functions usage:

The function, which was stored in the functions/test.js file, is accessible at https://YOURSITENAME.netlify.com/.netlify/functions/test.

To access the request parameters, use the event object:

  • event.path the request path
  • event.httpMethod the request HTTP method
  • event.headers the request headers
  • event.queryStringParameters the request query parameters
  • event.body the request body in JSON format

Before we used

callback(null, {
  statusCode: 200,
  body: 'No worries, all is working fine!'
})

to craft a response. You can also add a headers object which contains an associative array (object) with the header values.

This repository by Netlify https://github.com/netlify/netlify-functions-example contains a lot of samples for Netlify Lambda Functions.


More services tutorials: