Logo
Section 1 / 3

用于数据转换的 Lambda 函数

学习如何创建一个用于塑造糖果的Lambda函数。

导入

用于数据转换的 Lambda 函数

学习如何创建一个用于塑造糖果的Lambda函数。

No configuration found for ID: 96a5e6b04819a4a1d66e1f5b0cdaecb2819885c1420dda2fe12cd17607b6a8c8

1... 2import { v4 as uuidv4 } from "uuid";
1enum SweetShape { 2 Square = "Square", 3 Circle = "Circle", 4 Triangle = "Triangle", 5} 6 7enum SweetName { 8 SweetiePie = "Sweetie Pie", 9 LollyPop = "Lolly Pop", 10 GummyBear = "Gummy Bear", 11 JellyBean = "Jelly Bean", 12 CandyCane = "Candy Cane", 13}
1interface SweetInput { 2 ingredient: string; 3 quantity: number; 4} 5 6interface SweetOutput { 7 name: SweetName; 8 shape: SweetShape; 9 quantity: number; 10}
1export const handler = async ( 2 event: SweetInput[] 3): Promise<APIGatewayProxyResult> => { 4 // 模拟成型延迟 5 await new Promise((resolve) => setTimeout(resolve, 5000)); 6 7 // 为批次生成 UUID 8 const batchId = uuidv4(); 9 10 // 假设成型总是成功 11 const shapedSweets: SweetOutput[] = event.map((sweet: SweetInput) => ({ 12 shape: 13 Object.values(SweetShape)[ 14 Math.floor(Math.random() * Object.values(SweetShape).length) 15 ], 16 name: Object.values(SweetName)[ 17 Math.floor(Math.random() * Object.values(SweetName).length) 18 ], 19 quantity: sweet.quantity, 20 })); 21 22 return { 23 statusCode: 200, 24 body: { 25 status: "success", 26 batchId, 27 shapedSweets, 28 }, 29 }; 30};
1import { APIGatewayProxyResult } from "aws-lambda"; 2import { v4 as uuidv4 } from "uuid"; 3 4interface SweetInput { 5 ingredient: string; 6 quantity: number; 7} 8 9interface SweetOutput { 10 name: SweetName; 11 shape: SweetShape; 12 quantity: number; 13} 14 15enum SweetShape { 16 Square = "Square", 17 Circle = "Circle", 18 Triangle = "Triangle", 19} 20 21enum SweetName { 22 SweetiePie = "Sweetie Pie", 23 LollyPop = "Lolly Pop", 24 GummyBear = "Gummy Bear", 25 JellyBean = "Jelly Bean", 26 CandyCane = "Candy Cane", 27} 28 29export const handler = async ( 30 event: SweetInput[] 31): Promise<APIGatewayProxyResult> => { 32 // 模拟成型延迟 33 await new Promise((resolve) => setTimeout(resolve, 5000)); 34 35 // 为批次生成 UUID 36 const batchId = uuidv4(); 37 38 // 假设成型总是成功 39 const shapedSweets: SweetOutput[] = event.map((sweet: SweetInput) => ({ 40 shape: 41 Object.values(SweetShape)[ 42 Math.floor(Math.random() * Object.values(SweetShape).length) 43 ], 44 name: Object.values(SweetName)[ 45 Math.floor(Math.random() * Object.values(SweetName).length) 46 ], 47 quantity: sweet.quantity, 48 })); 49 50 return { 51 statusCode: 200, 52 body: { 53 status: "success", 54 batchId, 55 shapedSweets, 56 }, 57 }; 58};

实战项目第三部分:混合阶段

向状态机添加形态调整步骤