DynamoDB 문제에 액세스 할 때 이러한 AWS Lambda node.js 시간 초과 중 하나가 발생하지만 증상이 다르게 나타나고 찾은 해결책으로이 문제가 해결되지 않습니다.AWS Lambda node.js DynamoDB에 액세스 할 때 시간 초과
제한 시간은 5 분으로 설정되고 메모리는 128MB로 설정되지만 사용량은 30MB를 초과하지 않습니다. 역할에 대한
IAM 정책은 다음과 같습니다
- AWSLambdaFullAccess
- AmazonDynamoDBFullAccess
- AWSLambdaVPCAccessExecutionRole
기본 VPC 7 개 보안 그룹이와 함께 기본 보안 그룹을 포함
- 인보 싶게 : 모든 트래픽 모든 프로토콜, 모든 포트 범위,
- 아웃 바운드 : 모든 트래픽 모든 프로토콜, 모든 포트 범위, 여기
0.0.0.0/0은 코드입니다 :
var aws = require('aws-sdk');
exports.handler = function(event, context) {
var dynamo = new aws.DynamoDB();
dynamo.listTables(function(err, data) {
if (err) {
context.fail('Failed miserably:' + err.stack);
} else {
context.succeed('Function Finished! Data :' + data.TableNames);
}
});
};
그리고 결과 :
START RequestId: 5d2a0294-fb6d-11e6-989a-edaa5cb75cba Version: $LATEST
END RequestId: 5d2a0294-fb6d-11e6-989a-edaa5cb75cba
REPORT RequestId: 5d2a0294-fb6d-11e6-989a-edaa5cb75cba Duration: 300000.91 ms Billed Duration: 300000 ms Memory Size: 128 MB Max Memory Used: 21 MB
2017-02-25T15:21:21.778Z 5d2a0294-fb6d-11e6-989a-edaa5cb75cba Task timed out after 300.00 seconds
관련 node.js 버전 문제가 해결되어 here이 작동하지 않으며 "ReferenceError: https is not defined at exports.handler (/var/task/index.js:6:16)"
을 반환합니다. 또한 AWS에서는 0.10 버전이 사용되지 않습니다.
var aws = require('aws-sdk');
exports.handler = function(event, context) {
var dynamo = new aws.DynamoDB({
httpOptions: {
agent: new https.Agent({
rejectUnauthorized: true,
secureProtocol: "TLSv1_method",
ciphers: "ALL"
})
}
});
dynamo.listTables(function(err, data) {
if (err) {
context.fail('Failed miserably:' + err.stack);
} else {
context.succeed('Function Finished! Data :' + data.TableNames);
}
});
};
결과 :
START RequestId: 6dfd3db7-fae0-11e6-ba81-a52f5fc3c3eb Version: $LATEST
2017-02-24T22:27:31.010Z 6dfd3db7-fae0-11e6-ba81-a52f5fc3c3eb ReferenceError: https is not defined
at exports.handler (/var/task/index.js:6:16)
END RequestId: 6dfd3db7-fae0-11e6-ba81-a52f5fc3c3eb
REPORT RequestId: 6dfd3db7-fae0-11e6-ba81-a52f5fc3c3eb Duration: 81.00 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 26 MB
RequestId: 6dfd3db7-fae0-11e6-ba81-a52f5fc3c3eb Process exited before completing request
내가 AWS는 할 수 없을 것이라고 믿을 수 없어 5 분으로 설정 시간 제한으로
여기 은 HTTPS를 참조하여 코드입니다 할당 된 시간대에 테이블 목록을 반환하고 권한 문제는 일반적으로 로그에 표시됩니다.
감사합니다.
업데이트 : "No VPC"를 사용하면 VPC 문제 일 수 있으므로 올바른 완료를 허용합니다. START RequestId : 11930536-fb72-11e6-a386-25115dc82eee 버전 : $ LATEST END RequestId : 11930536-fb72-11e6-a386- 25115dc82eee 보고서 RequestID가 : 11,930,536 - fb72-11e6-a386-25115dc82eee \t 시간 : 1000 MS \t 메모리 크기 : 978.54 MS \t이 시간을 청구 128메가바이트 사용 \t 최대 메모리 : 28메가바이트 \t가 어떻게이 VPC의 잘못된 구성 문제를 해결할 수 있습니다? – prg281
분명히 VPC가 진짜 문제이지만'https is not defined '문제에 관해서는'var https = require ('https ')'를 파일 상단에 추가하면됩니다. – idbehold
이 Lambda 기능을 실행중인 VPC에 NAT 게이트웨이가 있습니까? 선택한 VPC 및 서브넷의 인스턴스가 개인 IP 만 가지고 실제로 인터넷에 연결할 수 있습니까? – jarmod