Netlify 및 Deepgram을 사용하는 서버의 로깅이 없습니다.
16543 단어 netlifytutorialserverlessjavascript
이 강좌에서는 Netlify 서버 없는 함수를 설정하여 Deepgram's Node.js SDK 성적표를 받습니다. 하나는 위탁 관리 파일이고, 하나는 로컬 파일입니다.서버 함수가 없으면 장시간 사용하는 스크립트에 적합하지 않기 때문에 이런 방법으로 실시간 복사를 하는 것을 권장하지 않습니다.
저희가 시작하기 전에.
필요한 사항:
npm init -y
를 실행하여 package.json
파일을 만들고 Deepgram 노드를 설치합니다.js SDK:npm install @deepgram/sdk
Netlify 프로젝트 설정
웹 dashboard에서 Netlify 프로젝트를 설정할 수 있지만, Netlify CLI가 우리의 기능을 테스트하기 위해 필요하기 때문에, 우리도 여기서 사용할 수 있습니다.프로젝트 디렉터리에서
netlify init
실행하고 알림이 나타날 때 '수동으로 사이트 만들기 및 배치' 를 선택하십시오.Netlify 웹 대시보드에 새 항목이 표시됩니다.
netlify open
를 사용하여 열 수 있습니다.너의 첫 번째 Netlify 함수
특정 디렉터리
/netlify/functions
에 논리를 넣으면 Netlify는 서버 기능이 없는 제로 설정을 제공합니다./netlify/functions/hello.js
에 새 파일을 만들고 다음 항목으로 채웁니다.exports.handler = async event => {
try {
// Any logic goes here, but we'll return a fixed response
return { statusCode: 200, body: JSON.stringify({ message: 'ok' }) }
} catch (err) {
return { statusCode: 500, body: String(err) }
}
}
기능 테스트
netlify dev
를 실행하고 로컬 서버가 시작될 때까지 기다립니다. 대개 http://localhost:8888입니다.다른 터미널을 열고 다음 명령을 실행하여 응답을 봅니다.curl http://localhost:8888/.netlify/functions/hello
이 일에 놀라지 마라.URL에서 함수를 포함하는 로컬 디렉토리는/netlify여야 합니다.당신의 터미널은 다음과 같아야 합니다.
Deepgram API 키 추가
대부분의 위탁 관리 공급자와 마찬가지로 Netlify는 민감한 키를 환경 변수로 설정하는 방법을 제공합니다.Netlify CLI는 웹 대시보드에서 로컬로 실행할 때 모든 변수 - 슈퍼 쿨을 주입합니다.
프로젝트 디렉토리에서
netlify open
를 사용하여 프로젝트 대시보드를 엽니다.Site settings > Build & deploy > Environment > Environment variables를 누르면 Deepgram Console 의 값을 사용하여 DEEPGRAM_API_KEY
라는 새 변수를 만듭니다.netlify dev
서버가 계속 실행 중이면 ctrl + c
를 사용하여 중지하고 재부팅하십시오.키가 주입되고 있는 것을 보실 수 있습니다. 이것은 키가 현재 사용할 수 있음을 의미합니다. process.env.DEEPGRAM_API_KEY
트랜잭션 관리 파일
functions
디렉토리에서 다음을 사용하여 만듭니다hosted.js
.const { Deepgram } = require('@deepgram/sdk')
const deepgram = new Deepgram(process.env.DEEPGRAM_API_KEY)
exports.handler = async event => {
try {
const { url } = JSON.parse(event.body)
const { results } = await deepgram.transcription.preRecorded({ url })
return { statusCode: 200, body: JSON.stringify(results) }
} catch (err) {
return { statusCode: 500, body: String(err) }
}
}
파일을 저장하면 새 URL을 즉시 사용할 수 있습니다.이 함수는 url
속성을 가진 데이터의 유효 부하가 필요합니다.테스트를 위해 cURL을 다시 사용할 수 있습니다.curl -X POST -H "Content-Type: application/json" -d '{"url": "https://static.deepgram.com/examples/nasa-spacewalk-interview.wav"}' http://localhost:8888/.netlify/functions/hosted
웹에서 함수 액세스
Netlify는 기본 응용 프로그램과 같은 영역에서 기능을 사용할 수 있도록 합니다.
/.netlify/functions
경로 아래에 있습니다.따라서 상대 URL을 지정하여 주 응용 프로그램에서 Netlify 함수를 호출할 수 있습니다.이것은 그것이 현지와 배치 후에 일할 것이라는 것을 의미한다.홈 디렉토리에
index.html
파일을 생성합니다.<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"></head>
<body>
<button>Transcribe from URL</button>
<script>
document.querySelector('button').addEventListener('click', () => {
const url = prompt('Please provide an audio file URL')
fetch('/.netlify/functions/hosted', {
method: 'POST',
body: JSON.stringify({ url })
}).then(r => r.json()).then(data => {
console.log(data)
})
})
</script>
</body>
</html>
브라우저에서 http://localhost:8888로 이동하여 버튼을 클릭하고 정적 파일 URL을 제공합니다https://static.deepgram.com/examples/nasa-spacewalk-interview.wav
.브라우저 콘솔을 열면 Deepgram에서 응답이 표시됩니다.로컬 파일 복사
새 함수 파일 만들기 -
file.js
:const { Deepgram } = require('@deepgram/sdk')
const deepgram = new Deepgram(process.env.DEEPGRAM_API_KEY)
exports.handler = async event => {
try {
const { results } = await deepgram.transcription.preRecorded({
buffer: Buffer.from(event.body, 'base64'),
mimetype: 'audio/wav'
})
return { statusCode: 200, body: JSON.stringify(results) }
} catch (err) {
return { statusCode: 500, body: String(err) }
}
}
<form>
의 <button>
아래에 index.html
를 추가합니다.<form enctype="multipart/form-data" action="/.netlify/functions/file" method="POST">
<input id="file" type="file" name="file" />
<input type="submit" value="POST to server" />
</form>
브라우저를 새로 고치고 파일을 업로드합니다. 브라우저에서 결과를 볼 수 있을 것입니다.페이지에서 결과를 처리하는 경우Sandra details how to submit a form using JavaScript here.배포 기능
준비됐나요?
netlify deploy
. 이렇게배치되면 Netlify 함수에 임의의 이름으로 접근할 수 있습니다.netlify.app/.netlify/functions/function name.웹 페이지가 같은 하위 영역에 서비스되기 때문에 수정되지 않을 것입니다.
프로젝트를 재구매를 통해 배치할 수 있도록 설정하면 Netlify는 GitHub 푸시 배치를 지원합니다.
마무리
Netlify는 서버 없는 배포를 단순화하지만, 이 가이드를 읽은 후 궁금한 사항이 있으면 도움을 드리겠습니다!우리한테 전화해.
Reference
이 문제에 관하여(Netlify 및 Deepgram을 사용하는 서버의 로깅이 없습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/deepgram/transcriptions-without-a-server-using-netlify-and-deepgram-3mi4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)