AWS Lambda SNS 触发器事件类型?
AWS Lambda SNS trigger Event Type?
我从事无服务器开发已有一段时间,主要是 AWS,并且刚刚开始接触 SNS pub/sub 设计模式。我使用的是打字稿,类型支持非常好,但是我找不到从 SNS 或 S3 触发器进入 Lambda 的事件的正确类型。这些将使功能之间的接缝确实非常安全。目前我正在定义自己的接口,但这会让人厌烦。例如
interface IAWSSNSTriggerPayload {
Records: [
{
EventSource: string,
EventVersion: string,
EventSubscriptionArn: string,
Sns: {
Type: string,
MessageId: string,
TopicArn: string,
Subject: string,
Message: string,
Timestamp: string,
SignatureVersion: string,
Signature: string,
SigningCertUrl: string,
UnsubscribeUrl: string,
MessageAttributes: {},
}
}
]
}
export const handler = (event: IAWSSNSTriggerPayload, context, cb) => {
const response = {
statusCode: 200,
body: JSON.stringify({
message: 'Go Serverless Webpack (Typescript) v1.0! Your function executed successfully! And from the SNS',
input: event,
}),
};
console.log('SNS Received from Lambda Publisher!!!')
console.log(JSON.stringify(event.Records))
cb(null, response);
}
如果有人能指出正确的方向,我将不胜感激。
干杯。
您可以使用 @types/aws-lambda
中的 SNSEvent
。
请记住,AWS 本身不维护类型,因此在某些情况下它可能不是最新的。
我从事无服务器开发已有一段时间,主要是 AWS,并且刚刚开始接触 SNS pub/sub 设计模式。我使用的是打字稿,类型支持非常好,但是我找不到从 SNS 或 S3 触发器进入 Lambda 的事件的正确类型。这些将使功能之间的接缝确实非常安全。目前我正在定义自己的接口,但这会让人厌烦。例如
interface IAWSSNSTriggerPayload {
Records: [
{
EventSource: string,
EventVersion: string,
EventSubscriptionArn: string,
Sns: {
Type: string,
MessageId: string,
TopicArn: string,
Subject: string,
Message: string,
Timestamp: string,
SignatureVersion: string,
Signature: string,
SigningCertUrl: string,
UnsubscribeUrl: string,
MessageAttributes: {},
}
}
]
}
export const handler = (event: IAWSSNSTriggerPayload, context, cb) => {
const response = {
statusCode: 200,
body: JSON.stringify({
message: 'Go Serverless Webpack (Typescript) v1.0! Your function executed successfully! And from the SNS',
input: event,
}),
};
console.log('SNS Received from Lambda Publisher!!!')
console.log(JSON.stringify(event.Records))
cb(null, response);
}
如果有人能指出正确的方向,我将不胜感激。
干杯。
您可以使用 @types/aws-lambda
中的 SNSEvent
。
请记住,AWS 本身不维护类型,因此在某些情况下它可能不是最新的。