{"id":93372,"date":"2025-01-17T14:20:50","date_gmt":"2025-01-17T10:50:50","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/5-%da%86%d8%a7%d8%b1%da%86%d9%88%d8%a8-%d9%82%d8%af%d8%b1%d8%aa%d9%85%d9%86%d8%af-%d8%ac%d8%a7%d9%88%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%a8%d8%af%d9%88%d9%86-%d8%b3%d8%b1\/"},"modified":"2025-01-17T14:20:50","modified_gmt":"2025-01-17T10:50:50","slug":"5-%da%86%d8%a7%d8%b1%da%86%d9%88%d8%a8-%d9%82%d8%af%d8%b1%d8%aa%d9%85%d9%86%d8%af-%d8%ac%d8%a7%d9%88%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%a8%d8%af%d9%88%d9%86-%d8%b3%d8%b1","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/5-%da%86%d8%a7%d8%b1%da%86%d9%88%d8%a8-%d9%82%d8%af%d8%b1%d8%aa%d9%85%d9%86%d8%af-%d8%ac%d8%a7%d9%88%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%a8%d8%af%d9%88%d9%86-%d8%b3%d8%b1\/","title":{"rendered":"5 \u0686\u0627\u0631\u0686\u0648\u0628 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u062c\u0627\u0648\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631: \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc Cloud-Native \u062e\u0648\u062f \u0631\u0627 \u062a\u0642\u0648\u06cc\u062a \u06a9\u0646\u06cc\u062f"},"content":{"rendered":"<div data-article-id=\"2218090\" id=\"article-body\">\n<blockquote>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u067e\u0631\u0641\u0631\u0648\u0634\u060c \u0627\u0632 \u0634\u0645\u0627 \u062f\u0639\u0648\u062a \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u062a\u0627\u0628 \u0647\u0627\u06cc \u0645\u0646 \u0631\u0627 \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f. \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0646 \u0631\u0627 \u062f\u0631 Medium \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u062d\u0645\u0627\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f. \u0645\u062a\u0634\u06a9\u0631\u0645 \u062d\u0645\u0627\u06cc\u062a \u0634\u0645\u0627 \u06cc\u0639\u0646\u06cc \u062f\u0646\u06cc\u0627! <\/p>\n<\/blockquote>\n<p>\u062a\u0648\u0633\u0639\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u062c\u0627\u0648\u0627 \u0631\u0648\u0634 \u0633\u0627\u062e\u062a \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0627 \u0645\u062a\u062d\u0648\u0644 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647\u060c \u0645\u0646 \u0627\u0632 \u0646\u0632\u062f\u06cc\u06a9 \u062f\u06cc\u062f\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0627\u06cc\u0646 \u0686\u0627\u0631\u0686\u0648\u0628\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u0627\u0631 \u0645\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u0646\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u0646\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u067e\u0646\u062c \u0686\u0627\u0631\u0686\u0648\u0628 \u06a9\u0644\u06cc\u062f\u06cc \u062c\u0627\u0648\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0628\u0648\u0645\u06cc \u0627\u0628\u0631\u06cc \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>AWS Lambda \u0628\u0627 \u062c\u0627\u0648\u0627 \u06cc\u06a9 \u062a\u0631\u06a9\u06cc\u0628 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0627\u0633\u062a. \u0645\u0646 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u0647 \u0627\u0645 \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS SDK \u0628\u0631\u0627\u06cc \u062c\u0627\u0648\u0627 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u062a\u0648\u0627\u0628\u0639 Lambda \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u062f\u0644 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 AWS (SAM) \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0627\u0633\u0627\u0633\u06cc \u0627\u0632 \u06cc\u06a9 \u062a\u0627\u0628\u0639 Lambda \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062c\u0627\u0648\u0627 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">LambdaHandler<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">RequestHandler<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span><span class=\"o\">,<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span> <span class=\"nf\">handleRequest<\/span><span class=\"o\">(<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span> <span class=\"n\">input<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Context<\/span> <span class=\"n\">context<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">String<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">input<\/span><span class=\"o\">.<\/span><span class=\"na\">getQueryStringParameters<\/span><span class=\"o\">().<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"s\">\"name\"<\/span><span class=\"o\">);<\/span>\n        <span class=\"nc\">String<\/span> <span class=\"n\">message<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">String<\/span><span class=\"o\">.<\/span><span class=\"na\">format<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Hello, %s!\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">name<\/span><span class=\"o\">);<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">()<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">withStatusCode<\/span><span class=\"o\">(<\/span><span class=\"mi\">200<\/span><span class=\"o\">)<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">withBody<\/span><span class=\"o\">(<\/span><span class=\"n\">message<\/span><span class=\"o\">);<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc API Gateway \u067e\u0627\u0633\u062e \u0645\u06cc \u062f\u0647\u062f\u060c \u06cc\u06a9 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0646\u0627\u0645 \u0631\u0627 \u0627\u0632 \u0631\u0634\u062a\u0647 query \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u06cc \u06a9\u0646\u062f \u0648 \u06cc\u06a9 \u062a\u0628\u0631\u06cc\u06a9 \u0634\u062e\u0635\u06cc \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f. \u0627\u06cc\u0646 \u06cc\u06a9 \u0631\u0627\u0647 \u0633\u0627\u062f\u0647 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0645\u0648\u062b\u0631 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f API \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0627\u0633\u062a.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 AWS Lambda\u060c \u0645\u0646 \u0627\u063a\u0644\u0628 \u0627\u0632 AWS SAM CLI \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u062d\u0644\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0644\u06af\u0648\u06cc SAM \u0628\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 Lambda \u0645\u0627 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">AWSTemplateFormatVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">2010-09-09'<\/span>\n<span class=\"na\">Transform<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS::Serverless-2016-10-31<\/span>\n<span class=\"na\">Resources<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">HelloFunction<\/span><span class=\"pi\">:<\/span>\n    <span class=\"na\">Type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS::Serverless::Function<\/span>\n    <span class=\"na\">Properties<\/span><span class=\"pi\">:<\/span>\n      <span class=\"na\">Handler<\/span><span class=\"pi\">:<\/span> <span class=\"s\">com.example.LambdaHandler::handleRequest<\/span>\n      <span class=\"na\">Runtime<\/span><span class=\"pi\">:<\/span> <span class=\"s\">java11<\/span>\n      <span class=\"na\">Events<\/span><span class=\"pi\">:<\/span>\n        <span class=\"na\">HelloApi<\/span><span class=\"pi\">:<\/span>\n          <span class=\"na\">Type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Api<\/span>\n          <span class=\"na\">Properties<\/span><span class=\"pi\">:<\/span>\n            <span class=\"na\">Path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/hello<\/span>\n            <span class=\"na\">Method<\/span><span class=\"pi\">:<\/span> <span class=\"s\">get<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u062a\u0627\u0628\u0639 Lambda \u0645\u0627 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc API Gateway \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u062d\u0631\u06a9\u062a \u0628\u0647 Quarkus\u060c \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u0645 \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u06cc\u06a9 \u0627\u0646\u062a\u062e\u0627\u0628 \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062c\u0627\u0648\u0627 \u0628\u0648\u0645\u06cc \u0627\u0628\u0631\u06cc \u0645\u06cc\u200c\u062f\u0627\u0646\u0645. \u0632\u0645\u0627\u0646 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u06cc\u0639 \u0648 \u062d\u0627\u0641\u0638\u0647 \u06a9\u0645 \u0622\u0646\u060c \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0627\u06cc\u062f\u0647 \u0622\u0644 \u0645\u06cc \u06a9\u0646\u062f. Quarkus \u0627\u0632 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631 \u0645\u0627\u062f\u0631\u06cc GraalVM \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0633\u0627\u062f\u0647 Quarkus \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nd\">@Path<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\/hello\"<\/span><span class=\"o\">)<\/span>\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">GreetingResource<\/span> <span class=\"o\">{<\/span>\n    <span class=\"nd\">@GET<\/span>\n    <span class=\"nd\">@Produces<\/span><span class=\"o\">(<\/span><span class=\"nc\">MediaType<\/span><span class=\"o\">.<\/span><span class=\"na\">TEXT_PLAIN<\/span><span class=\"o\">)<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">hello<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"s\">\"Hello from Quarkus\"<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0646 \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u0628\u0648\u0645\u06cc \u0628\u0627 Quarkus\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 Maven \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>.\/mvnw package -Pnative\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0627\u062c\u0631\u0627\u06cc\u06cc \u0628\u0648\u0645\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0633\u0631\u06cc\u0639\u062a\u0631 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062c\u0627\u0648\u0627 \u0633\u0646\u062a\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>Spring Cloud Function \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0646 \u0628\u0647 \u0637\u0648\u0631 \u06af\u0633\u062a\u0631\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0645. \u0627\u06cc\u0646 \u06cc\u06a9 \u0645\u062f\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u06cc\u06a9\u0646\u0648\u0627\u062e\u062a \u0631\u0627 \u062f\u0631 \u0628\u06cc\u0646 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0645\u062e\u062a\u0644\u0641 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0645\u0646\u0637\u0642 \u062a\u062c\u0627\u0631\u06cc \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u0648\u0627\u0628\u0639 \u0633\u0627\u062f\u0647 \u062c\u0627\u0648\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nd\">@SpringBootApplication<\/span>\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">Application<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">SpringApplication<\/span><span class=\"o\">.<\/span><span class=\"na\">run<\/span><span class=\"o\">(<\/span><span class=\"nc\">Application<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">,<\/span> <span class=\"n\">args<\/span><span class=\"o\">);<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"nd\">@Bean<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">Function<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">,<\/span> <span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"nf\">uppercase<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nl\">String:<\/span><span class=\"o\">:<\/span><span class=\"n\">toUpperCase<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0633\u0627\u062f\u0647 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0647 \u062d\u0631\u0648\u0641 \u0628\u0632\u0631\u06af \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u067e\u0644\u062a\u0641\u0631\u0645\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u0645\u062e\u062a\u0644\u0641\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 AWS Lambda\u060c Azure Functions \u0648 Google Cloud Functions \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>Micronaut \u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0647\u0627 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0632\u0648\u062f\u0647\u0646\u06af\u0627\u0645 \u0648 \u06a9\u0627\u0647\u0634 \u0628\u0627\u0632\u062a\u0627\u0628 \u0622\u0646 \u0645\u0646\u062c\u0631 \u0628\u0647 \u0632\u0645\u0627\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0648 \u0645\u0635\u0631\u0641 \u06a9\u0645\u062a\u0631 \u062d\u0627\u0641\u0638\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0635\u0644\u06cc Micronaut \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nd\">@FunctionBean<\/span><span class=\"o\">(<\/span><span class=\"s\">\"hello\"<\/span><span class=\"o\">)<\/span>\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">HelloFunction<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">Function<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">,<\/span> <span class=\"nc\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">{<\/span>\n    <span class=\"nd\">@Override<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">apply<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">name<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"s\">\"Hello, \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">name<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"!\"<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0632\u0631\u06cc\u0642 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0632\u0645\u0627\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 Micronaut \u0648 AOP \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0627\u0632\u062a\u0627\u0628 \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc \u0628\u0631\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0627\u0646\u062a\u062e\u0627\u0628 \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u067e\u0631\u0648\u0698\u0647 Fn \u06cc\u06a9 \u067e\u0644\u062a \u0641\u0631\u0645 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0648 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0628\u0648\u0645\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u0646 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631 \u0627\u0633\u062a. \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0632\u0628\u0627\u0646 \u0627\u0632 \u062c\u0645\u0644\u0647 \u062c\u0627\u0648\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0631\u0648\u06cc \u0647\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0627\u0628\u0631\u06cc \u06cc\u0627 \u062f\u0627\u062e\u0644\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0633\u0627\u062f\u0647 Fn \u062f\u0631 \u062c\u0627\u0648\u0627 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">HelloFunction<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">handleRequest<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">input<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">String<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"n\">input<\/span> <span class=\"o\">==<\/span> <span class=\"kc\">null<\/span> <span class=\"o\">||<\/span> <span class=\"n\">input<\/span><span class=\"o\">.<\/span><span class=\"na\">isEmpty<\/span><span class=\"o\">())<\/span> <span class=\"o\">?<\/span> <span class=\"s\">\"world\"<\/span>  <span class=\"o\">:<\/span> <span class=\"n\">input<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">return<\/span> <span class=\"s\">\"Hello, \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">name<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"!\"<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Fn\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>fn create app myapp\nfn deploy --app myapp --local\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0647\u0627 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u06a9\u0647 \u0645\u062a\u0646\u0627\u0633\u0628 \u0628\u0627 \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0648 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0627\u0633\u062a. \u062f\u0631 \u062a\u062c\u0631\u0628\u0647 \u0645\u0646\u060c \u0627\u0646\u062a\u062e\u0627\u0628 \u0686\u0627\u0631\u0686\u0648\u0628 \u0627\u063a\u0644\u0628 \u0628\u0647 \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u062e\u0627\u0635 \u067e\u0631\u0648\u0698\u0647 \u0648 \u062a\u062e\u0635\u0635 \u062a\u06cc\u0645 \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631\u060c \u062a\u0648\u062c\u0647 \u0628\u0647 \u0639\u0648\u0627\u0645\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0632\u0645\u0627\u0646 \u0634\u0631\u0648\u0639 \u0633\u0631\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u0627\u0641\u0638\u0647 \u0648 \u0627\u062f\u063a\u0627\u0645 \u0628\u0627 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c AWS Lambda \u0628\u0627 \u062c\u0627\u0648\u0627\u060c \u0628\u0647 \u0637\u0648\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u062e\u062f\u0645\u0627\u062a AWS \u0627\u062f\u063a\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0627\u0646\u062a\u062e\u0627\u0628 \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u0647\u0627\u06cc AWS \u0645\u062d\u0648\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u06a9\u0648\u0627\u0631\u06a9\u0648\u0633 \u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0632\u0645\u0627\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u06cc\u0639 \u0648 \u062d\u0627\u0641\u0638\u0647 \u06a9\u0645 \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f\u060c \u0645\u06cc\u200c\u062f\u0631\u062e\u0634\u062f. \u0645\u0646 \u0627\u0632 \u0622\u0646 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0645 \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u0648 \u06a9\u0627\u0647\u0634 \u0647\u0632\u06cc\u0646\u0647 \u0647\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u062f\u0627\u0634\u062a\u06cc\u0645.<\/p>\n<p>\u0642\u062f\u0631\u062a Spring Cloud Function \u062f\u0631 \u0642\u0627\u0628\u0644 \u062d\u0645\u0644 \u0628\u0648\u062f\u0646 \u0622\u0646 \u0646\u0647\u0641\u062a\u0647 \u0627\u0633\u062a. \u0627\u06af\u0631 \u0631\u0648\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0627\u06cc \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062c\u0627\u0628\u062c\u0627\u06cc\u06cc \u0628\u06cc\u0646 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0628\u0631\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u06cc\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u062c\u0631\u0627 \u0634\u0648\u062f\u060c Spring Cloud Function \u06cc\u06a9 \u0645\u062f\u0644 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0633\u0627\u0632\u06af\u0627\u0631 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n<p>\u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0645\u0627\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0648 \u062d\u062f\u0627\u0642\u0644 \u0628\u0627\u0632\u062a\u0627\u0628 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 Micronaut \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06af\u0632\u06cc\u0646\u0647 \u0627\u06cc \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062d\u062f\u0627\u0642\u0644 \u0645\u0646\u0627\u0628\u0639 \u062f\u0627\u0631\u0646\u062f. \u0645\u0646 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0648\u06cc\u0698\u0647 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f\u06cc \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u0645\u062a\u0645\u0631\u06a9\u0632 \u062f\u0627\u0631\u06cc\u0645 \u0645\u0641\u06cc\u062f \u06cc\u0627\u0641\u062a\u0647 \u0627\u0645.<\/p>\n<p>\u067e\u0631\u0648\u0698\u0647 Fn \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631\u06cc \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u062d\u0645\u0644 \u0622\u0646 \u0645\u062a\u0645\u0627\u06cc\u0632 \u0627\u0633\u062a. \u0627\u06af\u0631 \u062f\u0631 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0686\u0646\u062f \u0627\u0628\u0631\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u062f\u0631 \u0645\u062d\u0644 \u062f\u0627\u0631\u06cc\u062f\u060c Fn Project \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u062b\u0627\u0628\u062a \u062f\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631\u060c \u0637\u0631\u0627\u062d\u06cc \u0628\u0627 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u062f\u0631 \u0630\u0647\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a. \u0647\u0645\u0647 \u0627\u06cc\u0646 \u0686\u0627\u0631\u0686\u0648\u0628\u200c\u0647\u0627 \u0627\u0632 \u0645\u0642\u06cc\u0627\u0633\u200c\u0628\u0646\u062f\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u0627\u0645\u0627 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f\u062a\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0631 \u0645\u06cc\u0632\u0627\u0646 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u062a\u0623\u062b\u06cc\u0631 \u0628\u06af\u0630\u0627\u0631\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 AWS Lambda \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u0627\u0632 DynamoDB \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">OrderProcessor<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">RequestHandler<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span><span class=\"o\">,<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">AmazonDynamoDB<\/span> <span class=\"n\">dynamoDB<\/span><span class=\"o\">;<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"nf\">OrderProcessor<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">dynamoDB<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">AmazonDynamoDBClientBuilder<\/span><span class=\"o\">.<\/span><span class=\"na\">standard<\/span><span class=\"o\">().<\/span><span class=\"na\">build<\/span><span class=\"o\">();<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"nd\">@Override<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span> <span class=\"nf\">handleRequest<\/span><span class=\"o\">(<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span> <span class=\"n\">input<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Context<\/span> <span class=\"n\">context<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"c1\">\/\/ Process order logic here<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">().<\/span><span class=\"na\">withStatusCode<\/span><span class=\"o\">(<\/span><span class=\"mi\">200<\/span><span class=\"o\">).<\/span><span class=\"na\">withBody<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Order processed\"<\/span><span class=\"o\">);<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc DynamoDB \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0647\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u06cc\u06a9 \u0631\u0648\u06cc\u06a9\u0631\u062f \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u0622\u0646 \u062f\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u200c\u0647\u0627 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">OrderProcessor<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">RequestHandler<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span><span class=\"o\">,<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">AmazonDynamoDB<\/span> <span class=\"n\">dynamoDB<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">AmazonDynamoDBClientBuilder<\/span><span class=\"o\">.<\/span><span class=\"na\">standard<\/span><span class=\"o\">().<\/span><span class=\"na\">build<\/span><span class=\"o\">();<\/span>\n\n    <span class=\"nd\">@Override<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span> <span class=\"nf\">handleRequest<\/span><span class=\"o\">(<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span> <span class=\"n\">input<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Context<\/span> <span class=\"n\">context<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"c1\">\/\/ Process order logic here<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">().<\/span><span class=\"na\">withStatusCode<\/span><span class=\"o\">(<\/span><span class=\"mi\">200<\/span><span class=\"o\">).<\/span><span class=\"na\">withBody<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Order processed\"<\/span><span class=\"o\">);<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u0632\u0645\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627\u06cc \u0644\u0627\u0645\u0628\u062f\u0627 \u0628\u0647\u0631\u0647 \u0645\u06cc\u200c\u0628\u0631\u062f \u0648 \u0628\u0647 \u0637\u0648\u0631 \u0628\u0627\u0644\u0642\u0648\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u062f \u0648 \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0645\u0639\u0645\u0627\u0631\u06cc \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631\u060c \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0646 \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0646\u06cc\u0632 \u0645\u0647\u0645 \u0627\u0633\u062a. \u062a\u0648\u0627\u0628\u0639 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u062f\u0648\u0646 \u062d\u0627\u0644\u062a \u0647\u0633\u062a\u0646\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0647\u0631 \u062d\u0627\u0644\u062a\u06cc \u0628\u0627\u06cc\u062f \u062e\u0627\u0631\u062c\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0627\u063a\u0644\u0628 \u0634\u0627\u0645\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f DynamoDB\u060c Redis \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 DynamoDB \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062d\u0627\u0644\u062a \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 Quarkus \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nd\">@ApplicationScoped<\/span>\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">OrderService<\/span> <span class=\"o\">{<\/span>\n    <span class=\"nd\">@Inject<\/span>\n    <span class=\"nc\">DynamoDbClient<\/span> <span class=\"n\">dynamoDB<\/span><span class=\"o\">;<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">saveOrder<\/span><span class=\"o\">(<\/span><span class=\"nc\">Order<\/span> <span class=\"n\">order<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">PutItemRequest<\/span> <span class=\"n\">putItemRequest<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">PutItemRequest<\/span><span class=\"o\">.<\/span><span class=\"na\">builder<\/span><span class=\"o\">()<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">tableName<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Orders\"<\/span><span class=\"o\">)<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">item<\/span><span class=\"o\">(<\/span><span class=\"nc\">Map<\/span><span class=\"o\">.<\/span><span class=\"na\">of<\/span><span class=\"o\">(<\/span>\n                <span class=\"s\">\"orderId\"<\/span><span class=\"o\">,<\/span> <span class=\"nc\">AttributeValue<\/span><span class=\"o\">.<\/span><span class=\"na\">builder<\/span><span class=\"o\">().<\/span><span class=\"na\">s<\/span><span class=\"o\">(<\/span><span class=\"n\">order<\/span><span class=\"o\">.<\/span><span class=\"na\">getId<\/span><span class=\"o\">()).<\/span><span class=\"na\">build<\/span><span class=\"o\">(),<\/span>\n                <span class=\"s\">\"customerName\"<\/span><span class=\"o\">,<\/span> <span class=\"nc\">AttributeValue<\/span><span class=\"o\">.<\/span><span class=\"na\">builder<\/span><span class=\"o\">().<\/span><span class=\"na\">s<\/span><span class=\"o\">(<\/span><span class=\"n\">order<\/span><span class=\"o\">.<\/span><span class=\"na\">getCustomerName<\/span><span class=\"o\">()).<\/span><span class=\"na\">build<\/span><span class=\"o\">(),<\/span>\n                <span class=\"s\">\"orderDate\"<\/span><span class=\"o\">,<\/span> <span class=\"nc\">AttributeValue<\/span><span class=\"o\">.<\/span><span class=\"na\">builder<\/span><span class=\"o\">().<\/span><span class=\"na\">s<\/span><span class=\"o\">(<\/span><span class=\"n\">order<\/span><span class=\"o\">.<\/span><span class=\"na\">getOrderDate<\/span><span class=\"o\">().<\/span><span class=\"na\">toString<\/span><span class=\"o\">()).<\/span><span class=\"na\">build<\/span><span class=\"o\">()<\/span>\n            <span class=\"o\">))<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">build<\/span><span class=\"o\">();<\/span>\n        <span class=\"n\">dynamoDB<\/span><span class=\"o\">.<\/span><span class=\"na\">putItem<\/span><span class=\"o\">(<\/span><span class=\"n\">putItemRequest<\/span><span class=\"o\">);<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"nc\">Order<\/span> <span class=\"nf\">getOrder<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">orderId<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">GetItemRequest<\/span> <span class=\"n\">getItemRequest<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">GetItemRequest<\/span><span class=\"o\">.<\/span><span class=\"na\">builder<\/span><span class=\"o\">()<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">tableName<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Orders\"<\/span><span class=\"o\">)<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">key<\/span><span class=\"o\">(<\/span><span class=\"nc\">Map<\/span><span class=\"o\">.<\/span><span class=\"na\">of<\/span><span class=\"o\">(<\/span><span class=\"s\">\"orderId\"<\/span><span class=\"o\">,<\/span> <span class=\"nc\">AttributeValue<\/span><span class=\"o\">.<\/span><span class=\"na\">builder<\/span><span class=\"o\">().<\/span><span class=\"na\">s<\/span><span class=\"o\">(<\/span><span class=\"n\">orderId<\/span><span class=\"o\">).<\/span><span class=\"na\">build<\/span><span class=\"o\">()))<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">build<\/span><span class=\"o\">();<\/span>\n        <span class=\"nc\">Map<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">String<\/span><span class=\"o\">,<\/span> <span class=\"nc\">AttributeValue<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">item<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dynamoDB<\/span><span class=\"o\">.<\/span><span class=\"na\">getItem<\/span><span class=\"o\">(<\/span><span class=\"n\">getItemRequest<\/span><span class=\"o\">).<\/span><span class=\"na\">item<\/span><span class=\"o\">();<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Order<\/span><span class=\"o\">(<\/span>\n            <span class=\"n\">item<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"s\">\"orderId\"<\/span><span class=\"o\">).<\/span><span class=\"na\">s<\/span><span class=\"o\">(),<\/span>\n            <span class=\"n\">item<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"s\">\"customerName\"<\/span><span class=\"o\">).<\/span><span class=\"na\">s<\/span><span class=\"o\">(),<\/span>\n            <span class=\"nc\">LocalDate<\/span><span class=\"o\">.<\/span><span class=\"na\">parse<\/span><span class=\"o\">(<\/span><span class=\"n\">item<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"s\">\"orderDate\"<\/span><span class=\"o\">).<\/span><span class=\"na\">s<\/span><span class=\"o\">())<\/span>\n        <span class=\"o\">);<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0647 \u062a\u0648\u0627\u0628\u0639 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0645\u0627 \u062a\u0632\u0631\u06cc\u0642 \u06a9\u0631\u062f \u062a\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u062d\u0627\u0644\u062a \u062f\u0627\u0631 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0628\u062f\u0648\u0646 \u062d\u0627\u0644\u062a \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f.<\/p>\n<p>\u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0632 \u062c\u0646\u0628\u0647 \u0647\u0627\u06cc \u0645\u0647\u0645 \u062a\u0648\u0633\u0639\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627 \u0648 \u062b\u0628\u062a \u0646\u0627\u0645 \u0627\u0633\u062a. \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u062f\u0631 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0634\u062f\u0647 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f\u060c \u0628\u0627\u06cc\u062f \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u062e\u0637\u0627\u0647\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0648 \u062b\u0628\u062a \u0645\u06cc \u0634\u0648\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0628\u0631\u06cc Spring \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nd\">@Component<\/span>\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ErrorHandler<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">Function<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Tuple2<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Context<\/span><span class=\"o\">&gt;,<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">{<\/span>\n\n    <span class=\"kd\">private<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">Logger<\/span> <span class=\"n\">logger<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">LoggerFactory<\/span><span class=\"o\">.<\/span><span class=\"na\">getLogger<\/span><span class=\"o\">(<\/span><span class=\"nc\">ErrorHandler<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">);<\/span>\n\n    <span class=\"nd\">@Override<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span> <span class=\"nf\">apply<\/span><span class=\"o\">(<\/span><span class=\"nc\">Tuple2<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Context<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">input<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">try<\/span> <span class=\"o\">{<\/span>\n            <span class=\"c1\">\/\/ Process the request<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nf\">processRequest<\/span><span class=\"o\">(<\/span><span class=\"n\">input<\/span><span class=\"o\">.<\/span><span class=\"na\">getT1<\/span><span class=\"o\">(),<\/span> <span class=\"n\">input<\/span><span class=\"o\">.<\/span><span class=\"na\">getT2<\/span><span class=\"o\">());<\/span>\n        <span class=\"o\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"o\">(<\/span><span class=\"nc\">Exception<\/span> <span class=\"n\">e<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">error<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Error processing request\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">e<\/span><span class=\"o\">);<\/span>\n            <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">()<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">withStatusCode<\/span><span class=\"o\">(<\/span><span class=\"mi\">500<\/span><span class=\"o\">)<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">withBody<\/span><span class=\"o\">(<\/span><span class=\"s\">\"An error occurred processing your request\"<\/span><span class=\"o\">);<\/span>\n        <span class=\"o\">}<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">private<\/span> <span class=\"nc\">APIGatewayProxyResponseEvent<\/span> <span class=\"nf\">processRequest<\/span><span class=\"o\">(<\/span><span class=\"nc\">APIGatewayProxyRequestEvent<\/span> <span class=\"n\">request<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Context<\/span> <span class=\"n\">context<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"c1\">\/\/ Actual request processing logic here<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">APIGatewayProxyResponseEvent<\/span><span class=\"o\">()<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">withStatusCode<\/span><span class=\"o\">(<\/span><span class=\"mi\">200<\/span><span class=\"o\">)<\/span>\n            <span class=\"o\">.<\/span><span class=\"na\">withBody<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Request processed successfully\"<\/span><span class=\"o\">);<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0647\u0645\u0647 \u0627\u0633\u062a\u062b\u0646\u0627\u0647\u0627 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0648 \u062b\u0628\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0648 \u0627\u0632 \u062e\u0637\u0627\u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644\u200c\u0646\u0634\u062f\u0647 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0627 \u0631\u0627 \u0628\u06cc\u200c\u0635\u062f\u0627 \u0627\u0632 \u06a9\u0627\u0631 \u0628\u06cc\u0627\u0646\u062f\u0627\u0632\u0646\u062f.<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645\u060c \u0627\u063a\u0644\u0628 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0647\u0645\u0627\u0647\u0646\u06af \u06a9\u0646\u06cc\u0645. AWS Step Functions \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 AWS Lambda \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647\u200c\u0627\u06cc \u0627\u0632 \u062a\u0639\u0631\u06cc\u0641 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0627\u0644\u062a \u062a\u0648\u0627\u0628\u0639 \u0645\u0631\u062d\u0644\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0648 \u062a\u0627\u0628\u0639 \u0644\u0627\u0645\u0628\u062f\u0627 \u0631\u0627 \u0647\u0645\u0627\u0647\u0646\u06af \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"Comment\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"A simple order processing workflow\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"StartAt\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"ProcessOrder\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"States\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"ProcessOrder\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"Type\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Task\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"Resource\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"arn:aws:lambda:us-west-2:123456789012:function:ProcessOrder\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"Next\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"SendConfirmation\"<\/span><span class=\"w\">\n    <\/span><span class=\"p\">},<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"SendConfirmation\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"Type\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Task\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"Resource\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"arn:aws:lambda:us-west-2:123456789012:function:SendConfirmation\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"End\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n  <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0627\u0644\u062a \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u062a\u0627\u0628\u0639 ProcessOrder \u0648 \u0633\u067e\u0633 \u06cc\u06a9 \u062a\u0627\u0628\u0639 SendConfirmation \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u062a\u0648\u0627\u0628\u0639 \u0645\u0631\u062d\u0644\u0647\u200c\u0627\u06cc\u060c \u0647\u0645\u0627\u0647\u0646\u06af\u200c\u0633\u0627\u0632\u06cc \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 \u0633\u0627\u062f\u0647 \u0648 \u0645\u062a\u0645\u0631\u06a9\u0632 Lambda\u060c \u06af\u0631\u062f\u0634\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0633\u0627\u0632\u06cc\u0645.<\/p>\n<p>\u0648\u0642\u062a\u06cc \u0646\u0648\u0628\u062a \u0628\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u0645\u06cc\u200c\u0631\u0633\u062f\u060c \u0647\u0631 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u0627 Quarkus\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u062d\u0627\u0634\u06cc\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc @QuarkusTest \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u200c\u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u062e\u0627\u0635 Quarkus \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nd\">@QuarkusTest<\/span>\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">GreetingResourceTest<\/span> <span class=\"o\">{<\/span>\n\n    <span class=\"nd\">@Test<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">testHelloEndpoint<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"n\">given<\/span><span class=\"o\">()<\/span>\n          <span class=\"o\">.<\/span><span class=\"na\">when<\/span><span class=\"o\">().<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\/hello\"<\/span><span class=\"o\">)<\/span>\n          <span class=\"o\">.<\/span><span class=\"na\">then<\/span><span class=\"o\">()<\/span>\n             <span class=\"o\">.<\/span><span class=\"na\">statusCode<\/span><span class=\"o\">(<\/span><span class=\"mi\">200<\/span><span class=\"o\">)<\/span>\n             <span class=\"o\">.<\/span><span class=\"na\">body<\/span><span class=\"o\">(<\/span><span class=\"n\">is<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Hello from Quarkus\"<\/span><span class=\"o\">));<\/span>\n    <span class=\"o\">}<\/span>\n\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062a\u0633\u062a \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 Quarkus \u0645\u0627 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0631\u0627 \u0628\u0647 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \/hello \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u067e\u0627\u0633\u062e \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0648\u0627\u0628\u0639 AWS Lambda\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 aws-lambda-java-tests \u0628\u0631\u0627\u06cc \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u200c\u0647\u0627\u06cc Lambda \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">LambdaHandlerTest<\/span> <span class=\"o\">{<\/span>\n\n    <span class=\"nd\">@Test<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">testHandleRequest<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">LambdaHandler<\/span> <span class=\"n\">handler<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">LambdaHandler<\/span><span class=\"o\">();<\/span>\n        <span class=\"nc\">APIGatewayProxyRequestEvent<\/span> <span class=\"n\">input<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">APIGatewayProxyRequestEvent<\/span><span class=\"o\">();<\/span>\n        <span class=\"n\">input<\/span><span class=\"o\">.<\/span><span class=\"na\">setQueryStringParameters<\/span><span class=\"o\">(<\/span><span class=\"nc\">Map<\/span><span class=\"o\">.<\/span><span class=\"na\">of<\/span><span class=\"o\">(<\/span><span class=\"s\">\"name\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"John\"<\/span><span class=\"o\">));<\/span>\n        <span class=\"nc\">Context<\/span> <span class=\"n\">context<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">TestContext<\/span><span class=\"o\">();<\/span>\n        <span class=\"nc\">APIGatewayProxyResponseEvent<\/span> <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">handler<\/span><span class=\"o\">.<\/span><span class=\"na\">handleRequest<\/span><span class=\"o\">(<\/span><span class=\"n\">input<\/span><span class=\"o\">,<\/span> <span class=\"n\">context<\/span><span class=\"o\">);<\/span>\n        <span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"mi\">200<\/span><span class=\"o\">,<\/span> <span class=\"n\">response<\/span><span class=\"o\">.<\/span><span class=\"na\">getStatusCode<\/span><span class=\"o\">());<\/span>\n        <span class=\"n\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Hello, John!\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">response<\/span><span class=\"o\">.<\/span><span class=\"na\">getBody<\/span><span class=\"o\">());<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062a\u0633\u062a \u06cc\u06a9 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648 \u0632\u0645\u06cc\u0646\u0647 \u062f\u0631\u0648\u0627\u0632\u0647 API \u0633\u0627\u062e\u062a\u06af\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u062a\u0627\u0628\u0639 Lambda \u0645\u0627 \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u067e\u0627\u0633\u062e \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u0645\u060c \u062a\u0648\u0633\u0639\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u062c\u0627\u0648\u0627 \u06cc\u06a9 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u063a\u0646\u06cc \u0627\u0632 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f. \u0647\u0631 \u0686\u0627\u0631\u0686\u0648\u0628\u06cc \u0646\u0642\u0627\u0637 \u0642\u0648\u062a \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u062f \u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u0627\u063a\u0644\u0628 \u0628\u0647 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0627\u0635\u060c \u062a\u062e\u0635\u0635 \u062a\u06cc\u0645 \u0648 \u0645\u062d\u06cc\u0637 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0647\u062f\u0641 \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0686\u0627\u0631\u0686\u0648\u0628\u200c\u0647\u0627 \u0648 \u067e\u06cc\u0631\u0648\u06cc \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0628\u0648\u0645\u06cc \u0627\u0628\u0631\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f\u060c \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0648 \u0645\u0642\u0631\u0648\u0646\u200c\u0628\u0647\u200c\u0635\u0631\u0641\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.<\/p>\n<hr\/>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/5-%da%86%d8%a7%d8%b1%da%86%d9%88%d8%a8-%d9%82%d8%af%d8%b1%d8%aa%d9%85%d9%86%d8%af-%d8%ac%d8%a7%d9%88%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%a8%d8%af%d9%88%d9%86-%d8%b3%d8%b1\/#101_%DA%A9%D8%AA%D8%A7%D8%A8\" >101 \u06a9\u062a\u0627\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/5-%da%86%d8%a7%d8%b1%da%86%d9%88%d8%a8-%d9%82%d8%af%d8%b1%d8%aa%d9%85%d9%86%d8%af-%d8%ac%d8%a7%d9%88%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%a8%d8%af%d9%88%d9%86-%d8%b3%d8%b1\/#%D9%85%D8%AE%D9%84%D9%88%D9%82%D8%A7%D8%AA_%D9%85%D8%A7\" >\u0645\u062e\u0644\u0648\u0642\u0627\u062a \u0645\u0627<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/5-%da%86%d8%a7%d8%b1%da%86%d9%88%d8%a8-%d9%82%d8%af%d8%b1%d8%aa%d9%85%d9%86%d8%af-%d8%ac%d8%a7%d9%88%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%a8%d8%af%d9%88%d9%86-%d8%b3%d8%b1\/#%D9%85%D8%A7_%D8%AF%D8%B1_%D8%AD%D8%A7%D9%84%D8%AA_%D9%85%D8%AA%D9%88%D8%B3%D8%B7_%E2%80%8B%E2%80%8B%D9%87%D8%B3%D8%AA%DB%8C%D9%85\" >\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0648\u0633\u0637 \u200b\u200b\u0647\u0633\u062a\u06cc\u0645<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"101_%DA%A9%D8%AA%D8%A7%D8%A8\"><\/span>\n<p>  101 \u06a9\u062a\u0627\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>101 \u06a9\u062a\u0627\u0628<\/strong> \u06cc\u06a9 \u0634\u0631\u06a9\u062a \u0627\u0646\u062a\u0634\u0627\u0631\u0627\u062a\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0647\u0645\u06a9\u0627\u0631\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u062a\u0623\u0633\u06cc\u0633 \u0634\u062f\u0647 \u0627\u0633\u062a <strong>\u0622\u0631\u0627\u0648 \u062c\u0648\u0634\u06cc<\/strong>. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0646\u0627\u0648\u0631\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc\u060c \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0634\u0627\u0631\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u06cc\u0627\u0631 \u067e\u0627\u06cc\u06cc\u0646 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u06cc\u0645\u2014\u0628\u0639\u0636\u06cc \u06a9\u062a\u0627\u0628\u200c\u0647\u0627 \u0642\u06cc\u0645\u062a \u067e\u0627\u06cc\u06cc\u0646\u06cc \u062f\u0627\u0631\u0646\u062f. <strong>4 \u062f\u0644\u0627\u0631<\/strong>&#8211; \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u062f\u0627\u0646\u0634 \u0628\u0627 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0631\u0627\u06cc \u0647\u0645\u0647.<\/p>\n<p>\u06a9\u062a\u0627\u0628 \u0645\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f <strong>\u06a9\u062f \u067e\u0627\u06a9 \u06af\u0644\u0627\u0646\u06af<\/strong> \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a. <\/p>\n<p>\u0645\u0646\u062a\u0638\u0631 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0647\u0627 \u0648 \u0627\u062e\u0628\u0627\u0631 \u0647\u06cc\u062c\u0627\u0646 \u0627\u0646\u06af\u06cc\u0632 \u0628\u0627\u0634\u06cc\u062f. \u0647\u0646\u06af\u0627\u0645 \u062e\u0631\u06cc\u062f \u06a9\u062a\u0627\u0628\u060c \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f <strong>\u0622\u0631\u0627\u0648 \u062c\u0648\u0634\u06cc<\/strong> \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0639\u0646\u0627\u0648\u06cc\u0646 \u0628\u06cc\u0634\u062a\u0631 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0644\u0630\u062a \u0628\u0631\u062f\u0646 \u0627\u0632 \u0644\u06cc\u0646\u06a9 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <strong>\u062a\u062e\u0641\u06cc\u0641 \u0647\u0627\u06cc \u0648\u06cc\u0698\u0647<\/strong>!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AE%D9%84%D9%88%D9%82%D8%A7%D8%AA_%D9%85%D8%A7\"><\/span>\n<p>  \u0645\u062e\u0644\u0648\u0642\u0627\u062a \u0645\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062d\u062a\u0645\u0627\u064b \u062e\u0644\u0627\u0642\u06cc\u062a \u0647\u0627\u06cc \u0645\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<p><strong>\u0645\u0631\u06a9\u0632 \u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631<\/strong> | <strong>\u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631 \u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc \u0645\u0631\u06a9\u0632\u06cc<\/strong> | <strong>\u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631 \u0622\u0644\u0645\u0627\u0646 \u0645\u0631\u06a9\u0632\u06cc<\/strong> | <strong>\u0632\u0646\u062f\u06af\u06cc \u0647\u0648\u0634\u0645\u0646\u062f<\/strong> | <strong>\u062f\u0648\u0631\u0647 \u0647\u0627 \u0648 \u067e\u0698\u0648\u0627\u06a9 \u0647\u0627<\/strong> | <strong>\u0627\u0633\u0631\u0627\u0631 \u06af\u06cc\u062c \u06a9\u0646\u0646\u062f\u0647<\/strong> | <strong>\u0647\u0646\u062f\u0648\u062a\u0648\u0627<\/strong> | <strong>Elite Dev<\/strong> | <strong>\u0645\u062f\u0627\u0631\u0633 JS<\/strong><\/p>\n<hr\/>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%A7_%D8%AF%D8%B1_%D8%AD%D8%A7%D9%84%D8%AA_%D9%85%D8%AA%D9%88%D8%B3%D8%B7_%E2%80%8B%E2%80%8B%D9%87%D8%B3%D8%AA%DB%8C%D9%85\"><\/span>\n<p>  \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0648\u0633\u0637 \u200b\u200b\u0647\u0633\u062a\u06cc\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u0628\u06cc\u0646\u0634 \u06a9\u0648\u0622\u0644\u0627\u06cc \u0641\u0646\u06cc<\/strong> | <strong>\u062f\u0648\u0631\u0627\u0646 \u0648 \u067e\u0698\u0648\u0627\u06a9 \u062c\u0647\u0627\u0646<\/strong> | <strong>\u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631 \u0645\u0631\u06a9\u0632\u06cc \u0645\u062a\u0648\u0633\u0637<\/strong> | <strong>\u0631\u0627\u0632\u0647\u0627\u06cc \u06af\u06cc\u062c \u06a9\u0646\u0646\u062f\u0647 \u0631\u0633\u0627\u0646\u0647<\/strong> | <strong>\u0631\u0633\u0627\u0646\u0647 \u0639\u0644\u0645 \u0648 \u0639\u0635\u0631<\/strong> | <strong>\u0647\u0646\u062f\u0648\u062a\u0648\u0627\u06cc \u0645\u062f\u0631\u0646<\/strong><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u067e\u0631\u0641\u0631\u0648\u0634\u060c \u0627\u0632 \u0634\u0645\u0627 \u062f\u0639\u0648\u062a \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u062a\u0627\u0628 \u0647\u0627\u06cc \u0645\u0646 \u0631\u0627 \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f. \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0646 \u0631\u0627 \u062f\u0631 Medium \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u062d\u0645\u0627\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f. \u0645\u062a\u0634\u06a9\u0631\u0645 \u062d\u0645\u0627\u06cc\u062a \u0634\u0645\u0627 \u06cc\u0639\u0646\u06cc \u062f\u0646\u06cc\u0627! \u062a\u0648\u0633\u0639\u0647 \u0628\u062f\u0648\u0646 \u0633\u0631\u0648\u0631 \u062c\u0627\u0648\u0627 \u0631\u0648\u0634 \u0633\u0627\u062e\u062a \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0627 \u0645\u062a\u062d\u0648\u0644 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":93373,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fjsschools.com%2Fimages%2F0a29bb5d-3069-4895-a055-bc284ce83b36.webp","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-93372","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/93372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=93372"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/93372\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/93373"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=93372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=93372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=93372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}