`node-lambda`로 소박하게 Lambda를 사용해보십시오.
node-lambda에서 소박하게 Lambda를 사용해보십시오.
개요
AWS Lambda를 사용하여 무언가를하고 싶다면 다음 중 하나를 사용하는 것이 현기증입니까?
Apex 추가 사항: Apex는 개발을 중단한 것 같습니다.
그런 시대입니다만 node-lambda 의 소개를 합니다
이름대로 AWS Lmabda를 Node.js에서 사용할 때 사용합니다. (Node.js 이외의 언어에는 대응하지 않습니다)
소박한 툴로 할 수 있는 것은 적습니다만, 손쉽게 Lambda를 사용해 보는 분에는 좋은 툴이 아닐까 생각합니다
install
% npm i -g node-lambda
global에 install한 것으로 이야기를 진행
초기화
적절한 작업 디렉토리를 만들고 거기로 이동 한 후
setup
를 실행하십시오.% node-lambda setup
Running setup.
/path/.env file successfully created
/path/event.json file successfully created
/path/deploy.env file successfully created
/path/context.json file successfully created
/path/event_sources.json file successfully created
Setup done.
Edit the .env, deploy.env, context.json, event_sources.json and event.json files as needed.%
node-lambda
이(가) 사용하는 파일이 모리모리 작성되었습니다.급하게 사용하는 것은
event.json
와 .env
.env
deploy.env
event_sources.json
event.json
context.json
Lambda의 핸들러 예
다음 파일을 예로 이동
index.js
exports.handler = async (event, context) => {
console.log('Running index.handler')
console.log('==================================')
console.log('event', event)
console.log('==================================')
console.log('Stopping index.handler')
return true
}
로컬에서 실행해보기
run
를 실행합니다.기본적으로
index.js
에 있는 handler
라는 함수를 실행합니다.% node-lambda run
Running index.handler
==================================
event { key: 'value', key2: 'value2', other_key: 'other_value' }
==================================
Stopping index.handler
Result:
true
위의 index.js 내용이 실행되었습니다.
인수의
event
에 값이 건너고 있는 것을 깨닫을까 생각합니다디폴트에서는
setup
로 작성된 event.json
를 인수의 event
에 건네줍니다setup
에서 생성되는 event.json
는 다음과 같습니다% cat ./event.json
{
"key": "value",
"key2": "value2",
"other_key": "other_value"
}
설정
로컬에서 동작을 확인할 수 있으면 Lambda에 배포합니다.
이를 위한 설정을
.env
로 설정합니다.~/.aws/credentials
에 액세스 키 등의 설정이 있으면 다음 설정 정도로 충분합니다.변수명으로부터 무엇의 설정인가는 상상할 수 있다고 생각하므로 자세한 것은 할애합니다
.env
AWS_ENVIRONMENT=development
AWS_ROLE_ARN=arn:aws:iam::xxx:role/test
AWS_REGION=us-east-1
AWS_FUNCTION_NAME=test-function
AWS_HANDLER=index.handler
AWS_MEMORY_SIZE=128
AWS_TIMEOUT=5
AWS_RUNTIME=nodejs8.10
deploy
deploy
에서 Lambda에 배포% node-lambda deploy
=> Moving files to temporary directory
=> Running npm install --production
=> Zipping deployment package
=> Zipping repo. This might take up to 30 seconds
=> Reading zip file to memory
=> Reading event source file to memory
=> Uploading zip file to AWS Lambda us-east-1 with parameters:
{ FunctionName: 'test-function-development',
Code:
{ ZipFile:
<Buffer xxx more bytes> },
Handler: 'index.handler',
Role: 'arn:aws:iam::xxx:role/test',
Runtime: 'nodejs8.10',
Description: '',
MemorySize: '128',
Timeout: '5',
Publish: false,
VpcConfig: { SubnetIds: [], SecurityGroupIds: [] },
Environment: { Variables: null },
KMSKeyArn: '',
DeadLetterConfig: { TargetArn: null },
TracingConfig: { Mode: null } }
=> Done uploading. Results follow:
{ FunctionName: 'test-function-development',
FunctionArn:
'arn:aws:lambda:us-east-1:xxx:function:test-function-development',
Runtime: 'nodejs8.10',
Role: 'arn:aws:iam::xxx:role/test',
Handler: 'index.handler',
CodeSize: n,
Description: '',
Timeout: 5,
MemorySize: 128,
LastModified: '2019-04-04T09:30:17.015+0000',
CodeSha256: 'zzz',
Version: '$LATEST',
VpcConfig: { SubnetIds: [], SecurityGroupIds: [], VpcId: '' },
KMSKeyArn: null,
TracingConfig: { Mode: 'PassThrough' },
MasterArn: null,
RevisionId: 'yyy' }
=> All tasks done. Results follow:
{}
이것으로 deploy가 완료되었습니다. (
index.js
를 변경한 후에도 다시 deploy
하면 Lambda 업데이트가 가능합니다)웹 콘솔에서 확인하면 다음과 같습니다.
Lambda invoke
소박한 도구 만 있고 Lambda를 invoke하는 기능은 제공되지 않습니다.
README에도 있는 거리
aws
명령으로 invoke하거나 웹 콘솔에서 실행하여 동작을 확인합시다.요약
소박한 도구
node-lambda
에서 AWS Lambda를 사용해 보았습니다.이마도키한 툴과 비교하면 뒤떨어지는 부분도 많습니다만, 내부에서 CloudFormation를 사용하고 있다고 하는 일 없이 간단하게 Lambda를 시작하기에는 충분하다고 생각합니다
또한 소박한 도구이므로 코드를 읽으면 간단하게 API를 사용하여 Lambda에 deploy하거나 트리거가되는 이벤트의 연결 방법 등이 이해하기 쉬울지도 모릅니다
Reference
이 문제에 관하여(`node-lambda`로 소박하게 Lambda를 사용해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/abetomo/items/e0d3e6d78bd0e8b64aae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)