{"id":4397,"date":"2026-03-27T10:29:08","date_gmt":"2026-03-27T02:29:08","guid":{"rendered":"https:\/\/aws-oncloudai.com\/?p=4397"},"modified":"2026-03-27T10:34:31","modified_gmt":"2026-03-27T02:34:31","slug":"aws-lambda-severless","status":"publish","type":"post","link":"https:\/\/aws-oncloudai.com\/zh_hk\/aws-lambda-severless\/","title":{"rendered":"AWS Lambda \u5b8c\u5168\u4f7f\u7528\u6307\u5357\uff1a\u5f9e\u96f6\u642d\u5efaServerless \u51fd\u6578\u904b\u7b97\u67b6\u69cb"},"content":{"rendered":"<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-4398\" src=\"http:\/\/aws-oncloudai.com\/wp-content\/uploads\/2026\/03\/98b1ea4d-c017-47bd-a9b2-403b536c9e82-1024x576.png\" alt=\"\" width=\"700\" height=\"394\" srcset=\"https:\/\/aws-oncloudai.com\/wp-content\/uploads\/2026\/03\/98b1ea4d-c017-47bd-a9b2-403b536c9e82-1024x576.png 1024w, https:\/\/aws-oncloudai.com\/wp-content\/uploads\/2026\/03\/98b1ea4d-c017-47bd-a9b2-403b536c9e82-300x169.png 300w, https:\/\/aws-oncloudai.com\/wp-content\/uploads\/2026\/03\/98b1ea4d-c017-47bd-a9b2-403b536c9e82-768x432.png 768w, https:\/\/aws-oncloudai.com\/wp-content\/uploads\/2026\/03\/98b1ea4d-c017-47bd-a9b2-403b536c9e82-1536x864.png 1536w, https:\/\/aws-oncloudai.com\/wp-content\/uploads\/2026\/03\/98b1ea4d-c017-47bd-a9b2-403b536c9e82-2048x1152.png 2048w, https:\/\/aws-oncloudai.com\/wp-content\/uploads\/2026\/03\/98b1ea4d-c017-47bd-a9b2-403b536c9e82-18x10.png 18w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<h2>AWS Lambda \u5b8c\u5168\u4f7f\u7528\u6307\u5357\uff1a\u5f9e\u96f6\u642d\u5efaServerless \u51fd\u6578\u904b\u7b97\u67b6\u69cb<\/h2>\n<blockquote><p>\u67d0\u51fa\u6d77SaaS \u516c\u53f8\u7684\u5f8c\u7aef\u5718\u968a\u66fe\u544a\u8a34\u6211\u5011\uff1a\u4ed6\u5011\u6bcf\u6708\u70ba\u4e00\u6279\u300d0 \u9ede\u52306 \u9ede\u5e7e\u4e4e\u7121\u8acb\u6c42\u300d\u7684API \u670d\u52d9\u652f\u4ed8\u56fa\u5b9a\u7684EC2 \u8cbb\u7528\u3002\u63db\u7b97\u4e0b\u4f86\uff0c\u9019\u4e9b\u4f3a\u670d\u5668\u6709\u6548\u5229\u7528\u7387\u4e0d\u523015%\uff0c\u537b\u4e00\u76f4\u71d2\u9322\u3002<\/p>\n<p>\u9077\u79fb\u5230AWS Lambda \u5f8c\uff0c<strong>\u540c\u6a23\u7684\u696d\u52d9\u908f\u8f2f\uff0c\u6bcf\u6708\u5e33\u55ae\u5f9e\u00a0<span class=\"katex\"><span class=\"katex-mathml\">2,400\u964d\u5230<\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"mord\">2<\/span><span class=\"mpunct\">,<\/span><span class=\"mord\">400<\/span><span class=\"mord cjk_fallback\">\u964d\u5230<\/span><\/span><\/span><\/span>180<\/strong>\u2014\u2014Lambda \u53ea\u5728\u8acb\u6c42\u5230\u9054\u6642\u8a08\u8cbb\uff0c\u7a7a\u9592\u6642\u4e0d\u7522\u751f\u4efb\u4f55\u8cbb\u7528\u3002<\/p><\/blockquote>\n<hr \/>\n<h3>\u4e00\u3001\u4ec0\u9ebc\u662fAWS Lambda\uff1f Serverless \u7684\u6838\u5fc3\u908f\u8f2f<\/h3>\n<h4>1.1 \u50b3\u7d71\u4f3a\u670d\u5668vs Serverless \u7684\u672c\u8cea\u5340\u5225<\/h4>\n<table>\n<thead>\n<tr>\n<th>\u7dad\u5ea6<\/th>\n<th>\u50b3\u7d71EC2 \u4f3a\u670d\u5668<\/th>\n<th>AWS Lambda (Serverless)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u8a08\u8cbb\u65b9\u5f0f<\/td>\n<td>\u6309\u5c0f\u6642\/\u6708\u4ed8\u8cbb\uff0c\u7121\u8ad6\u662f\u5426\u6709\u8acb\u6c42<\/td>\n<td>\u6309\u547c\u53eb\u6b21\u6578+ \u57f7\u884c\u6642\u9577\u8a08\u8cbb<\/td>\n<\/tr>\n<tr>\n<td>\u64f4\u5bb9\u65b9\u5f0f<\/td>\n<td>\u624b\u52d5\u6216\u9810\u8a2d\u898f\u5247\u64f4\u5bb9\uff0c\u6709\u5ef6\u9072<\/td>\n<td>\u81ea\u52d5\u77ac\u6642\u64f4\u5bb9\uff0c\u53ef\u4f75\u767c\u6578\u5343<\/td>\n<\/tr>\n<tr>\n<td>\u7dad\u904b\u8ca0\u64d4<\/td>\n<td>\u9700\u7ba1\u7406OS\u3001\u4fee\u88dc\u7a0b\u5f0f\u3001\u5b89\u5168\u6027\u7fa4\u7d44<\/td>\n<td>\u96f6\u4f3a\u670d\u5668\u7ba1\u7406\uff0c\u5c08\u6ce8\u696d\u52d9\u4ee3\u78bc<\/td>\n<\/tr>\n<tr>\n<td>\u51b7\u555f\u52d5<\/td>\n<td>\u7121\uff08\u9032\u7a0b\u5e38\u99d0\uff09<\/td>\n<td>\u5b58\u5728\u51b7\u555f\u52d5\u5ef6\u9072\uff08\u9996\u6b21100\uff5e500ms\uff09<\/td>\n<\/tr>\n<tr>\n<td>\u9069\u7528\u5834\u666f<\/td>\n<td>\u7a69\u5b9a\u6301\u7e8c\u7684\u5de5\u4f5c\u8ca0\u8f09<\/td>\n<td>\u9593\u6b47\u6027\u3001\u4e8b\u4ef6\u9a45\u52d5\u7684\u5de5\u4f5c\u8ca0\u8f09<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>\u6838\u5fc3\u601d\u60f3<\/strong>\uff1aLambda \u8b93\u4f60\u53ea\u5beb\u201d\u51fd\u6578\u201d\uff0cAWS \u8ca0\u8cac\u904b\u884c\u74b0\u5883\u3001\u64f4\u5bb9\u3001\u76e3\u63a7\u7684\u4e00\u5207\u2014\u2014\u4f60\u53ea\u70ba\u7a0b\u5f0f\u78bc\u771f\u6b63\u904b\u884c\u7684\u6642\u9593\u4ed8\u8cbb\u3002<\/p>\n<h4>1.2 Lambda \u7684\u5b9a\u50f9\u908f\u8f2f\uff082026 \u5e74\u6700\u65b0\uff09<\/h4>\n<p>Lambda \u7684\u514d\u8cbb\u984d\u5ea6\u975e\u5e38\u6177\u6168\uff1a<\/p>\n<ul>\n<li><strong>\u514d\u8cbb\u8acb\u6c42\u6578<\/strong>\uff1a\u6bcf\u6708100 \u842c\u6b21\u8abf\u7528\uff08\u6c38\u4e45\u514d\u8cbb\uff09<\/li>\n<li><strong>\u514d\u8cbb\u8a08\u7b97\u6642\u9577<\/strong>\uff1a\u6bcf\u670840 \u842cGB-\u79d2<\/li>\n<li><strong>\u8d85\u51fa\u5f8c\u7684\u8cbb\u7528<\/strong>\uff1a\n<ul>\n<li>\u8acb\u6c42\uff1a$0.20 \/ 100 \u842c\u6b21<\/li>\n<li>\u8a08\u7b97\u9577\u5ea6\uff1a$0.0000166667 \/ GB-\u79d2<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>\u8209\u4f8b\u8a08\u7b97<\/strong>\uff1a\u6bcf\u5929\u88ab\u547c\u53eb10 \u842c\u6b21\u3001\u5e73\u5747\u57f7\u884c200ms\u3001\u8a18\u61b6\u9ad4512MB \u7684\u51fd\u6578\uff1a<\/p>\n<ul>\n<li>\u6708\u8abf\u7528\u6b21\u6578\uff1a300 \u842c\u6b21\u2192 \u8d85\u904e\u514d\u8cbb\u984d\u5ea6200 \u842c\u6b21\u2192 \u8cbb\u7528\uff1a$0.40<\/li>\n<li>\u6708\u8a08\u7b97\u6642\u9593\uff1a300 \u842c\u00d7 0.2s \u00d7 0.5GB = 30 \u842cGB-\u79d2\u2192 \u5168\u5728\u514d\u8cbb\u984d\u5ea6\u5167<\/li>\n<li><strong>\u6bcf\u6708\u7e3d\u8cbb\u7528\uff1a\u7d04$0.40<\/strong><\/li>\n<\/ul>\n<hr \/>\n<h3>\u4e8c\u3001Lambda \u6838\u5fc3\u6982\u5ff5\u901f\u89bd<\/h3>\n<h4>2.1 \u51fd\u6578\uff08Function\uff09<\/h4>\n<p>Lambda \u7684\u57fa\u672c\u57f7\u884c\u55ae\u5143\uff0c\u652f\u63f4\u4ee5\u4e0b\u57f7\u884c\u6642\u9593\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a9e\u8a00<\/th>\n<th>\u652f\u63f4\u7248\u672c<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Python<\/td>\n<td>3.9\u30013.10\u30013.11\u30013.12<\/td>\n<\/tr>\n<tr>\n<td>Node.js<\/td>\n<td>18.x\u300120.x<\/td>\n<\/tr>\n<tr>\n<td>Java<\/td>\n<td>11\u300117\u300121<\/td>\n<\/tr>\n<tr>\n<td>Go<\/td>\n<td>1.x\uff08via provided.al2023\uff09<\/td>\n<\/tr>\n<tr>\n<td>.NET<\/td>\n<td>6\u30018<\/td>\n<\/tr>\n<tr>\n<td>\u81ea\u8a02\u904b\u884c\u6642<\/td>\n<td>\u4efb\u4f55\u8a9e\u8a00\uff08\u900f\u904eRuntime API\uff09<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>2.2 \u89f8\u767c\u5668\uff08Trigger\uff09<\/h4>\n<p>Lambda \u51fd\u6578\u672c\u8eab\u662f\u88ab\u52d5\u7684\uff0d\u5b83\u9700\u8981<strong>\u89f8\u767c\u5668<\/strong>\u4f86\u8abf\u7528\u3002\u5e38\u898b\u89f8\u767c\u5668\uff1a<\/p>\n<table style=\"width: 35.5784%; height: 216px;\">\n<thead>\n<tr style=\"height: 24px;\">\n<th style=\"height: 24px;\">\u89f8\u767c\u5668\u985e\u578b<\/th>\n<th style=\"height: 24px;\">\u4f7f\u7528\u5834\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px;\"><strong>API Gateway \/ ALB<\/strong><\/td>\n<td style=\"height: 24px;\">HTTP API \u63a5\u53e3\uff0c\u6700\u5e38\u898b<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px;\"><strong>S3 \u4e8b\u4ef6<\/strong><\/td>\n<td style=\"height: 24px;\">\u6587\u4ef6\u4e0a\u50b3\u6642\u89f8\u767c\u8655\u7406\uff08\u5716\u7247\u58d3\u7e2e\u3001\u683c\u5f0f\u8f49\u63db\uff09<\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"height: 48px;\"><strong>DynamoDB Streams<\/strong><\/td>\n<td style=\"height: 48px;\">\u8cc7\u6599\u8b8a\u66f4\u6642\u89f8\u767c\u4e0b\u6e38\u908f\u8f2f<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px;\"><strong>SQS \u4f47\u5217<\/strong><\/td>\n<td style=\"height: 24px;\">\u975e\u540c\u6b65\u8a0a\u606f\u8655\u7406\uff0c\u524a\u5cf0\u586b\u8c37<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px;\"><strong>EventBridge<\/strong><\/td>\n<td style=\"height: 24px;\">\u5b9a\u6642\u4efb\u52d9\uff08\u985e\u4f3cCron\uff09<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px;\"><strong>SNS<\/strong><\/td>\n<td style=\"height: 24px;\">\u8a0a\u606f\u901a\u77e5\u89f8\u767c\u8655\u7406<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px;\"><strong>Cognito<\/strong><\/td>\n<td style=\"height: 24px;\">\u4f7f\u7528\u8005\u8a3b\u518a\/\u767b\u5165\u4e8b\u4ef6\u89f8\u767c<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>2.3 \u57f7\u884c\u74b0\u5883\u8207\u751f\u547d\u9031\u671f<\/h4>\n<div class=\"cb-markdown-pre-wrapper\">\n<div class=\"cb-markdown-pre-container\">\n<pre class=\"cb-markdown-pre\"><code>\u8acb\u6c42\u5230\u9054\u2193 [\u51b7\u555f\u52d5\u968e\u6bb5] \u50c5\u9996\u6b21\u6216\u5be6\u4f8b\u56de\u6536\u5f8c\u89f8\u767c\u251c\u2500\u2500 \u521d\u59cb\u5316\u57f7\u884c\u74b0\u5883\uff08\u4e0b\u8f09\u7a0b\u5f0f\u78bc\u3001\u555f\u52d5\u904b\u884c\u6642\uff09 \u251c\u2500\u2500 \u57f7\u884c\u521d\u59cb\u5316\u7a0b\u5f0f\u78bc\uff08import\u3001\u9023\u7dda\u6c60\u7b49handler \u5916\u7684\u7a0b\u5f0f\u78bc\uff09 \u2514\u2500\u2500 \u7d04100\uff5e500ms \u5ef6\u9072[\u71b1\u57f7\u884c\u968e\u6bb5] \u7d55\u5927\u591a\u6578\u8acb\u6c42\u251c\u2500\u2500\u76f4\u63a5\u57f7\u884c\u51fd\u6578\u251c\u2014\u2014\u57f7\u884c\u74b0\u5883\u4fdd\u7559\u7d045\uff5e15 \u5206\u9418\uff0c\u7b49\u5f85\u4e0b\u6b21\u518d\u5229\u7528\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h3>\u4e09\u3001\u7b2c\u4e00\u500bLambda \u51fd\u6578\uff1a\u5be6\u6230\u642d\u5efa\u6d41\u7a0b<\/h3>\n<h4>3.1 \u900f\u904eAWS \u63a7\u5236\u53f0\u5275\u5efa\uff085\u5206\u9418\u4e0a\u624b\uff09<\/h4>\n<p><strong>Step 1<\/strong>\uff1a\u9032\u5165Lambda \u63a7\u5236\u53f0\u2192 \u9ede\u64ca\u201d\u5275\u5efa\u51fd\u6578\u201d<\/p>\n<p><strong>Step 2<\/strong>\uff1a\u9078\u64c7\u201d\u5f9e\u982d\u958b\u59cb\u5275\u4f5c\u201d\uff0c\u586b\u5beb\uff1a<\/p>\n<ul>\n<li>\u51fd\u6578\u540d\u7a31\uff1a<code class=\"\">my-first-function<\/code><\/li>\n<li>\u904b\u884c\u6642\uff1aPython 3.12<\/li>\n<li>\u67b6\u69cb\uff1ax86_64\uff08ARM\/Graviton2 \u53ef\u964d\u4f4e\u7d0420% \u6210\u672c\uff09<\/li>\n<\/ul>\n<p><strong>Step 3<\/strong>\uff1a\u7de8\u5bebhandler \u7a0b\u5f0f\u78bc\uff08\u63a7\u5236\u53f0\u5167\u5d4c\u7de8\u8f2f\uff09\uff1a<\/p>\n<div class=\"cb-markdown-pre-wrapper\">\n<div class=\"cb-markdown-pre-container\">\n<pre class=\"cb-markdown-pre\"><code class=\"hljs language-python\"><span class=\"hljs-keyword\">import<\/span> json\r\n\r\n<span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">lambda_handler<\/span>(<span class=\"hljs-params\">event, context<\/span>):\r\n    <span class=\"hljs-comment\"># event: \u89f8\u767c\u5668\u50b3\u5165\u7684\u6578\u64da<\/span>\r\n    <span class=\"hljs-comment\"># context: \u51fd\u6578\u904b\u884c\u6642\u8cc7\u8a0a\uff08\u5269\u9918\u6642\u9593\u3001\u8acb\u6c42ID\u7b49\uff09<\/span>\r\n    \r\n    name = event.get(<span class=\"hljs-string\">&#039;\u540d&#039;<\/span>, <span class=\"hljs-string\">&#039;World&#039;<\/span>)\r\n    \r\n    <span class=\"hljs-keyword\">return<\/span> {\r\n        <span class=\"hljs-string\">&#039;statusCode&#039;<\/span>: <span class=\"hljs-number\">200<\/span>,\r\n        <span class=\"hljs-string\">&#039;body&#039;<\/span>: json.dumps({\r\n            <span class=\"hljs-string\">&#039;message&#039;<\/span>: <span class=\"hljs-string\">f&#039;Hello, <span class=\"hljs-subst\">{name}<\/span>!'<\/span>,\r\n            <span class=\"hljs-string\">&#039;requestId&#039;<\/span>: context.aws_request_id }) }\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p><strong>Step 4<\/strong>\uff1a\u914d\u7f6e\u6e2c\u8a66\u4e8b\u4ef6\u2192 \u57f7\u884c\u6e2c\u8a66\uff0c\u9a57\u8b49\u8f38\u51fa<\/p>\n<p><strong>Step 5<\/strong>\uff1a\u65b0\u589e\u89f8\u767c\u5668\uff08\u4ee5API Gateway \u70ba\u4f8b\uff09\uff1a<\/p>\n<ul>\n<li>\u9078\u64c7\u201dAPI Gateway\u201d \u2192 \u5efa\u7acb\u65b0API \u2192 REST API<\/li>\n<li>\u90e8\u7f72\u5f8c\u53d6\u5f97\u516c\u958bHTTPS \u7aef\u9ede\uff0c\u5373\u53ef\u900f\u904eHTTP \u547c\u53eb\u51fd\u6578<\/li>\n<\/ul>\n<h4>3.2 \u4f7f\u7528AWS SAM \u9032\u884c\u672c\u5730\u958b\u767c\uff08\u5efa\u8b70\u751f\u7522\u74b0\u5883\uff09<\/h4>\n<p>AWS Serverless Application Model\uff08SAM\uff09\u662f\u5b98\u65b9\u63a8\u85a6\u7684IaC \u5de5\u5177<\/p>\n<p><strong>\u672c\u5730\u6e2c\u8a66\u547d\u4ee4<\/strong>\uff1a<\/p>\n<div class=\"cb-markdown-pre-wrapper\">\n<div class=\"cb-markdown-pre-container\">\n<pre class=\"cb-markdown-pre\"><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># \u5b89\u88ddSAM CLI<\/span>\r\npip install aws-sam-cli\r\n\r\n<span class=\"hljs-comment\"># \u672c\u6a5f\u555f\u52d5API<\/span>\r\nsam <span class=\"hljs-built_in\">local<\/span> start-api\r\n\r\n<span class=\"hljs-comment\"># \u904b\u884c\u55ae\u4e00\u51fd\u6578\u6e2c\u8a66<\/span>\r\nsam <span class=\"hljs-built_in\">local<\/span> invoke ProcessOrderFunction --event events\/test_event.json\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h3>\u56db\u3001\u6548\u80fd\u512a\u5316\uff1a\u89e3\u6c7a\u51b7\u555f\u52d5\u554f\u984c<\/h3>\n<p>\u51b7\u555f\u52d5\u662fLambda \u4f7f\u7528\u4e2d\u6700\u5e38\u88ab\u8cea\u7591\u7684\u554f\u984c\uff0c\u4ee5\u4e0b\u662f\u7cfb\u7d71\u6027\u89e3\u6c7a\u65b9\u6848\uff1a<\/p>\n<h4>4.1 \u6e1b\u5c11\u51b7\u555f\u52d5\u6642\u9593<\/h4>\n<table>\n<thead>\n<tr>\n<th>\u512a\u5316\u624b\u6bb5<\/th>\n<th>\u6548\u679c<\/th>\n<th>\u5be6\u64cd\u65b9\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u9078\u64c7\u8f15\u91cf\u904b\u884c\u6642<\/strong><\/td>\n<td>\u986f\u8457<\/td>\n<td>Python\/Node.js \u51b7\u555f\u52d5\u9060\u5feb\u65bcJava<\/td>\n<\/tr>\n<tr>\n<td><strong>\u6e1b\u5c0f\u90e8\u7f72\u5305\u9ad4\u7a4d<\/strong><\/td>\n<td>\u660e\u986f<\/td>\n<td>\u53ea\u6253\u5305\u5fc5\u8981\u4f9d\u8cf4\uff0c\u4f7f\u7528Lambda Layer \u5171\u4eab\u5eab<\/td>\n<\/tr>\n<tr>\n<td><strong>\u4f7f\u7528ARM \u67b6\u69cb<\/strong><\/td>\n<td>\u8f15\u5fae<\/td>\n<td>Graviton2 \u8655\u7406\u5668\uff0c\u51b7\u555f\u52d5\u5feb\u7d0410%<\/td>\n<\/tr>\n<tr>\n<td><strong>\u7a0b\u5f0f\u78bc\u6700\u4f73\u5316<\/strong><\/td>\n<td>\u660e\u986f<\/td>\n<td>\u5c07DB \u9023\u7dda\u3001SDK \u521d\u59cb\u5316\u79fb\u5230handler \u5916\u90e8\uff0c\u5229\u7528\u5be6\u4f8b\u91cd\u8907\u4f7f\u7528<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"cb-markdown-pre-wrapper\">\n<div class=\"cb-markdown-pre-container\">\n<div class=\"cb-markdown-pre__header\"><\/div>\n<pre class=\"cb-markdown-pre\"><code class=\"hljs language-python\"><span class=\"hljs-comment\"># \u2705 \u5efa\u8b70\uff1a\u521d\u59cb\u5316\u7a0b\u5f0f\u78bc\u653e\u5728handler \u5916\uff08\u53ea\u5728\u51b7\u555f\u52d5\u6642\u57f7\u884c\u4e00\u6b21\uff09<\/span>\r\n<span class=\"hljs-keyword\">import<\/span> boto3\r\n\r\n<span class=\"hljs-comment\"># \u9019\u88e1\u7684\u7a0b\u5f0f\u78bc\u53ea\u5728\u51b7\u555f\u52d5\u6642\u904b\u884c<\/span>\r\ndynamodb = boto3.resource(<span class=\"hljs-string\">&#039;dynamodb&#039;<\/span>) table = dynamodb.Table(<span class=\"hljs-string\">&#039;orders&#039;<\/span>)\r\n\r\n<span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">lambda_handler<\/span>(<span class=\"hljs-params\">event, context<\/span>):\r\n    <span class=\"hljs-comment\"># \u9019\u88e1\u76f4\u63a5\u91cd\u8907\u4f7f\u7528\u5df2\u521d\u59cb\u5316\u7684table \u5c0d\u8c61<\/span>\r\n    response = table.get_item(Key={<span class=\"hljs-string\">&#039;order_id&#039;<\/span>: event[<span class=\"hljs-string\">&#039;order_id&#039;<\/span>]})\r\n    <span class=\"hljs-keyword\">return<\/span> response[<span class=\"hljs-string\">&#039;Item&#039;<\/span>]\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<h4>4.2 Provisioned Concurrency\uff08\u9810\u7f6e\u4e26\u767c\uff09<\/h4>\n<p>\u5c0d\u65bc\u5ef6\u9072\u654f\u611f\u578b\u61c9\u7528\uff08\u5982\u5373\u6642API\uff09\uff0c\u53ef\u4ee5\u9810\u5148\u521d\u59cb\u5316\u6307\u5b9a\u6578\u91cf\u7684\u57f7\u884c\u74b0\u5883\uff1a<\/p>\n<div class=\"cb-markdown-pre-wrapper\">\n<div class=\"cb-markdown-pre-container\">\n<pre class=\"cb-markdown-pre\"><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># \u70ba\u51fd\u6578\u914d\u7f6e10 \u500b\u9810\u7f6e\u4e26\u767c\u5be6\u4f8b<\/span>\r\naws lambda put-provisioned-concurrency-config \\ --function-name my-api-function \\ --qualifier production \\ --provisioned-concurrent-executions 10\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p><strong>\u6210\u672c\u63d0\u793a<\/strong>\uff1a\u9810\u7f6e\u4e26\u767c\u6309\u5c0f\u6642\u6536\u8cbb\uff08$0.0000646 \/ GB-\u5c0f\u6642\uff09\uff0c\u9069\u5408\u9ad8\u6d41\u91cf\u95dc\u9375\u8def\u5f91\uff0c\u4e0d\u9069\u5408\u6240\u6709\u51fd\u6578\u5168\u91cf\u914d\u7f6e\u3002<\/p>\n<hr \/>\n<h3>\u4e94\u3001\u751f\u7522\u74b0\u5883\u6700\u4f73\u5be6\u8e10<\/h3>\n<h4>5.1 \u8a18\u61b6\u9ad4\u914d\u7f6e\u7b56\u7565<\/h4>\n<p>Lambda \u7684\u8a18\u61b6\u9ad4\u76f4\u63a5\u5f71\u97ffCPU \u7b97\u529b\u548c\u8cbb\u7528\u3002\u627e\u5230\u6700\u512a\u8a18\u61b6\u9ad4\u7684\u65b9\u6cd5\uff1a<\/p>\n<ul>\n<li><strong>Lambda Power Tuning \u5de5\u5177<\/strong>\uff1aAWS \u958b\u6e90\u5de5\u5177\uff0c\u81ea\u52d5\u6e2c\u8a66\u4e0d\u540c\u8a18\u61b6\u9ad4\u914d\u7f6e\u7684\u6548\u80fd\/\u6210\u672c\u6bd4<\/li>\n<li><strong>\u7d93\u9a57\u898f\u5247<\/strong>\uff1a\u8a18\u61b6\u9ad4\u7ffb\u500d\uff0cCPU \u4e5f\u7ffb\u500d\uff1b\u5982\u679c\u57f7\u884c\u6642\u9593\u6e1b\u5c1150%+\uff0c\u5347\u8a18\u61b6\u9ad4\u53cd\u800c\u66f4\u7701\u9322<\/li>\n<\/ul>\n<h4>5.2 \u4e26\u767c\u9650\u5236\u8207\u5e33\u6236\u914d\u984d<\/h4>\n<table>\n<thead>\n<tr>\n<th>\u4e26\u767c\u985e\u578b<\/th>\n<th>\u9810\u8a2d\u9650\u5236<\/th>\n<th>\u8aaa\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5e33\u6236\u4e26\u767c\u4e0a\u9650<\/td>\n<td>1000\uff08\u53ef\u7533\u8acb\u63d0\u5347\uff09<\/td>\n<td>\u6574\u500b\u5e33\u6236\u6240\u6709\u51fd\u6578\u5171\u4eab<\/td>\n<\/tr>\n<tr>\n<td>\u9810\u7559\u4e26\u767c<\/td>\n<td>\u6309\u51fd\u6578\u914d\u7f6e<\/td>\n<td>\u4fdd\u969c\u95dc\u9375\u51fd\u6578\u4e0d\u88ab\u5176\u4ed6\u51fd\u6578\u6436\u4f54<\/td>\n<\/tr>\n<tr>\n<td>\u7206\u767c\u4e26\u767c\uff08Burst Limit\uff09<\/td>\n<td>500\uff5e3000\uff08\u6309\u5340\u57df\uff09<\/td>\n<td>\u7a81\u767c\u6d41\u91cf\u6642\u7684\u77ac\u6642\u64f4\u5bb9\u4e0a\u9650<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"cb-markdown-pre-wrapper\">\n<div class=\"cb-markdown-pre-container\">\n<div class=\"cb-markdown-pre__header\"><\/div>\n<\/div>\n<\/div>\n<hr \/>\n<h3>\u516d\u3001Lambda \u8207\u5176\u4ed6AWS \u670d\u52d9\u7684\u9ec3\u91d1\u7d44\u5408<\/h3>\n<h4>\u6700\u5e38\u898b\u7684Serverless \u67b6\u69cb\u6a21\u5f0f<\/h4>\n<div class=\"cb-markdown-pre-wrapper\">\n<div class=\"cb-markdown-pre-container\">\n<pre class=\"cb-markdown-pre\"><code>\u4f7f\u7528\u8005\u8acb\u6c42\u2193 API Gateway\uff08HTTPS \u7aef\u9ede\uff09 \u2193 Lambda\uff08\u696d\u52d9\u908f\u8f2f\u8655\u7406\uff09 \u251c\u2500\u2500\u2192 DynamoDB\uff08\u8cc7\u6599\u6301\u4e45\u5316\uff09 \u251c\u2500\u2500\u2192 S3\uff08\u6a94\u6848\u5132\u5b58\uff09 \u251c\u2500\u2500\u2192 SQS\uff08\u975e\u540c\u6b65\u4efb\u52d9\u4f47\u5217\uff09 \u2514\u2500\u2500\u2192 SNS\uff08\u8a0a\u606f\u901a\u77e5\uff09\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<h4><strong>\u5178\u578b\u51fa\u6d77\u696d\u52d9\u5834\u666f<\/strong>\uff1a<\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5834\u666f<\/th>\n<th>Lambda \u7528\u9014<\/th>\n<th>\u642d\u914d\u670d\u52d9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u7368\u7acb\u7ad9\u8a02\u55ae\u8655\u7406<\/td>\n<td>\u63a5\u6536\u8a02\u55ae\u3001\u6821\u9a57\u3001\u5beb\u5eab<\/td>\n<td>API GW + DynamoDB + SQS<\/td>\n<\/tr>\n<tr>\n<td>\u5716\u7247\/\u5f71\u7247\u8655\u7406<\/td>\n<td>\u4e0a\u50b3\u5f8c\u81ea\u52d5\u58d3\u7e2e\u3001\u6253\u6d6e\u6c34\u5370<\/td>\n<td>S3 \u89f8\u767c+ S3 \u5b58\u5132<\/td>\n<\/tr>\n<tr>\n<td>\u5b9a\u6642\u6578\u64da\u5831\u544a<\/td>\n<td>\u6bcf\u65e5\u62c9\u53d6\u5ee3\u544a\u6578\u64da\u532f\u7e3d<\/td>\n<td>EventBridge \u5b9a\u6642\u89f8\u767c+ S3\/\u90f5\u4ef6<\/td>\n<\/tr>\n<tr>\n<td>AI \u63a8\u7406\u63a5\u53e3<\/td>\n<td>\u547c\u53ebBedrock\/SageMaker<\/td>\n<td>API GW + Bedrock<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>\u7d50\u8ad6\uff1aLambda \u9069\u5408\u4f60\u7684\u696d\u52d9\u55ce\uff1f<\/h3>\n<p>Lambda \u4e0d\u662f\u842c\u80fd\u7684\uff0c\u4f46\u5c0d\u65bc\u4ee5\u4e0b\u7279\u5fb5\u7684\u5de5\u4f5c\u8ca0\u8f09\uff0c\u5b83\u662f\u6700\u4f73\u89e3\uff1a<\/p>\n<p>\u2705\u00a0<strong>\u9069\u5408Lambda<\/strong>\uff1a<\/p>\n<ul>\n<li>\u8acb\u6c42\u91cf\u6ce2\u52d5\u5927\uff08\u4f4e\u8c37\u5e7e\u4e4e\u70ba\u96f6\uff09<\/li>\n<li>\u55ae\u6b21\u57f7\u884c\u6642\u9593\u77ed\uff08&lt; 15 \u5206\u9418\uff09<\/li>\n<li>\u7121\u72c0\u614b\u8655\u7406\u908f\u8f2f<\/li>\n<li>\u4e8b\u4ef6\u9a45\u52d5\u578b\u4efb\u52d9<\/li>\n<\/ul>\n<p>\u274c\u00a0<strong>\u4e0d\u9069\u5408Lambda<\/strong>\uff1a<\/p>\n<ul>\n<li>\u9700\u8981\u7dad\u6301\u9577\u9023\u7dda\uff08WebSocket \u9700\u914d\u5408API Gateway\uff09<\/li>\n<li>\u57f7\u884c\u6642\u9593&gt; 15 \u5206\u9418\uff08\u4ee5ECS Fargate \u53d6\u4ee3\uff09<\/li>\n<li>\u9700\u8981\u5927\u91cf\u672c\u6a5f\u78c1\u789fI\/O\uff08\/tmp \u4e0a\u965010GB\uff09<\/li>\n<\/ul>\n<hr \/>\n<blockquote><p><strong>\u2601\ufe0f \u60f3\u628a\u73fe\u6709\u5f8c\u7aef\u9077\u79fb\u5230Serverless \u67b6\u69cb\uff1f<\/strong><\/p>\n<p>aws-oncloudai.com \u63d0\u4f9b\u514d\u8cbb\u7684AWS \u67b6\u69cb\u8a55\u4f30\uff0c\u5354\u52a9\u51fa\u6d77\u4f01\u696d\u627e\u5230\u6700\u5408\u9069\u7684\u96f2\u7aef\u539f\u751f\u65b9\u6848\uff0c\u5be6\u73fe\u6210\u672c\u964d\u4f4e\u8207\u5f48\u6027\u63d0\u5347\u3002<\/p>\n<p>\ud83d\udc49\u00a0<strong><a href=\"https:\/\/aws-oncloudai.com\/zh_hk\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u9810\u7d04\u514d\u8cbb\u67b6\u69cb\u8aee\u8a62\u2192 aws-oncloudai.com<\/a><\/strong><\/p><\/blockquote>\n<hr \/>\n<p><em>\u672c\u6587\u7531OnCloud AI \u6280\u8853\u5718\u968a\u64b0\u5beb| aws-oncloudai.com<\/em>\u00a0<em>\u5c08\u6ce8\u65bc\u5354\u52a9\u51fa\u6d77\u4f01\u696d\u5efa\u69cb\u9ad8\u6548\u3001\u4f4e\u6210\u672c\u7684AWS \u96f2\u7aef\u67b6\u69cb<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>\u6df1\u5ea6\u89e3\u6790AWS Lambda \u6838\u5fc3\u6982\u5ff5\u3001\u89f8\u767c\u5668\u914d\u7f6e\u3001\u51b7\u555f\u52d5\u6700\u4f73\u5316\u8207\u6210\u672c\u63a7\u5236\uff0c\u9644\u771f\u5be6\u696d\u52d9\u5834\u666f\u6848\u4f8b\uff0c\u5354\u52a9\u51fa\u6d77\u4f01\u696d\u5feb\u901f\u843d\u5730Serverless \u67b6\u69cb\u3002<\/p>","protected":false},"author":1,"featured_media":4398,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[65],"tags":[],"class_list":["post-4397","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-sharing"],"_links":{"self":[{"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/posts\/4397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/comments?post=4397"}],"version-history":[{"count":4,"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/posts\/4397\/revisions"}],"predecessor-version":[{"id":4402,"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/posts\/4397\/revisions\/4402"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/media\/4398"}],"wp:attachment":[{"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/media?parent=4397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/categories?post=4397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aws-oncloudai.com\/zh_hk\/wp-json\/wp\/v2\/tags?post=4397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}