본문 바로가기
개발노트

[supabase] Supabase edge functions 사용해보기

by SoonNote 2023. 11. 15.
반응형

supabase functions 란?

Supabase Edge Functions은 Supabase의 서버리스 함수 기능 중 하나로, 전 세계의 엣지 네트워크에 함수를 배포하는 기능다. 이를 통해 API 요청에 대한 응답 시간을 단축하고 사용자에게 더 빠른 서비스를 제공할 수 있다. Supabase의 관리 대시보드를 통해 간편하게 함수를 개발하고 배포할 수 있으며, 엣지 네트워크에 자동으로 배포된다. 이를 활용하여 Supabase의 다른 기능과 함께 효과적인 백엔드 서비스를 구축할 수 있다.

 

VSCODE사용 중

 

1. supabase 설치

pnpm install supabase --save-dev

 

 

2. supabase 로그인

supabase login

access token을 입력해달라고 나오는데 supabse  dashboard > access tokens에서 Generate new token으로 발급해준다.

발급받은 Key로 로그인을 한다.

 

 

3. supabase 파일 만들기

supabase functions new test2

 

 

명령어를 통하여 test2를 생성하였다.

 

 

4. 배포

index.ts에 테스트코드를 넣는다.

 

import { serve } from "https://deno.land/std@0.168.0/http/server.ts"

serve(async (req: Request) => {

  if (req.method === 'GET') {
    const data = {
      message: 'GET request!!',
    };
    return new Response(JSON.stringify(data), {
      headers: { 'Content-Type': 'application/json' },
    });
  }

  else if (req.method === 'POST') {
    const body = await req.text();
    const data = {
      message: `POST request!! Body: ${body}`,
    };
    return new Response(JSON.stringify(data), {
      headers: { 'Content-Type': 'application/json' },
    });
  }
})

 

supabase functions deploy test2

명령어를 입력하면 project Reference ID를 입력해야한다.

다시 supabase로가서 사용중인 프로젝트 > project settings로 들어가 Reference ID를 입력해준다.

 

 

입력후 edge functions으로가면

 

이전에 만들었던 test와 새로만든 test2가 생긴걸 볼 수 있다.

 

curl로 요청을 보내면 Missing authorization header  라는 에러가 발생하는데  

 

해당목록을 눌러 상세페이지에서

 

사진과같은 Enforce JWT Verification을 비활성화 해주면 된다.

 

 

5. 테스트

 

get방식

post방식

 

 

get, post 둘다 잘 동작한다

반응형