可以使用AWS Amplify中的ISR(Incremental Static Regeneration)来在后台生成页面。ISR可以让您在生成新页面时只重新构建必要的页面,而不是重新构建整个站点。这可以大大提高站点的构建速度和性能。
示例代码:
exports.handler = async (event, context) => {
// Generate new pages
// Update necessary pages only
// return success response
};
amplify function add
命令,添加 lambda 函数。amplify/backend/api/amplifyapi/schema.graphql
文件中添加定义一个查询,用于触发lambda函数生成页面的逻辑:type Mutation {
triggerSSGPageGeneration: String!
}
amplify/backend/api/amplifyapi/resolvers/Mutation.js
文件中添加resolver解析器用于将上面的查询连接到lambda函数。const AWS = require('aws-sdk');
exports.triggerSSGPageGeneration = async () => {
const lambda = new AWS.Lambda({ region: process.env.AWS_REGION });
const params = {
FunctionName: 'ssgPagesGenerator',
InvocationType: 'Event'
};
return lambda.invoke(params, (err, data) => {
if (err) {
console.log('Error trigger function: ', err);
} else {
console.log('Function invoked successfully! ');
}
}).promise();
};
现在,当您调用“triggerSSGPageGeneration”查询时,ISR将在后台生成新的页面。