서버리스 기능 소개
5651 단어 aws
주기적으로 나는 좋은 아이디어(또는 내가 생각하기에 좋은 아이디어)를 얻고 그것을 만들고 싶지만 아직 그것에 돈을 쓰고 싶지는 않습니다. 이 시나리오에서 서버리스 기능은 생명의 은인이었습니다. 대부분의 클라우드 공급자는 매달 일정량의 함수 호출을 무료로 허용할 것입니다. 즉, 사용하기 시작할 때까지 라이브 솔루션을 무료로 개발할 수 있습니다. 이것은 신생 기업에게 엄청난 것입니다!
청구서도 정말 훌륭합니다. 기능이 실행될 때만 비용을 지불합니다! 그냥 거기에 앉아 인스턴스 비용을 지불할 필요가 없습니다! 이것은 대기업에서 일하는 개발자에게는 큰 의미가 없을 수 있지만 비즈니스에서 기술을 채택하려는 경우 이러한 종류의 정보는 매우 중요합니다. 재정적 절감은 사업의 큰 부분을 차지합니다.
예를 들어 Google Cloud Platform , Amazon Web Services 및 Microsoft Azure 과 같은 서버리스 기능을 갖춘 클라우드 컴퓨팅 회사가 많이 있습니다.
하루 종일 서버리스에 대해 이야기하거나 서버를 구축하고 작동 방식을 보여줄 수 있습니다. 부담 없이 따라해 보세요. 이 예에서는 일반적으로 AWS라고도 하는 Amazon Web Services에서 Lambda Functions을 사용합니다.
간단한 Hello World 함수를 살펴보겠습니다.
const plainOldFunction = () => {
console.log('Hello World');
}
module.plainOldFunction = plainOldFunction;
호출 후...
const { plainOldFunction } = require("./functions");
plainOldFunction();
"Hello World"의 예상 출력이 표시됩니다.
다음은 클라우드에서 호출되는 함수로 AWS 핸들러를 사용하는 함수입니다. 이벤트 개체가 필요합니다(아래 참조 예). 이름이 "firstName"인 필드가 있는 이벤트 본문의 개체에 액세스할 수 있을 것으로 예상합니다.
const awsHandler = (event, context) => {
try {
console.log(`Hello ${event.body.firstName}`);
} catch (error) {
return console.error(error);
}
};
API 게이트웨이에서 Lambda 함수가 호출될 때 AWS 이벤트가 인수로 표시되는 모습입니다. api 게이트웨이에 대한 자세한 정보는 찾을 수 있습니다here.
{
"resource": "/",
"path": "/",
"httpMethod": "GET",
"requestContext": {
"resourcePath": "/",
"httpMethod": "GET",
"path": "/Prod/",
...
},
"headers": {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"accept-encoding": "gzip, deflate, br",
"Host": "70ixmpl4fl.execute-api.us-east-2.amazonaws.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-5e66d96f-7491f09xmpl79d18acf3d050",
...
},
"multiValueHeaders": {
"accept": [
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
],
"accept-encoding": [
"gzip, deflate, br"
],
...
},
"queryStringParameters": null,
"multiValueQueryStringParameters": null,
"pathParameters": null,
"stageVariables": null,
"body": {
"firstName: "Josh"
},
"isBase64Encoded": false
}
함수가 작동하는 것을 보여주기 위해 로컬에서 함수를 호출합니다(위의 예제 이벤트 포함). 또한 기능을 다루기 위해 단위 테스트를 추가하는 것이 좋습니다.
const event = require("./lambdaEvent.mock.json");
awsHandler(event, {});
"Hello {provided first name from event}"라는 예상 출력이 표시됩니다.
이것이 서버리스 기능의 세계를 이해하기를 바랍니다. 자세한 내용은 https://docs.aws.amazon.com/lambda/?id=docs_gateway에서 AWS Lambda 문서를 참조하는 것이 좋습니다. https://docs.aws.amazon.com/에서 사용 가능한 다양한 AWS 서비스에 대해 읽을 수도 있습니다.
질문이 있으시면 언제든지 Twitter 또는 Github를 통해 저에게 연락해 주세요.
행복한 코딩!
Josh Oppenheim은 Thisdot Labs의 수석 소프트웨어 엔지니어입니다.
트위터:
Github: Syntactual
이 Dot Labs는 기업이 디지털 전환 노력을 실현할 수 있도록 지원하는 데 중점을 둔 최신 웹 컨설팅 회사입니다. React, Angular, Vue, Web Components, GraphQL, Node, Bazel 또는 Polymer에 대한 전문적인 아키텍처 지침, 교육 또는 컨설팅을 받으려면 thisdotlabs.com을 방문하십시오.
이 Dot Media는 모두를 위한 포용적이고 교육적인 웹을 만드는 데 중점을 둡니다. 이벤트, 팟캐스트 및 무료 콘텐츠를 통해 최신 웹의 최신 정보를 알려드립니다. 자세한 내용은 thisdot.co 을 방문하십시오.
Reference
이 문제에 관하여(서버리스 기능 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/thisdotmedia/intro-to-serverless-functions-32g3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)