{"id":104226,"date":"2025-04-02T10:16:43","date_gmt":"2025-04-02T05:46:43","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f\/"},"modified":"2025-04-02T10:16:43","modified_gmt":"2025-04-02T05:46:43","slug":"using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f\/","title":{"rendered":"\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u0646\u0634 \u0622\u0645\u0627\u0632\u0648\u0646 \u0628\u0631\u0627\u06cc \u0627\u0639\u0644\u0627\u0646 \u0647\u0627"},"content":{"rendered":"<div data-article-id=\"2309898\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 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\/using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f\/#%D9%85%D9%82%D8%AF%D9%85%D9%87\" >\u0645\u0642\u062f\u0645\u0647<\/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\/using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f\/#%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D9%84%DB%8C_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%A8%D9%87_%D8%B1%D9%88%D8%B2_%D8%B4%D8%AF%D9%87\" >\u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0637\u0631\u0627\u062d\u06cc \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f\/#%D8%A8%D9%87_%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%DB%8C_%D9%85%D8%A4%D9%84%D9%81%D9%87_%D9%87%D8%A7\" >\u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u0624\u0644\u0641\u0647 \u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f\/#%D8%A8%D9%87_%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%DB%8C_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_Terraform\" >\u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Terraform<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f\/#%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%D9%88_%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4_%D8%B1%D8%A7%D9%87_%D8%AD%D9%84\" >\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0631\u0627\u0647 \u062d\u0644<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/using-amazon-bedrock-knowledge-base-application-logs-for-notifications-328f\/#%D8%AE%D9%84%D8%A7%D8%B5%D9%87\" >\u062e\u0644\u0627\u0635\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D9%82%D8%AF%D9%85%D9%87\"><\/span>\n<p>  \u0645\u0642\u062f\u0645\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0642\u0628\u0644\u06cc \u060c \u06cc\u06a9 \u0631\u0627\u0647 \u062d\u0644 \u0645\u0635\u0631\u0641 \u062f\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u0646\u0634 \u0622\u0645\u0627\u0632\u0648\u0646 \u0628\u0633\u062a\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u060c \u0645\u0627 \u06cc\u06a9 \u0631\u0627\u0647 \u062d\u0644 \u0645\u0635\u0631\u0641 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062a\u0647\u06cc\u0647 \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644 \u0634\u063a\u0644 \u0628\u0627 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u06a9\u0634\u0634 \u0648\u0636\u0639\u06cc\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0647\u0645\u0627\u0646 \u0627\u0646\u062f\u0627\u0632\u0647 \u06a9\u0627\u0631\u0622\u0645\u062f \u0646\u0628\u0648\u062f. \u0627\u0632 \u0622\u0646 \u0632\u0645\u0627\u0646 \u060c \u0645\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u0646\u0634 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0628\u0647 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 CloudWatch \u0645\u0646\u062a\u0634\u0631 \u0645\u06cc \u06a9\u0646\u062f \u060c \u06a9\u0647 \u0641\u0631\u0635\u062a\u06cc \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0628\u0647\u062a\u0631 \u0628\u0627 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0641\u0634\u0627\u0631 \u0648\u0636\u0639\u06cc\u062a \u0628\u0631 \u0627\u0633\u0627\u0633 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u060c \u0646\u062d\u0648\u0647 \u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0631\u0627\u0647 \u062d\u0644 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0628\u0627 \u0637\u0631\u0627\u062d\u06cc \u062c\u062f\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D9%84%DB%8C_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%A8%D9%87_%D8%B1%D9%88%D8%B2_%D8%B4%D8%AF%D9%87\"><\/span>\n<p>  \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0637\u0631\u0627\u062d\u06cc \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0637\u0631\u0627\u062d\u06cc \u06a9\u0644\u06cc \u0631\u0627\u0647 \u062d\u0644 \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647 \u062f\u0631 \u0646\u0645\u0648\u062f\u0627\u0631 \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p><\/p>\n<p>\u0631\u0627\u0647 \u062d\u0644 \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647 \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\n<p>\u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u0646\u0634 Bedrock \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc CloudWatch \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a. \u06cc\u06a9 \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u062f\u0631 \u06af\u0631\u0648\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u06a9\u0631\u062f\u0646 \u0648\u0636\u0639\u06cc\u062a \u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0634\u063a\u0644\u06cc \u06a9\u0647 \u0645\u0637\u0627\u0628\u0642 \u0628\u0627 \u062d\u0627\u0644\u062a \u0646\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u0648 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0639\u0645\u0644\u06a9\u0631\u062f \u0644\u0627\u0645\u0628\u062f\u0627 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p>\u06cc\u06a9 \u062a\u0627\u0628\u0639 Lambda \u060c \u06a9\u0647 \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 Eventbridge \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u0628\u0647 \u0637\u0648\u0631 \u062f\u0648\u0631\u0647 \u0627\u06cc \u06a9\u0627\u0631 \u0645\u0635\u0631\u0641 (AKA SYNC) \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u067e\u0627\u06cc\u0647 \u062f\u0627\u0646\u0634 \u0648 \u0645\u0646\u0628\u0639 \u062f\u0627\u062f\u0647 \u0645\u0634\u062e\u0635 \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u062f. \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0635\u0641 SQS \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u062f\u06cc\u06af\u0631 \u0644\u0627\u0632\u0645 \u0646\u06cc\u0633\u062a \u062d\u0630\u0641 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n<p>\u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0644\u0627\u0645\u0628\u062f\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0642\u0635\u062f \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0647\u0631 \u067e\u06cc\u0627\u0645 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0647 \u0627\u0632 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u06cc \u0634\u0648\u062f \u060c \u0627\u06cc\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0632 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631 \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u06a9\u0627\u0631 \u0645\u0635\u0631\u0641 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0633\u062a\u0647 \u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0627\u0631 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0627\u0634\u062f \u06cc\u0627 \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0627\u0634\u062f \u060c \u06cc\u06a9 \u0627\u0639\u0644\u0627\u0646 \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u062f\u0648 \u0645\u0648\u0636\u0648\u0639 SNS \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A8%D9%87_%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%DB%8C_%D9%85%D8%A4%D9%84%D9%81%D9%87_%D9%87%D8%A7\"><\/span>\n<p>  \u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u0624\u0644\u0641\u0647 \u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u0635\u0641 SQS \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0646\u06cc\u0633\u062a \u060c \u062a\u0646\u0647\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0644\u0627\u0645\u0628\u062f\u0627 \u06a9\u0647 \u06a9\u0627\u0631 \u0645\u0635\u0631\u0641 \u0631\u0627 \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u062f \u060c \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u062c\u0632\u0626\u06cc \u0627\u0633\u062a. \u06a9\u062f \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647 \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">import<\/span> <span class=\"n\">boto3<\/span>\n<span class=\"kn\">import<\/span> <span class=\"n\">json<\/span>\n<span class=\"kn\">from<\/span> <span class=\"n\">botocore.exceptions<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">ClientError<\/span>\n\n<span class=\"n\">bedrock_agent<\/span> <span class=\"o\">=<\/span> <span class=\"n\">boto3<\/span><span class=\"p\">.<\/span><span class=\"nf\">client<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">bedrock-agent<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">ssm<\/span> <span class=\"o\">=<\/span> <span class=\"n\">boto3<\/span><span class=\"p\">.<\/span><span class=\"nf\">client<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">ssm<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"k\">def<\/span> <span class=\"nf\">lambda_handler<\/span><span class=\"p\">(<\/span><span class=\"n\">event<\/span><span class=\"p\">,<\/span> <span class=\"n\">context<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n        <span class=\"c1\"># Retrieve the JSON config from Parameter Store\n<\/span>        <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ssm<\/span><span class=\"p\">.<\/span><span class=\"nf\">get_parameter<\/span><span class=\"p\">(<\/span><span class=\"n\">Name<\/span><span class=\"o\">=<\/span><span class=\"sh\">'<\/span><span class=\"s\">\/start-kb-ingestion-jobs\/config-json<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">config_json<\/span> <span class=\"o\">=<\/span> <span class=\"n\">response<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">Parameter<\/span><span class=\"sh\">'<\/span><span class=\"p\">][<\/span><span class=\"sh\">'<\/span><span class=\"s\">Value<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n        <span class=\"n\">config<\/span> <span class=\"o\">=<\/span> <span class=\"n\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">loads<\/span><span class=\"p\">(<\/span><span class=\"n\">config_json<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"k\">for<\/span> <span class=\"n\">record<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">config<\/span><span class=\"p\">:<\/span>\n            <span class=\"n\">knowledge_base_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">knowledge_base_id<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n            <span class=\"k\">for<\/span> <span class=\"n\">data_source_id<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">record<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">data_source_ids<\/span><span class=\"sh\">'<\/span><span class=\"p\">):<\/span>\n                <span class=\"c1\"># Start the ingestion job\n<\/span>                <span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Starting ingestion job for data source <\/span><span class=\"si\">{<\/span><span class=\"n\">data_source_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> of knowledge base <\/span><span class=\"si\">{<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n                <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">bedrock_agent<\/span><span class=\"p\">.<\/span><span class=\"nf\">start_ingestion_job<\/span><span class=\"p\">(<\/span>\n                    <span class=\"n\">knowledgeBaseId<\/span><span class=\"o\">=<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">dataSourceId<\/span><span class=\"o\">=<\/span><span class=\"n\">data_source_id<\/span>\n                <span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">statusCode<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"mi\">200<\/span><span class=\"p\">,<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">body<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"sh\">'<\/span><span class=\"s\">Success<\/span><span class=\"sh\">'<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"k\">except<\/span> <span class=\"n\">ClientError<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">statusCode<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"mi\">500<\/span><span class=\"p\">,<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">body<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Client error: <\/span><span class=\"si\">{<\/span><span class=\"nf\">str<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"p\">)<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"k\">except<\/span> <span class=\"nb\">Exception<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">statusCode<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"mi\">500<\/span><span class=\"p\">,<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">body<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Unexpected error: <\/span><span class=\"si\">{<\/span><span class=\"nf\">str<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"p\">)<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span>\n        <span class=\"p\">}<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0647\u0645\u06cc\u0646 \u062d\u0627\u0644 \u060c \u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u0624\u0644\u0641\u0647 \u0627\u06cc \u06a9\u0647 \u0648\u0636\u0639\u06cc\u062a \u0634\u063a\u0644\u06cc \u0645\u0635\u0631\u0641 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0645\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0627\u0633\u062a. \u0627\u0648\u0644 \u060c \u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u0645 <code>check-kb-job-statuses<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f \u0644\u0627\u0645\u0628\u062f\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0647\u062f\u0641 \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0627\u0633\u062a. \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0635\u0641\u062d\u0647 \u0641\u06cc\u0644\u062a\u0631\u0647\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0631\u0648\u0647 Log \u0627\u0632 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 CloudWatch Logs \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0631\u06cc\u0627\u0641\u062a \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0639\u0645\u0644\u06a9\u0631\u062f \u0641\u0634\u0631\u062f\u0647 \u0634\u062f\u0647 \u060c Base64 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0634\u062f\u0647 \u0648 Batched \u0627\u0633\u062a. \u0645\u0646 \u062a\u0648\u0627\u0646\u0633\u062a\u0645 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u06cc\u0646 \u0633\u0624\u0627\u0644 StackOverflow \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u0645 \u06a9\u0647 \u062f\u0627\u0631\u0627\u06cc \u06a9\u062f \u062f\u0642\u06cc\u0642\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0627\u0648\u0644\u06cc\u0646 \u067e\u0627\u0633\u062e \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645.<\/p>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u060c \u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u062f\u0627\u0646\u06cc\u0645 \u06a9\u0647 \u06cc\u06a9 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0686\u0647 \u0634\u06a9\u0644\u06cc \u0627\u0633\u062a. \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0632 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0627\u0646\u0634 \u062f\u0631 \u0645\u0633\u062a\u0646\u062f\u0627\u062a AWS \u060c \u0642\u0627\u0644\u0628 \u06a9\u0644\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0631\u0648\u06cc\u062f\u0627\u062f \u0634\u063a\u0644\u06cc \u062f\u0631 \u0645\u0635\u0631\u0641 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u060c \u0627\u0645\u0627 \u062a\u0631\u062c\u06cc\u062d\u0627\u064b \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u06cc\u06a9 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0648\u0627\u0631\u062f\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0631\u0648\u06cc\u062f\u0627\u062f \u062a\u06a9\u0645\u06cc\u0644 \u0634\u063a\u0644 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0631 \u0645\u0648\u0641\u0642 \u0636\u0628\u0637 \u0645\u06cc \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\">\"event_timestamp\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">1740895462316<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"event\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"ingestion_job_id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"W0V45LVZY6\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"data_source_id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"ATUWOVZJOD\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"ingestion_job_status\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"COMPLETE\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"knowledge_base_arn\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"arn:aws:bedrock:us-east-1:<redacted>:knowledge-base\/R1K1UIZKKQ\"<\/redacted><\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"resource_statistics\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"number_of_resources_updated\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">366<\/span><span class=\"p\">,<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"number_of_resources_ingested\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"number_of_resources_deleted\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"number_of_resources_with_metadata_updated\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"number_of_resources_failed\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">15<\/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=\"nl\">\"event_version\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"1.0\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"event_type\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"StartIngestionJob.StatusChanged\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"level\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"INFO\"<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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>\u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0628\u0627\u06cc\u062f \u062c\u0632\u0626\u06cc\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0632 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0646\u062f:<\/p>\n<ol>\n<li>\n<p>\u0634\u0646\u0627\u0633\u0647 \u067e\u0627\u06cc\u0647 \u062f\u0627\u0646\u0634 \u060c \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u0631\u0632\u0634 \u0622\u0646 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0634\u0648\u062f <code>event.knowledge_base_arn<\/code>\u060c \u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635 \u0628\u0639\u062f \u0627\u0632 <code>\/<\/code>\u0628\u0634\u0631<\/p>\n<\/li>\n<li>\n<p>\u0634\u0646\u0627\u0633\u0647 \u0645\u0646\u0628\u0639 \u062f\u0627\u062f\u0647 \u060c \u06a9\u0647 \u0645\u0642\u062f\u0627\u0631 \u0622\u0646 \u0627\u0633\u062a <code>event.data_source_id<\/code> \u0645\u06cc\u062f\u0627\u0646<\/p>\n<\/li>\n<li>\n<p>\u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631 \u0645\u0635\u0631\u0641 \u060c \u06a9\u0647 \u0627\u0631\u0632\u0634 \u0622\u0646 \u0627\u0633\u062a <code>event.ingestion_job_id<\/code> \u0645\u06cc\u062f\u0627\u0646<\/p>\n<\/li>\n<\/ol>\n<p>\u0627\u06af\u0631\u0686\u0647 \u0645\u0627 \u0642\u0627\u062f\u0631 \u0628\u0647 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u062a\u0645\u0627\u0645 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u0639\u0644\u0627\u0646 \u0647\u0633\u062a\u06cc\u0645 \u060c \u0627\u0645\u0627 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0634\u0627\u0645\u0644 \u062e\u0631\u0627\u0628\u06cc \u0647\u0627\u06cc \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u0645\u062d\u062a\u0648\u0627\u06cc Verbose \u0646\u06cc\u0633\u062a \u06a9\u0647 \u0645\u0627 \u0627\u0632 \u067e\u0627\u0633\u062e \u0622\u0646 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>GetIngestionJob<\/code> \u0639\u0645\u0644 API. \u0627\u06af\u0631\u0686\u0647 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u06a9\u0645\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0627\u0633\u062a \u060c \u0627\u0645\u0627 \u0645\u0627 \u0647\u0646\u0648\u0632 \u0647\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u0648\u062f\u0646 \u0628\u0627 API \u062a\u0645\u0627\u0633 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06af\u0631\u0641\u062a. \u0639\u0645\u0644\u06a9\u0631\u062f \u0644\u0627\u0645\u0628\u062f\u0627 \u062d\u0627\u0635\u0644 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u0628\u0627\u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">import<\/span> <span class=\"n\">base64<\/span>\n<span class=\"kn\">import<\/span> <span class=\"n\">boto3<\/span>\n<span class=\"kn\">import<\/span> <span class=\"n\">gzip<\/span>\n<span class=\"kn\">import<\/span> <span class=\"n\">json<\/span>\n<span class=\"kn\">from<\/span> <span class=\"n\">botocore.exceptions<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">ClientError<\/span>\n\n<span class=\"n\">bedrock_agent<\/span> <span class=\"o\">=<\/span> <span class=\"n\">boto3<\/span><span class=\"p\">.<\/span><span class=\"nf\">client<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">bedrock-agent<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">ssm<\/span> <span class=\"o\">=<\/span> <span class=\"n\">boto3<\/span><span class=\"p\">.<\/span><span class=\"nf\">client<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">ssm<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">sns<\/span> <span class=\"o\">=<\/span> <span class=\"n\">boto3<\/span><span class=\"p\">.<\/span><span class=\"nf\">client<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">sns<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"k\">def<\/span> <span class=\"nf\">get_ssm_parameter<\/span><span class=\"p\">(<\/span><span class=\"n\">name<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ssm<\/span><span class=\"p\">.<\/span><span class=\"nf\">get_parameter<\/span><span class=\"p\">(<\/span><span class=\"n\">Name<\/span><span class=\"o\">=<\/span><span class=\"n\">name<\/span><span class=\"p\">,<\/span> <span class=\"n\">WithDecryption<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">response<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">Parameter<\/span><span class=\"sh\">'<\/span><span class=\"p\">][<\/span><span class=\"sh\">'<\/span><span class=\"s\">Value<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n\n\n<span class=\"k\">def<\/span> <span class=\"nf\">get_ingestion_job<\/span><span class=\"p\">(<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">data_source_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">ingestion_job_id<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">bedrock_agent<\/span><span class=\"p\">.<\/span><span class=\"nf\">get_ingestion_job<\/span><span class=\"p\">(<\/span>\n        <span class=\"n\">knowledgeBaseId<\/span><span class=\"o\">=<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">dataSourceId<\/span><span class=\"o\">=<\/span><span class=\"n\">data_source_id<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">ingestionJobId<\/span><span class=\"o\">=<\/span><span class=\"n\">ingestion_job_id<\/span>\n    <span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">response<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">ingestionJob<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n\n\n<span class=\"k\">def<\/span> <span class=\"nf\">lambda_handler<\/span><span class=\"p\">(<\/span><span class=\"n\">event<\/span><span class=\"p\">,<\/span> <span class=\"n\">context<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n        <span class=\"n\">success_sns_topic_arn<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">get_ssm_parameter<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">\/check-kb-ingestion-job-statuses\/success-sns-topic-arn<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">failure_sns_topic_arn<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">get_ssm_parameter<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">\/check-kb-ingestion-job-statuses\/failure-sns-topic-arn<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"n\">encoded_zipped_data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">event<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">awslogs<\/span><span class=\"sh\">'<\/span><span class=\"p\">][<\/span><span class=\"sh\">'<\/span><span class=\"s\">data<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n        <span class=\"n\">zipped_data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">base64<\/span><span class=\"p\">.<\/span><span class=\"nf\">b64decode<\/span><span class=\"p\">(<\/span><span class=\"n\">encoded_zipped_data<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">loads<\/span><span class=\"p\">(<\/span><span class=\"n\">gzip<\/span><span class=\"p\">.<\/span><span class=\"nf\">decompress<\/span><span class=\"p\">(<\/span><span class=\"n\">zipped_data<\/span><span class=\"p\">))<\/span>\n        <span class=\"n\">log_events<\/span> <span class=\"o\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">logEvents<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n        <span class=\"k\">for<\/span> <span class=\"n\">log_event<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">log_events<\/span><span class=\"p\">:<\/span>\n            <span class=\"n\">message<\/span> <span class=\"o\">=<\/span> <span class=\"n\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">loads<\/span><span class=\"p\">(<\/span><span class=\"n\">log_event<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">message<\/span><span class=\"sh\">'<\/span><span class=\"p\">])<\/span>\n            <span class=\"n\">knowledge_base_arn<\/span> <span class=\"o\">=<\/span> <span class=\"n\">message<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">event<\/span><span class=\"sh\">'<\/span><span class=\"p\">][<\/span><span class=\"sh\">'<\/span><span class=\"s\">knowledge_base_arn<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n            <span class=\"n\">knowledge_base_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">knowledge_base_arn<\/span><span class=\"p\">.<\/span><span class=\"nf\">split<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">\/<\/span><span class=\"sh\">'<\/span><span class=\"p\">)[<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span>\n            <span class=\"n\">data_source_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">message<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">event<\/span><span class=\"sh\">'<\/span><span class=\"p\">][<\/span><span class=\"sh\">'<\/span><span class=\"s\">data_source_id<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n            <span class=\"n\">ingestion_job_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">message<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">event<\/span><span class=\"sh\">'<\/span><span class=\"p\">][<\/span><span class=\"sh\">'<\/span><span class=\"s\">ingestion_job_id<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n\n            <span class=\"nf\">print<\/span><span class=\"p\">(<\/span>\n                <span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Checking ingestion job status for knowledge base <\/span><span class=\"si\">{<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> data source <\/span><span class=\"si\">{<\/span><span class=\"n\">data_source_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> job <\/span><span class=\"si\">{<\/span><span class=\"n\">ingestion_job_id<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n            <span class=\"n\">ingestion_job<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">get_ingestion_job<\/span><span class=\"p\">(<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">data_source_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">ingestion_job_id<\/span><span class=\"p\">)<\/span>\n            <span class=\"nf\">print<\/span><span class=\"p\">(<\/span>\n                <span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Ingestion job summary: <\/span><span class=\"se\">\\n\\n<\/span><span class=\"si\">{<\/span><span class=\"n\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">dumps<\/span><span class=\"p\">(<\/span><span class=\"n\">ingestion_job<\/span><span class=\"p\">,<\/span> <span class=\"n\">indent<\/span><span class=\"o\">=<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"n\">sort_keys<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">default<\/span><span class=\"o\">=<\/span><span class=\"nb\">str<\/span><span class=\"p\">)<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n            <span class=\"n\">job_status<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ingestion_job<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">status<\/span><span class=\"sh\">'<\/span><span class=\"p\">]<\/span>\n            <span class=\"k\">if<\/span> <span class=\"n\">job_status<\/span> <span class=\"o\">==<\/span> <span class=\"sh\">'<\/span><span class=\"s\">COMPLETE<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span>\n                <span class=\"n\">sns<\/span><span class=\"p\">.<\/span><span class=\"nf\">publish<\/span><span class=\"p\">(<\/span>\n                    <span class=\"n\">TopicArn<\/span><span class=\"o\">=<\/span><span class=\"n\">success_sns_topic_arn<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">Subject<\/span><span class=\"o\">=<\/span><span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Ingestion job for knowledge base <\/span><span class=\"si\">{<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> data source <\/span><span class=\"si\">{<\/span><span class=\"n\">data_source_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> job <\/span><span class=\"si\">{<\/span><span class=\"n\">ingestion_job_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> Completed<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">Message<\/span><span class=\"o\">=<\/span><span class=\"n\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">dumps<\/span><span class=\"p\">(<\/span><span class=\"n\">ingestion_job<\/span><span class=\"p\">,<\/span> <span class=\"n\">indent<\/span><span class=\"o\">=<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"n\">sort_keys<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">default<\/span><span class=\"o\">=<\/span><span class=\"nb\">str<\/span><span class=\"p\">)<\/span>\n                <span class=\"p\">)<\/span>\n            <span class=\"k\">elif<\/span> <span class=\"n\">job_status<\/span> <span class=\"o\">==<\/span> <span class=\"sh\">'<\/span><span class=\"s\">FAILED<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span>\n                <span class=\"n\">sns<\/span><span class=\"p\">.<\/span><span class=\"nf\">publish<\/span><span class=\"p\">(<\/span>\n                    <span class=\"n\">TopicArn<\/span><span class=\"o\">=<\/span><span class=\"n\">failure_sns_topic_arn<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">Subject<\/span><span class=\"o\">=<\/span><span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Ingestion job for knowledge base <\/span><span class=\"si\">{<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> data source <\/span><span class=\"si\">{<\/span><span class=\"n\">data_source_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> job <\/span><span class=\"si\">{<\/span><span class=\"n\">ingestion_job_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> FAILED<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">Message<\/span><span class=\"o\">=<\/span><span class=\"n\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">dumps<\/span><span class=\"p\">(<\/span><span class=\"n\">ingestion_job<\/span><span class=\"p\">,<\/span> <span class=\"n\">indent<\/span><span class=\"o\">=<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"n\">sort_keys<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">default<\/span><span class=\"o\">=<\/span><span class=\"nb\">str<\/span><span class=\"p\">)<\/span>\n                <span class=\"p\">)<\/span>\n            <span class=\"k\">elif<\/span> <span class=\"n\">job_status<\/span> <span class=\"o\">==<\/span> <span class=\"sh\">'<\/span><span class=\"s\">STOPPED<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span>\n                <span class=\"n\">sns<\/span><span class=\"p\">.<\/span><span class=\"nf\">publish<\/span><span class=\"p\">(<\/span>\n                    <span class=\"n\">TopicArn<\/span><span class=\"o\">=<\/span><span class=\"n\">failure_sns_topic_arn<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">Subject<\/span><span class=\"o\">=<\/span><span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Ingestion job for knowledge base <\/span><span class=\"si\">{<\/span><span class=\"n\">knowledge_base_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> data source <\/span><span class=\"si\">{<\/span><span class=\"n\">data_source_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> job <\/span><span class=\"si\">{<\/span><span class=\"n\">ingestion_job_id<\/span><span class=\"si\">}<\/span><span class=\"s\"> STOPPED<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">Message<\/span><span class=\"o\">=<\/span><span class=\"n\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">dumps<\/span><span class=\"p\">(<\/span><span class=\"n\">ingestion_job<\/span><span class=\"p\">,<\/span> <span class=\"n\">indent<\/span><span class=\"o\">=<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"n\">sort_keys<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">default<\/span><span class=\"o\">=<\/span><span class=\"nb\">str<\/span><span class=\"p\">)<\/span>\n                <span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">statusCode<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"mi\">200<\/span><span class=\"p\">,<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">body<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"sh\">'<\/span><span class=\"s\">Success<\/span><span class=\"sh\">'<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"k\">except<\/span> <span class=\"n\">ClientError<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">statusCode<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"mi\">500<\/span><span class=\"p\">,<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">body<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Client error: <\/span><span class=\"si\">{<\/span><span class=\"nf\">str<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"p\">)<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"k\">except<\/span> <span class=\"nb\">Exception<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">statusCode<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"mi\">500<\/span><span class=\"p\">,<\/span>\n            <span class=\"sh\">'<\/span><span class=\"s\">body<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">'<\/span><span class=\"s\">Unexpected error: <\/span><span class=\"si\">{<\/span><span class=\"nf\">str<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"p\">)<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span>\n        <span class=\"p\">}<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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>\u0633\u0631\u0627\u0646\u062c\u0627\u0645 \u060c \u0645\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u062f\u0631 \u06af\u0631\u0648\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0642\u0635\u062f \u062a\u062d\u0648\u06cc\u0644 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0627\u0646\u0634 \u062f\u0627\u0646\u0634 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u0645\u0627 \u0641\u0642\u0637 \u0628\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0631\u0627\u06cc \u0627\u062a\u0645\u0627\u0645 \u0634\u063a\u0644 \u0645\u0635\u0631\u0641 \u0639\u0644\u0627\u0642\u0647 \u0645\u0646\u062f\u06cc\u0645 \u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645. \u062f\u0648 \u0632\u0645\u06cc\u0646\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0647\u062f\u0641 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645:<\/p>\n<ol>\n<li>\n<p>\u062f\u0631 <code>event_type<\/code> \u0642\u0633\u0645\u062a \u0628\u0627 \u0645\u0642\u062f\u0627\u0631 <code>StartIngestionJob.StatusChanged<\/code>\u0628\u0634\u0631<\/p>\n<\/li>\n<li>\n<p>\u062f\u0631 <code>event.ingestion_job_status<\/code> \u0632\u0645\u06cc\u0646\u0647 \u0628\u0627 \u0645\u0642\u062f\u0627\u0631 \u0645\u0637\u0627\u0628\u0642 \u0628\u0627 \u06cc\u06a9\u06cc \u0627\u0632 <code>COMPLETE<\/code>\u0628\u0627 <code>FAILED<\/code>\u0628\u0627 <code>CRAWLING_COMPLETED<\/code>\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0646\u0645\u0648\u0646\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0627\u0631 \u0645\u0635\u0631\u0641 \u062f\u0627\u062f\u0647 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<\/li>\n<\/ol>\n<p>\u0628\u0631 \u0627\u0633\u0627\u0633 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0622\u0632\u0645\u0627\u06cc\u0634\u0627\u062a \u060c \u0627\u0644\u0641 <code>CRAWLING_COMPLETED<\/code> \u0627\u06cc\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0646\u0634\u0627\u0646\u06af\u0631 \u062a\u06a9\u0645\u06cc\u0644 \u06a9\u0627\u0645\u0644 \u06a9\u0627\u0631 \u0645\u0635\u0631\u0641 \u0646\u06cc\u0633\u062a. \u0628\u0648\u0647\u0627 <code>COMPLETE<\/code> (\u0648 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b <code>FAILED<\/code>) \u0631\u0648\u06cc\u062f\u0627\u062f \u0647\u0645\u06cc\u0634\u0647 \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u06a9\u0627\u0631 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 <code>COMPLETE<\/code> \u0648\u062a <code>FAILED<\/code> \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646 \u060c \u0645\u062a\u0648\u0642\u0641 \u06a9\u0631\u062f\u0646 \u0634\u063a\u0644 \u06cc\u06a9 \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u06cc \u06a9\u0646\u062f \u0648 \u0647\u06cc\u0686 \u0627\u0631\u0632\u0634 \u0648\u0636\u0639\u06cc\u062a\u06cc \u0628\u0631\u0627\u06cc \u0622\u0646 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 \u0627\u0632 \u0637\u0631\u0641 AWS \u06cc\u06a9 \u0627\u0634\u062a\u0628\u0627\u0647 \u0627\u0633\u062a \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u0646\u062f\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc AWS \u0631\u0627 \u0628\u0631\u0627\u06cc \u0622\u0646 \u0628\u0627\u0632 \u0645\u06cc \u06a9\u0646\u0645. \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u060c \u0645\u0627 \u0647\u0646\u0648\u0632 \u0647\u0645 \u0627\u0636\u0627\u0641\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f <code>STOPPED<\/code> \u0628\u0647 \u062e\u0627\u0637\u0631 \u06a9\u0627\u0645\u0644 \u0628\u0648\u062f\u0646 \u0628\u0647 \u0641\u06cc\u0644\u062a\u0631.<\/p>\n<p>\u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 \u0627\u0644\u06af\u0648\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u0631\u0627\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 JSON \u060c \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u06cc\u0627\u0646 \u0645\u0631\u06a9\u0628 \u062e\u0648\u062f \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0646\u0648\u0639 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648 \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0631 \u0645\u0635\u0631\u0641 \u0631\u0627 \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>{$.event_type = \"StartIngestionJob.StatusChanged\" &amp;&amp; ($.event.ingestion_job_status = \"COMPLETE\" || $.event.ingestion_job_status = \"FAILED\" || $.event.ingestion_job_status = \"STOPPED\")}\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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>\u0645\u0627 \u0627\u0628\u062a\u062f\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0644\u06af\u0648\u06cc \u0631\u0627 \u062f\u0631 \u06af\u0641\u062a\u06af\u0648\u06cc \u0627\u06cc\u062c\u0627\u062f \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a AWS \u0628\u062f\u0648\u0646 \u0627\u06cc\u062c\u0627\u062f \u0641\u06cc\u0644\u062a\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u0645. \u0628\u0639\u062f\u0627\u064b \u060c \u0645\u0627 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062a\u0635\u0648\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0646\u0686\u0647 \u06a9\u0647 \u06af\u0641\u062a\u06af\u0648 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudc37wro7315ubpctygc.png\" alt=\"\u0627\u0644\u06af\u0648\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u062f\u0631 \u06af\u0641\u062a\u06af\u0648\u06cc \u0627\u06cc\u062c\u0627\u062f \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9\" loading=\"lazy\" width=\"800\" height=\"818\" title=\"\"><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u060c \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u062f\u0631 \u06af\u0631\u0648\u0647 log \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0627\u0644\u06af\u0648\u06cc \u0646\u0627\u0645\u06af\u0630\u0627\u0631\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0645\u0634\u0647\u0648\u062f \u0627\u0633\u062a \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f. \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0627\u0646\u0634 \u0628\u0647 \u062c\u0631\u06cc\u0627\u0646 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a <code>bedrock\/knowledgebaselogs<\/code>\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u0645. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong>\u0627\u0644\u06af\u0648\u06cc \u062a\u0633\u062a<\/strong> \u062f\u06a9\u0645\u0647 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u0648\u0631\u0648\u062f\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0646\u062a\u0627\u06cc\u062c \u0622\u0632\u0645\u0648\u0646 \u062f\u0631 \u0628\u06cc\u0646 50 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u0645. \u0648\u0642\u0627\u06cc\u0639 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0632 \u06cc\u06a9 \u06a9\u0627\u0631 \u0645\u0635\u0631\u0641 \u0648\u0627\u062d\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u0648 \u0633\u0627\u06cc\u0631 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u06cc\u0627 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0646\u0627\u0628\u0639 \u06cc\u0627 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u063a\u06cc\u0631 \u0645\u0631\u062a\u0628\u0637 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A8%D9%87_%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%DB%8C_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_Terraform\"><\/span>\n<p>  \u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Terraform<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0637\u0631\u0627\u062d\u06cc \u062c\u062f\u06cc\u062f \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Terraform \u0631\u0627\u0647 \u062d\u0644 \u0627\u0635\u0644\u06cc \u0644\u0627\u0632\u0645 \u0627\u0633\u062a:<\/p>\n<ul>\n<li>\n<p>\u0635\u0641 SQS \u060c \u0645\u062c\u0648\u0632\u0647\u0627\u06cc IAM \u0645\u0631\u062a\u0628\u0637 \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc SSM \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p>\u0645\u062c\u0648\u0632 Lambda \u0631\u0627 \u0628\u0631\u0627\u06cc <code>check-kb-intgestion-job-statuses<\/code> \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06af\u0631\u0648\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u060c \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06af\u0631\u0648\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u0646\u0634 \u0628\u0633\u062a\u0631 \u0622\u0646 \u06af\u0632\u0627\u0631\u0634 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u062f \u060c \u0627\u0632 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 CloudWatch \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<\/ul>\n<p>\u062f\u0631 \u0622\u062e\u0631 \u060c \u0645\u0627 \u0628\u0647 \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight terraform\"><code><span class=\"k\">resource<\/span> <span class=\"s2\">\"aws_cloudwatch_log_subscription_filter\"<\/span> <span class=\"s2\">\"check_kb_ingestion_job_statuses\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">name<\/span>            <span class=\"p\">=<\/span> <span class=\"s2\">\"check-kb-ingestion-job-statuses\"<\/span>\n  <span class=\"nx\">log_group_name<\/span>  <span class=\"p\">=<\/span> <span class=\"kd\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">kb_app_log_group_name<\/span>\n  <span class=\"nx\">filter_pattern<\/span>  <span class=\"p\">=<\/span> <span class=\"s2\">\"{<\/span><span class=\"err\">$<\/span><span class=\"s2\">.event_type = <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">StartIngestionJob.StatusChanged<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\"> &amp;&amp; (<\/span><span class=\"err\">$<\/span><span class=\"s2\">.event.ingestion_job_status = <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">COMPLETE<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\"> || <\/span><span class=\"err\">$<\/span><span class=\"s2\">.event.ingestion_job_status = <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">FAILED<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\"> || <\/span><span class=\"err\">$<\/span><span class=\"s2\">.event.ingestion_job_status = <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">STOPPED<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">)}\"<\/span>\n  <span class=\"nx\">destination_arn<\/span> <span class=\"p\">=<\/span> <span class=\"nx\">aws_lambda_function<\/span><span class=\"p\">.<\/span><span class=\"nx\">check_kb_ingestion_job_statuses<\/span><span class=\"p\">.<\/span><span class=\"nx\">arn<\/span>\n  <span class=\"nx\">depends_on<\/span>      <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">aws_lambda_permission<\/span><span class=\"p\">.<\/span><span class=\"nx\">check_kb_ingestion_job_statuses<\/span><span class=\"p\">]<\/span>\n<span class=\"p\">}<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0646\u0627\u0645 \u06af\u0631\u0648\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0646\u0627\u0645 \u06af\u0631\u0648\u0647 \u0648\u0631\u0648\u062f \u0628\u0627\u06cc\u062f \u0627\u0632 \u0642\u0627\u0644\u0628 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 AWS \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0646\u062f \u060c \u06cc\u0639\u0646\u06cc <code>\/aws\/vendedlogs\/bedrock\/knowledge-base\/APPLICATION_LOGS\/<kb_id\/><\/code>\u060c \u06a9\u062c\u0627 <code><kb_id\/><\/code> \u0634\u0646\u0627\u0633\u0647 \u067e\u0627\u06cc\u0647 \u062f\u0627\u0646\u0634 \u0628\u0633\u062a\u0631 \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%D9%88_%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4_%D8%B1%D8%A7%D9%87_%D8%AD%D9%84\"><\/span>\n<p>  \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0631\u0627\u0647 \u062d\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<blockquote>\n<p>\u2705 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0627\u0645\u0644 \u0648 \u06a9\u062f \u0645\u0646\u0628\u0639 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f <code>5_kb_data_ingestion_via_logs<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062e\u0632\u0646 GitHub.<\/p>\n<\/blockquote>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u062a\u0633\u062a \u0631\u0627\u0647 \u062d\u0644 \u060c \u0634\u0645\u0627 \u0628\u0647 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u0646\u0634 \u0628\u0627 \u062d\u062f\u0627\u0642\u0644 \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u062f\u0627\u062f\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0645\u062d\u062a\u0648\u0627 \u0628\u0631\u0627\u06cc \u0645\u0635\u0631\u0641 \u0622\u0646 \u062f\u0631 \u06cc\u06a9 \u0633\u0637\u0644 S3 \u06cc\u0627 \u06cc\u06a9 \u0648\u0628 \u0633\u0627\u06cc\u062a \u062e\u0632\u0646\u062f\u0647 \u0628\u0627\u0634\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648\u06a9\u062a\u0648\u0631 \u062f\u0631 \u06a9\u0646\u0633\u0648\u0644 Bedrock \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f. \u0627\u0632 \u0637\u0631\u0641 \u062f\u06cc\u06af\u0631 \u060c \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u0646\u0634 \u0646\u0645\u0648\u0646\u0647 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Terraform \u0627\u0632 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0645\u0646 \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u0646\u0634 \u0622\u0645\u0627\u0632\u0648\u0646 \u0628\u0633\u062a\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631 \u0647\u0645\u0627\u0646 \u0645\u062e\u0632\u0646 GitHub \u062f\u0631 \u0632\u06cc\u0631 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a <code>2_knowledge_base<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc<\/p>\n<p>\u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646 \u060c \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0627\u0646\u0634 \u062f\u0627\u0646\u0634 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc CloudWatch \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0645\u0633\u062a\u0646\u062f\u0627\u062a AWS \u06cc\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Terraform \u0627\u0632 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0642\u0628\u0644\u06cc \u0645\u0646 \u060c \u0627\u0645\u06a9\u0627\u0646 \u0648\u0631\u0648\u062f \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u0646\u0634 \u0622\u0645\u0627\u0632\u0648\u0646 Bedrock \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0641\u0631\u0627\u0647\u0645 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631 \u0647\u0645\u0627\u0646 \u0645\u062e\u0632\u0646 GitHub \u062f\u0631 \u0632\u06cc\u0631 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a <code>4_kb_logging<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc<\/p>\n<p>\u0628\u0627 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u060c \u0631\u0627\u0647 \u062d\u0644 \u0631\u0627 \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u06cc\u062f:<\/p>\n<ol>\n<li>\n<p>\u0627\u0632 \u0631\u06cc\u0634\u0647 \u0645\u062e\u0632\u0646 GitHub \u06a9\u0644\u0648\u0646 \u0634\u062f\u0647 \u060c \u0628\u0647 \u0633\u0645\u062a \u0622\u0646 \u062d\u0631\u06a9\u062a \u06a9\u0646\u06cc\u062f <code>5_kb_data_ingestion_via_logs<\/code>\u0628\u0634\u0631<\/p>\n<\/li>\n<li>\n<p>\u06a9\u067e\u06cc \u06a9\u0631\u062f\u0646 <code>terraform.tfvars.example<\/code> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 <code>terraform.tfvars<\/code> \u0648 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u062f \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/p>\n<\/li>\n<\/ol>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>* By default, the `start-kb-ingestion-jobs` Lambda function runs daily at 0:00 UTC.\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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<ol>\n<li>\n<p>\u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc AWS \u062e\u0648\u062f \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p>\u062f\u0648\u06cc\u062f\u0646 <code>terraform init<\/code> \u0648 Terraform <code>apply -var-file terraform.tfvars<\/code>\u0628\u0634\u0631<\/p>\n<\/li>\n<\/ol>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u060c \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0647 \u0645\u0628\u0627\u062d\u062b SNS \u060c \u0631\u0627\u0647 \u062d\u0644 \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f <code>check-kb-ingestion-job-statuses-success<\/code> \u0648\u062a <code>check-kb-ingestion-job-statuses-failure<\/code> \u0628\u0631\u0627\u06cc \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0628\u0647 \u06af\u0648\u0646\u0647 \u0627\u06cc \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0627\u06cc\u0645\u06cc\u0644 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f. \u0627\u0634\u062a\u0631\u0627\u06a9 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u06cc\u0648\u0646\u062f \u062f\u0631 \u0627\u06cc\u0645\u06cc\u0644 \u0647\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qgc7kp9udosocl5sae8.png\" alt=\"\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0647 \u0645\u0628\u0627\u062d\u062b SNS\" loading=\"lazy\" width=\"800\" height=\"499\" title=\"\"><\/p>\n<p>\u0628\u0639\u062f \u060c \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f <code>start-kb-ingestion-jobs<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f \u0644\u0627\u0645\u0628\u062f\u0627 \u062f\u0631 \u06a9\u0646\u0633\u0648\u0644 \u0644\u0627\u0645\u0628\u062f\u0627.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgr4z2azb2evzfmwk902l.png\" alt=\"\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda Start-KB-Iningestion-Jobs\" loading=\"lazy\" width=\"800\" height=\"721\" title=\"\"><\/p>\n<p>\u0628\u0627 \u067e\u0627\u06cc\u0627\u0646 \u06a9\u0627\u0631 \u0648 \u0627\u062a\u0645\u0627\u0645 \u06a9\u0627\u0631 \u060c \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 CloudWatch \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0648 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0639\u0628\u0648\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0628\u0627\u06cc\u062f \u0641\u06cc\u0644\u062a\u0631 \u0634\u062f\u0647 \u0648 \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639 \u0631\u0633\u0627\u0646\u06cc \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f Lambda \u0627\u0631\u0633\u0627\u0644 \u0634\u0648\u062f \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0645\u0646\u062c\u0631 \u0628\u0647 \u0627\u06cc\u0645\u06cc\u0644\u0647\u0627\u06cc\u06cc \u0634\u0648\u062f \u06a9\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsu5iib2w9iok5s9pnvgi.png\" alt=\"\u0627\u0639\u0644\u0627\u0646 \u0627\u06cc\u0645\u06cc\u0644 \u0645\u0648\u0641\u0642\u06cc\u062a\" loading=\"lazy\" width=\"800\" height=\"950\" title=\"\"><\/p>\n<p>\u067e\u0633 \u0627\u0632 \u062a\u0623\u06cc\u06cc\u062f \u0631\u0627\u0647 \u062d\u0644 \u060c \u0627\u0634\u062a\u0631\u0627\u06a9 SNS \u0631\u0627 \u0628\u0631\u062f\u0627\u0634\u062a\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0645\u0648\u0627\u0631\u062f\u06cc \u06a9\u0647 \u0645\u062a\u0646\u0627\u0633\u0628 \u0628\u0627 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0634\u0645\u0627 \u0627\u0633\u062a \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0642\u0635\u062f \u0646\u062f\u0627\u0631\u06cc\u062f \u062f\u0627\u0646\u0634 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f \u060c \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0628\u0631\u062f\u0627\u0631 (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c \u0634\u0627\u062e\u0635 OSS) \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0647\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AE%D9%84%D8%A7%D8%B5%D9%87\"><\/span>\n<p>  \u062e\u0644\u0627\u0635\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u060c \u0645\u0627 \u0631\u0627\u0647 \u062d\u0644 \u0627\u0635\u0644\u06cc \u062f\u0627\u0646\u0634 \u067e\u0627\u06cc\u0647 Bedrock Base Data \u0631\u0627 \u0628\u0627 \u0627\u0637\u0644\u0627\u0639 \u0631\u0633\u0627\u0646\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0641\u0634\u0627\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc CloudWatch \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f\u06cc\u0645. \u0627\u06cc\u0646 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u0627\u0632 \u06cc\u06a9 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u06a9\u0634\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0632\u06cc \u0634\u062f\u0647 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0627\u0633\u062a \u0648 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0627\u0632 \u06cc\u06a9 \u0641\u06cc\u0644\u062a\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 Lambda \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u06af\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f \u060c \u0631\u0627\u0647 \u062d\u0644 \u0627\u06cc\u062f\u0647 \u0622\u0644 \u06cc\u06a9 \u0642\u0627\u0646\u0648\u0646 Eventbridge \u0628\u0631\u0627\u06cc \u0648\u0627\u06a9\u0646\u0634 \u0628\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0634\u063a\u0644\u06cc \u062f\u0631 \u0645\u0635\u0631\u0641 \u0628\u0648\u0645\u06cc \u0627\u0632 Bedrock \u0627\u0633\u062a. \u0633\u0631\u0648\u06cc\u0633 Bedrock \u0645\u062a\u0623\u0633\u0641\u0627\u0646\u0647 \u0627\u0645\u0631\u0648\u0632 \u0686\u0646\u06cc\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0645\u0646\u062a\u0634\u0631 \u0646\u0645\u06cc \u06a9\u0646\u062f \u060c \u0627\u0645\u0627 \u0645\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0645\u0648\u0631\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc AWS \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648\u06cc\u0698\u06af\u06cc \u06a9\u0631\u062f\u0645. \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06cc\u0646 \u0628\u0647 \u0632\u0648\u062f\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u0648\u062f \u0648 \u0645\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0627\u0647 \u062d\u0644 \u0645\u0635\u0631\u0641 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u06cc\u0634\u062a\u0631 \u062a\u06a9\u0627\u0645\u0644 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0631\u0627 \u0645\u0641\u06cc\u062f \u0648 \u062c\u0630\u0627\u0628 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f. \u0644\u0637\u0641\u0627\u064b \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0633\u0627\u06cc\u0631 \u067e\u0633\u062a \u0647\u0627\u06cc \u0648\u0628\u0644\u0627\u06af \u0645\u0646 \u062f\u0631 \u0648\u0628\u0644\u0627\u06af Avangards \u0627\u062d\u0633\u0627\u0633 \u0631\u0627\u062d\u062a\u06cc \u06a9\u0646\u06cc\u062f. \u0645\u0631\u0627\u0642\u0628\u062a \u0648 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0634\u0627\u062f!<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u062f\u0631 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0642\u0628\u0644\u06cc \u060c \u06cc\u06a9 \u0631\u0627\u0647 \u062d\u0644 \u0645\u0635\u0631\u0641 \u062f\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u0646\u0634 \u0622\u0645\u0627\u0632\u0648\u0646 \u0628\u0633\u062a\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u060c \u0645\u0627 \u06cc\u06a9 \u0631\u0627\u0647 \u062d\u0644 \u0645\u0635\u0631\u0641 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062a\u0647\u06cc\u0647 \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644 \u0634\u063a\u0644 \u0628\u0627 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u06a9\u0634\u0634 \u0648\u0636\u0639\u06cc\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0647\u0645\u0627\u0646 \u0627\u0646\u062f\u0627\u0632\u0647 \u06a9\u0627\u0631\u0622\u0645\u062f \u0646\u0628\u0648\u062f. \u0627\u0632 \u0622\u0646 \u0632\u0645\u0627\u0646 \u060c \u0645\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u0646\u0634 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":104227,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-104226","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\/104226","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=104226"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/104226\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/104227"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=104226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=104226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=104226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}