{"id":392,"date":"2020-05-08T17:36:09","date_gmt":"2020-05-08T10:36:09","guid":{"rendered":"https:\/\/www.marketenterprise.vn\/blog\/?p=392"},"modified":"2021-12-27T20:11:05","modified_gmt":"2021-12-27T13:11:05","slug":"aws-lambda-micro-framework-chalice","status":"publish","type":"post","link":"https:\/\/www.marketenterprise.vn\/blog\/aws-lambda-micro-framework-chalice.html","title":{"rendered":"Gi\u1edbi thi\u1ec7u v\u1ec1 AWS Lambda &#038; Micro Framework Chalice"},"content":{"rendered":"\n<p>Tr\u01b0\u1edbc khi t\u00ecm hi\u1ec3u AWS Lambda, \u0111\u1ea7u ti\u00ean ch\u00fang t\u00f4i s\u1ebd gi\u1edbi thi\u1ec7u c\u00e1c ki\u1ebfn th\u1ee9c c\u01a1 b\u1ea3n tr\u01b0\u1edbc khi h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n x\u00e2y d\u1ef1ng v\u00e0 tri\u1ec3n khai m\u1ed9t microservice.<br><br><\/p>\n\n\n<h2>Microservices (C\u00f2n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Microservice Architecture)<\/h2>\n\n\n<p>L\u00e0 m\u1ed9t ki\u1ec3u thi\u1ebft k\u1ebf \u1ee9ng d\u1ee5ng b\u1eb1ng c\u00e1ch chia \u1ee9ng d\u1ee5ng th\u00e0nh t\u1eadp h\u1ee3p nhi\u1ec1u d\u1ecbch v\u1ee5 nh\u1ecf (microservice), m\u1ed7i d\u1ecbch v\u1ee5 nh\u1ecf s\u1ebd \u0111\u1ea3m nh\u1eadn m\u1ed9t ho\u1eb7c m\u1ed9t nh\u00f3m ch\u1ee9c n\u0103ng. C\u00e1c d\u1ecbch v\u1ee5 nh\u1ecf n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng t\u1eeb c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh, framework gi\u1ed1ng ho\u1eb7c kh\u00e1c nhau, c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng chung ho\u1eb7c ri\u00eang c\u01a1 s\u1edf d\u1eef li\u1ec7u v\u00e0 c\u00f3 th\u1ec3 \u0111\u1eb7t \u1edf c\u00e1c server chung ho\u1eb7c kh\u00e1c nhau\u2026&nbsp;<br><br><\/p>\n\n\n\n<p>Nghe c\u00f3 v\u1ebb ph\u1ee9c t\u1ea1p h\u01a1n l\u00e0 ch\u00fang ta x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng th\u00e0nh m\u1ed9t kh\u1ed1i duy nh\u1ea5t (monolithic applications) nh\u1ec9? Nh\u01b0ng t\u1ea1i sao c\u00f3 r\u1ea5t nhi\u1ec1u d\u1ef1 \u00e1n \u0111ang s\u1eed d\u1ee5ng microservices? V\u00e0 t\u1ea1i sao n\u00f3 \u0111\u00e3 v\u00e0 \u0111ang tr\u1edf th\u00e0nh m\u1ed9t xu h\u01b0\u1edbng ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m? Ch\u00fang ta s\u1ebd c\u00f9ng ph\u00e2n t\u00edch c\u00e1c \u0111\u1eb7c \u0111i\u1ec3m n\u1ed5i b\u1eadt c\u1ee7a microservices v\u00e0 \u0111\u1ec3 d\u1ec5 d\u00e0ng gi\u1ea3i th\u00edch, h\u00e3y t\u01b0\u1edfng t\u01b0\u1ee3ng laptop l\u00e0 \u1ee9ng d\u1ee5ng nguy\u00ean kh\u1ed1i v\u00e0 PC l\u00e0 \u1ee9ng d\u1ee5ng microservices.<br><br><\/p>\n\n\n\n<p>&#8211; D\u1ec5 ki\u1ec3m tra v\u00e0 b\u1ea3o tr\u00ec h\u01a1n: \u0111ang xem phim th\u00ec m\u00e0n h\u00ecnh \u0111en thui, ph\u00edm g\u00f5 kh\u00f4ng \u0111\u01b0\u1ee3c, loa kh\u00f4ng nghe \u0111\u01b0\u1ee3c\u2026 b\u1ea1n s\u1eed d\u1ee5ng PC th\u00ec s\u1ebd ki\u1ec3m tra v\u00e0 x\u1eed l\u00fd d\u1ec5 d\u00e0ng h\u01a1n \u0111\u00fang kh\u00f4ng.<br><br><\/p>\n\n\n\n<p>&#8211; Li\u00ean k\u1ebft gi\u1eefa c\u00e1c th\u00e0nh ph\u1ea7n \u1ee9ng d\u1ee5ng kh\u00f4ng qu\u00e1 ch\u1eb7t ch\u1ebd: b\u1ea1n c\u1ea7n thay ph\u00edm, b\u1ea1n c\u1ea7n th\u00eam ram\u2026 n\u1ebfu l\u00e0 laptop, b\u1ea1n s\u1ebd g\u1eb7p kh\u00f3 kh\u0103n h\u01a1n khi ph\u1ea3i ki\u1ec3m tra t\u00ednh t\u01b0\u01a1ng th\u00edch \u0111\u00fang h\u00e3ng, \u0111\u00fang chu\u1ea9n, nh\u01b0ng v\u1edbi PC th\u00ec s\u1ebd d\u1ec5 d\u00e0ng h\u01a1n h\u1eb3n<br><br><\/p>\n\n\n\n<p>&#8211; Tri\u1ec3n khai v\u00e0 n\u00e2ng c\u1ea5p c\u00e1c d\u1ecbch v\u1ee5 nh\u1ecf m\u1ed9t c\u00e1ch \u0111\u1ed9c l\u1eadp: t\u00f4i ch\u1ec9 \u0111\u1ee7 ti\u1ec1n mua c\u00e1i PC m\u00e0 kh\u00f4ng \u0111\u1ee7 ti\u1ec1n mua m\u00e0n h\u00ecnh, \u0111\u01b0\u1ee3c th\u00f4i, c\u1ee9 mua \u0111i, v\u1ec1 g\u1eafn v\u00f4 c\u00e1i tivi x\u00e0i \u0111\u1ee1 c\u0169ng \u0111\u01b0\u1ee3c. T\u00f4i kho\u00e1i c\u00e1i game n\u00e0y qu\u00e1, m\u00e0 n\u00f3 y\u00eau c\u1ea7u \u0111\u1ed3 h\u1ecda qu\u00e1 cao, oh, n\u1ebfu \u0111\u1ee7 ti\u1ec1n th\u00ec mua c\u00e1i card VGA r\u1eddi m\u00e0 g\u1eafn v\u00f4, nh\u1edb coi c\u00e1i ngu\u1ed3n n\u1eefa nh\u00e9 \ud83d\ude42<br><br><\/p>\n\n\n\n<p>V\u00e0 c\u00f2n m\u1ed9t s\u1ed1 l\u1ee3i \u0111i\u1ec3m kh\u00e1c n\u1eefa, nh\u01b0 tu\u1ef3 m\u00f4 h\u00ecnh kinh doanh c\u1ee7a t\u1ed5 ch\u1ee9c m\u00e0 ta s\u1ebd \u01b0u ti\u00ean ph\u00e1t tri\u1ec3n d\u1ecbch v\u1ee5 n\u00e0o tr\u01b0\u1edbc, m\u1ed9t \u1ee9ng d\u1ee5ng l\u1edbn v\u1eabn c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi c\u00e1c nh\u00f3m nh\u1ecf v\u00e0 s\u1ebd gi\u00fap t\u1ed5 ch\u1ee9c n\u00e2ng cao nhi\u1ec1u ki\u1ebfn th\u1ee9c v\u1ec1 k\u1ef9 thu\u1eadt, d\u1ecbch v\u1ee5.<br><br><\/p>\n\n\n\n<p>Ngo\u00e0i \u01b0u \u0111i\u1ec3m ra th\u00ec khi th\u1ef1c hi\u1ec7n microservices t\u1ea5t nhi\u00ean c\u0169ng c\u00f3 m\u1ed9t v\u00e0i khuy\u1ebft \u0111i\u1ec3m, v\u00e0 theo c\u00e1 nh\u00e2n m\u00ecnh ngh\u0129 th\u00ec khuy\u1ebft \u0111i\u1ec3m l\u1edbn nh\u1ea5t \u0111\u00e1ng quan t\u00e2m \u0111\u00f3 l\u00e0 vi\u1ec7c ki\u1ec3m so\u00e1t khi \u1ee9ng d\u1ee5ng c\u00f3 qu\u00e1 nhi\u1ec1u d\u1ecbch v\u1ee5 nh\u1ecf.<br><br><\/p>\n\n\n\n<p>C\u00e1c b\u1ea1n tham kh\u1ea3o Corp Site c\u1ee7a ch\u00fang t\u00f4i <a href=\"https:\/\/www.marketenterprise.vn\/\">https:\/\/www.marketenterprise.vn\/<\/a> \u0111\u1ec3 hi\u1ec3u r\u00f5 h\u01a1n nh\u00e9, \u0111\u01b0\u1ee3c chia ra kh\u00e1 nhi\u1ec1u d\u1ecbch v\u1ee5 nh\u1ecf \u0111\u1ec3 t\u1eadn d\u1ee5ng s\u1ee9c m\u1ea1nh c\u1ee7a t\u1eebng framework\/cms, gi\u1ea3m thi\u1ec3u chi ph\u00ed ph\u00e1t tri\u1ec3n nh\u1eefng ch\u1ee9c n\u0103ng kh\u00f4ng c\u1ea7n thi\u1ebft v\u00e0 quan tr\u1ecdng \u0111\u00f3 l\u00e0 n\u00e2ng cao ki\u1ebfn th\u1ee9c c\u1ee7a c\u00e1c th\u00e0nh vi\u00ean trong team.&nbsp;<br><br><\/p>\n\n\n<h2>AWS Lambda<\/h2>\n\n\n<p>V\u1edbi m\u1ed9t d\u1ecbch v\u1ee5 khi \u0111\u01b0a v\u00e0o s\u1eed d\u1ee5ng, ch\u00fang ta ph\u1ea3i th\u1ef1c hi\u1ec7n v\u00e0 theo d\u00f5i c\u00e1c v\u1ea5n \u0111\u1ec1 li\u00ean quan \u0111\u1ebfn server nh\u01b0: configuration, cpu, ram, scale\u2026 N\u1ebfu nh\u01b0 \u1ee9ng d\u1ee5ng ch\u00fang ta c\u00f3 h\u00e0ng tr\u0103m d\u1ecbch v\u1ee5 nh\u1ecf kh\u00e1c nhau th\u00ec chi ph\u00ed ch\u0103m lo cho server s\u1ebd l\u00e0 m\u1ed9t v\u1ea5n \u0111\u1ec1. V\u00e0 AWS Lambda s\u1ebd gi\u00fap b\u1ea1n gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1 tr\u00ean. V\u1eady AWS Lambda l\u00e0 g\u00ec?<br><br><\/p>\n\n\n\n<p>AWS Lambda l\u00e0 m\u1ed9t d\u1ecbch v\u1ee5 c\u1ee7a Amazon h\u1ed7 tr\u1ee3 r\u1ea5t t\u1ed1t cho vi\u1ec7c x\u00e2y d\u1ef1ng serverless microservices, c\u00f4ng vi\u1ec7c c\u1ee7a b\u1ea1n l\u00e0 develop, upload source code v\u00e0 t\u1ea1o m\u1ed9t function tr\u00ean Lambda, m\u1ecdi th\u1ee9 c\u00f2n l\u1ea1i h\u00e3y \u0111\u1ec3 Lambda lo.<br><br><\/p>\n\n\n\n<p>M\u1ed9t d\u1ecbch v\u1ee5 s\u1eed d\u1ee5ng Lambda s\u1ebd c\u00f3 2 th\u00e0nh ph\u1ea7n ch\u00ednh: function v\u00e0 event. Function ch\u00ednh l\u00e0 source code m\u00e0 b\u1ea1n upload l\u00ean, c\u00f2n event l\u00e0 s\u1ef1 ki\u1ec7n m\u00e0 khi x\u1ea3y th\u00ec s\u1ebd g\u1ecdi t\u1ef1 \u0111\u1ed9ng \u0111\u1ebfn function th\u1ef1c hi\u1ec7n, c\u00f3 kh\u00e1 nhi\u1ec1u c\u00e1ch t\u1ea1o event: khi m\u1ed9t h\u00ecnh \u1ea3nh \u0111\u01b0\u1ee3c \u0111\u01b0a l\u00ean S3, d\u1eef li\u1ec7u thay \u0111\u1ed5i hay call \u0111\u1ebfn m\u1ed9t api n\u00e0o \u0111\u00f3\u2026.&nbsp;<br><br><\/p>\n\n\n\n<p>M\u1ed9t s\u1ed1 l\u01b0u \u00fd khi b\u1ea1n s\u1eed d\u1ee5ng Lambda:&nbsp;<\/p>\n\n\n\n<p>&#8211; Hi\u1ec7n t\u1ea1i ng\u00f4n ng\u1eef m\u00e0 AWS Lambda h\u1ed7 tr\u1ee3 l\u00e0 Java, NodeJS, Python.<br><br>&#8211; Lambda function v\u00e0 bucket ph\u1ea3i c\u00f3 c\u00f9ng region<br><br><\/p>\n\n\n\n<p>B\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o th\u00eam \u1edf <a href=\"https:\/\/aws.amazon.com\/lambda\/\" target=\"_blank\" rel=\"noopener\">https:\/\/aws.amazon.com\/lambda\/<\/a><br><br><\/p>\n\n\n<h2>Micro Framework Chalice<\/h2>\n\n\n<p>\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi ng\u00f4n ng\u1eef Python, h\u1ed7 tr\u1ee3 r\u1ea5t t\u1ed1t cho vi\u1ec7c ph\u00e1t tri\u1ec3n serverless microservices v\u00e0 deploy \u1ee9ng d\u1ee5ng sau khi ph\u00e1t tri\u1ec3n l\u00ean AWS Lambda.<\/p>\n\n\n\n<p>&#8211; Cung c\u1ea5p c\u00f4ng c\u1ee5 \u0111\u1ec3 t\u1ea1o, deploy v\u00e0 qu\u1ea3n l\u00fd b\u1eb1ng command line<\/p>\n\n\n\n<p>&#8211; C\u00f3 th\u01b0 vi\u1ec7n \u0111\u1ec3 t\u00edch h\u1ee3p v\u00e0 c\u00e1c d\u1ecbch v\u1ee5 kh\u00e1c c\u1ee7a Amazon: Amazon API Gateway, Amazon S3, Amazon SNS, Amazon SQS\u2026<\/p>\n\n\n\n<p>&#8211; C\u00f3 s\u1eb5n ch\u1ee9ng th\u1ef1c IAM t\u1ef1 \u0111\u1ed9ng<\/p>\n\n\n\n<p>B\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o th\u00eam \u1edf <a href=\"https:\/\/github.com\/aws\/chalice\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/aws\/chalice<\/a><br><br><\/p>\n\n\n\n<p>Sau khi \u0111\u00e3 hi\u1ec3u \u0111\u01b0\u1ee3c c\u00e1c ki\u1ebfn th\u1ee9c c\u01a1 b\u1ea3n, ch\u00fang ta c\u00f9ng nhau gi\u1ea3i vi\u1ebft m\u1ed9t v\u1ea5n \u0111\u1ec1 th\u1ef1c ti\u1ec5n m\u00e0 ch\u00fang t\u00f4i \u0111\u00e3 tr\u1ea3i qua: Corp Site c\u1ee7a ch\u00fang t\u00f4i c\u00f3 ch\u1ee9c n\u0103ng subscriber, n\u01a1i \u0111\u1ec3 \u1ee9ng vi\u00ean c\u00f3 th\u1ec3 g\u1eedi th\u00f4ng tin \u1ee9ng tuy\u1ec3n \u0111\u1ebfn c\u00f4ng ty. Khi \u1ee9ng vi\u00ean g\u1eedi th\u00f4ng tin, l\u00e0m sao \u0111\u1ec3 nh\u1eadn bi\u1ebft v\u00e0 ph\u1ea3n h\u1ed3i nhanh \u0111\u1ebfn c\u00e1c \u1ee9ng vi\u00ean? <\/p>\n\n\n\n<p>Ch\u00fang t\u00f4i \u0111ang s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 Slack \u0111\u1ec3 li\u00ean l\u1ea1c trong c\u00f4ng vi\u1ec7c, n\u1ebfu c\u00f3 th\u1ec3 g\u1eedi tin nh\u1eafn t\u1ef1 \u0111\u1ed9ng \u0111\u1ebfn Slack khi c\u00f3 \u1ee9ng vi\u00ean s\u1eed d\u1ee5ng ch\u1ee9c n\u0103ng subscribe th\u00ec v\u1ea5n \u0111\u1ec1 s\u1ebd \u0111\u01b0\u1ee3c gi\u1ea3i quy\u1ebft. Ch\u00fang t\u00f4i quy\u1ebft \u0111\u1ecbnh t\u1ea1o m\u1ed9t API (c\u00f3 th\u1ec3 xem l\u00e0 m\u1ed9t d\u1ecbch v\u1ee5) \u0111\u1ec3 g\u1eedi tin nh\u1eafn \u0111\u1ebfn Slack v\u1edbi AWS Lambda v\u00e0 Micro Framework Chalice. (C\u00e1c b\u1ea1n k\u00e9o l\u00ean xem h\u00ecnh ki\u1ebfn tr\u00fac Corp Site nh\u00e9!). N\u00e0o, ch\u00fang ta b\u1eaft \u0111\u1ea7u th\u00f4i:<br><br><\/p>\n\n\n\n\n\n<p>&#8211; Tr\u01b0\u1edbc ti\u00ean ch\u00fang ta s\u1ebd ph\u1ea3i c\u00e0i Python l\u00ean m\u00e1y c\u1ee7a m\u00ecnh \u0111\u00e3 (team m\u00ecnh s\u1eed d\u1ee5ng <a href=\"https:\/\/www.marketenterprise.vn\/blog\/docker-la-gi.html\">docker<\/a>):&nbsp; <a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.python.org\/downloads\/<\/a><\/p>\n\n\n\n<p><h3>C\u00e0i \u0111\u1eb7t m\u1ed9t m\u00f4i tr\u01b0\u1eddng \u1ea3o<\/h3><\/p>\n\n\n\n<p><em>$ pip install virtualenv<br>$ virtualenv ~\/.virtualenvs\/chalice-demo<br>$ source ~\/.virtualenvs\/chalice-demo\/bin\/activate<\/em><br><br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00e0i \u0111\u1eb7t Chalice<\/h3>\n\n\n\n<p><em>$ pip install chalice<br>$ chalice &#8211;help&nbsp; \/\/ Ki\u1ec3m tra l\u1ea1i k\u1ebft qu\u1ea3 c\u00e0i \u0111\u1eb7t<\/em><br><br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">T\u1ea1o \u1ee9ng d\u1ee5ng v\u1edbi Chalice<\/h3>\n\n\n\n<p><em>$ chalice new-project api-slack-notification<\/em><br><br><\/p>\n\n\n\n<p>K\u1ebft qu\u1ea3 l\u00e0 s\u1ebd t\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c api-slack-notification ch\u1ee9a&nbsp;<\/p>\n\n\n\n<p>&#8211; .chalice: b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng th\u01b0 m\u1ee5c n\u00e0y \u0111\u1ec3 ch\u1ee9a c\u00e1c th\u00f4ng tin v\u1ec1 credential c\u1ee7a AWS m\u00e0 kh\u00f4ng d\u00f9ng t\u1edbi file .env<\/p>\n\n\n\n<p>&#8211; requirements.txt: file n\u00e0y s\u1ebd ch\u1ee9a th\u00f4ng tin c\u00e1c package m\u00e0 b\u1ea1n mu\u1ed1n th\u00eam v\u00e0o ch\u01b0\u01a1ng tr\u00ecnh<\/p>\n\n\n\n<p>&#8211; app.py: file n\u00e0y l\u00e0 n\u01a1i \u0111\u1ec3 b\u1ea1n code<br><br><\/p>\n\n\n\n<p>M\u1edf file requirements.txt \u0111\u1ec3 th\u00eam package requests: <em>requests == 2.22.0<\/em><\/p>\n\n\n\n<p>Code th\u00f4i, h\u00e3y m\u1edf file app.py n\u00e0o:<\/p>\n\n\n\n<p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">app = Chalice(app_name='notification')\r\n\r\n@app.route('\/', methods=['POST'])\r\ndef index():\r\n    json_body = app.current_request.json_body\r\n    channel = json_body.get('channel')\r\n    data = json_body.get('data')\r\n    result = push(channel, data)\r\n    return result.text == 'ok'\r\n\r\ndef push(channel, data):\r\n    params = json.dumps(data)\r\n&nbsp;   result = requests.post(channel, data = params, headers = {'Content-Type': 'application\/json'})<\/pre>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p><\/p>\n\n\n\n<p>Sau khi ho\u00e0n th\u00e0nh vi\u1ec7c develop, c\u00e1c b\u1ea1n c\u00f3 2 c\u00e1ch deploy: s\u1eed d\u1ee5ng command line c\u1ee7a chalice ho\u1eb7c s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 h\u1ed7 tr\u1ee3 c\u1ee7a Amazon.&nbsp;<\/p>\n\n\n\n<p>Hy v\u1ecdng r\u1eb1ng, b\u00e0i vi\u1ebft n\u00e0y s\u1ebd gi\u00fap c\u00e1c b\u1ea1n th\u00eam m\u1ed9t ki\u1ebfn th\u1ee9c \u0111\u1ec3 x\u1eed l\u00fd v\u1ea5n \u0111\u1ec1 trong khi ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ch\u00e0o c\u00e1c b\u1ea1n, MEVN r\u1ea5t vui khi c\u00f3 th\u1ec3 chia s\u1ebb c\u00e1c ki\u1ebfn th\u1ee9c v\u1ec1 c\u00e1c k\u1ef9 n\u0103ng, ki\u1ebfn th\u1ee9c l\u1eadp tr\u00ecnh\u2026 \u0111\u1ebfn c\u00e1c b\u1ea1n. Trong b\u00e0i n\u00e0y, ch\u00fang t\u00f4i s\u1ebd gi\u1edbi thi\u1ec7u \u0111\u1ebfn c\u00e1c b\u1ea1n c\u00e1ch x\u00e2y d\u1ef1ng m\u1ed9t serverless microservice v\u1edbi AWS Lambda &#038; Micro Framework Chalice.<\/p>\n","protected":false},"author":8,"featured_media":394,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[24,23,34,25,22],"class_list":["post-392","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-aws","tag-lambda","tag-marketenterprise-vietnam","tag-microservices","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts\/392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/comments?post=392"}],"version-history":[{"count":0,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts\/392\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/media\/394"}],"wp:attachment":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/media?parent=392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/categories?post=392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/tags?post=392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}