{"id":1799,"date":"2023-11-25T20:15:46","date_gmt":"2023-11-25T12:15:46","guid":{"rendered":"http:\/\/yushuoxin.xyz\/?p=1799"},"modified":"2023-11-25T20:24:33","modified_gmt":"2023-11-25T12:24:33","slug":"terraform-managed-lambda-routetablefailover","status":"publish","type":"post","link":"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/","title":{"rendered":"\u7528Terraform\u521b\u5efaLambda\u5b9e\u73b0AWS\u4e2dSDWAN\u5b9e\u4f8b\u7684\u8def\u7531\u81ea\u52a8\u5207\u6362"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/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-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E8%83%8C%E6%99%AF\" title=\"\u80cc\u666f\">\u80cc\u666f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E6%93%8D%E4%BD%9C%E6%AD%A5%E9%AA%A4\" title=\"\u64cd\u4f5c\u6b65\u9aa4\">\u64cd\u4f5c\u6b65\u9aa4<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E5%87%86%E5%A4%87%E6%AD%A5%E9%AA%A4\" title=\"\u51c6\u5907\u6b65\u9aa4\">\u51c6\u5907\u6b65\u9aa4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E5%88%9B%E5%BB%BASDWAN%E5%AE%9E%E4%BE%8B\" title=\"\u521b\u5efaSDWAN\u5b9e\u4f8b\">\u521b\u5efaSDWAN\u5b9e\u4f8b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E5%88%9B%E5%BB%BAlambda\" title=\"\u521b\u5efalambda\">\u521b\u5efalambda<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E5%88%9B%E5%BB%BAIAM%E6%89%A7%E8%A1%8C%E8%A7%92%E8%89%B2\" title=\"\u521b\u5efaIAM\u6267\u884c\u89d2\u8272\">\u521b\u5efaIAM\u6267\u884c\u89d2\u8272<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E5%88%9B%E5%BB%BAIAM_Policy%E7%AD%96%E7%95%A5\" title=\"\u521b\u5efaIAM Policy\u7b56\u7565\">\u521b\u5efaIAM Policy\u7b56\u7565<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E5%88%9B%E5%BB%BAlambda%E8%A7%A6%E5%8F%91%E5%99%A8\" title=\"\u521b\u5efalambda\u89e6\u53d1\u5668\">\u521b\u5efalambda\u89e6\u53d1\u5668<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E7%94%A8terraform%E5%88%9B%E5%BB%BA%E8%B5%84%E6%BA%90\" title=\"\u7528terraform\u521b\u5efa\u8d44\u6e90\">\u7528terraform\u521b\u5efa\u8d44\u6e90<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E5%8A%9F%E8%83%BD%E9%AA%8C%E8%AF%81\" title=\"\u529f\u80fd\u9a8c\u8bc1\">\u529f\u80fd\u9a8c\u8bc1<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/yushuoxin.top\/index.php\/2023\/11\/25\/terraform-managed-lambda-routetablefailover\/#%E6%80%BB%E7%BB%93\" title=\"\u603b\u7ed3\">\u603b\u7ed3<\/a><\/li><\/ul><\/nav><\/div>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%83%8C%E6%99%AF\"><\/span>\u80cc\u666f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4e3a\u4e86\u5b9e\u73b0\u5728AWS\u7684\u4e00\u4e2aVPC\u5185\u90e8\u7f72\u4e24\u4e2aSDWAN\u5b9e\u4f8b\uff0c\u5e76\u901a\u8fc7lambda\u5b9e\u73b0\u53cc\u673a\u70ed\u5907\u548c\u8def\u7531\u7684\u81ea\u52a8\u5207\u6362\uff0c\u6211\u4e4b\u524d\u5199\u8fc7\u5982\u4e0b\u535a\u5ba2\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-yushuoxin wp-block-embed-yushuoxin\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"ArkoL1mV6h\"><a href=\"https:\/\/yushuoxin.top\/index.php\/2021\/12\/16\/sdwan-instance-ha-and-route-failover-by-lambda-and-cloudwatch\/\">\u901a\u8fc7Lambda+CloudWatch\u5b9e\u73b0AWS\u4e2dSDWAN instance(vAER)\u53cc\u673a\u70ed\u5907+\u8def\u7531\u81ea\u52a8\u5207\u6362<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u300a \u901a\u8fc7Lambda+CloudWatch\u5b9e\u73b0AWS\u4e2dSDWAN instance(vAER)\u53cc\u673a\u70ed\u5907+\u8def\u7531\u81ea\u52a8\u5207\u6362 \u300b\u2014YuShuoxin\u7684\u5c0f\u7834\u7f51\u7ad9\" src=\"https:\/\/yushuoxin.top\/index.php\/2021\/12\/16\/sdwan-instance-ha-and-route-failover-by-lambda-and-cloudwatch\/embed\/#?secret=oCJP0HjIA6#?secret=ArkoL1mV6h\" data-secret=\"ArkoL1mV6h\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u4e3a\u4e86\u80fd\u591f\u901a\u8fc7\u201c\u57fa\u7840\u8bbe\u65bd\u5373\u4ee3\u7801\u201d\u7684\u601d\u60f3\uff0c\u5b8c\u6210\u76f8\u5173\u670d\u52a1\u7684\u5feb\u901f\u90e8\u7f72\u548c\u7ef4\u62a4\uff0c\u672c\u6587\u5c1d\u8bd5\u901a\u8fc7terraform\u5bf9\u76f8\u5173\u8d44\u6e90\u8fdb\u884c\u521b\u5efa\u548c\u7ba1\u7406\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%93%8D%E4%BD%9C%E6%AD%A5%E9%AA%A4\"><\/span>\u64cd\u4f5c\u6b65\u9aa4<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%87%86%E5%A4%87%E6%AD%A5%E9%AA%A4\"><\/span>\u51c6\u5907\u6b65\u9aa4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u786e\u4fdd\u5f53\u524d\u73af\u5883\u5df2\u5b89\u88c5terraform\uff0c\u5e76\u521b\u5efa\u6307\u5b9a\u6587\u4ef6\u5939\u5e76\u8fdb\u5165\uff0c\u7136\u540e\u521b\u5efamain.tf\u6587\u4ef6\u5e76\u51c6\u5907\u5199\u5165\u914d\u7f6e\u6587\u4ef6\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir terraform-experiment4\ncd terraform-experiment4\nvim main.tf<\/code><\/pre>\n\n\n\n<p>\u6ce8\uff1a\u4e0b\u6587\u4e2d\u63d0\u53ca\u5199\u5165main.tf\u7684\u5185\u5bb9\uff0c\u8bf7\u9010\u4e00\u8d34\u5165\u6587\u4ef6\u5185\u540e\uff0c\u6700\u540e\u7edf\u4e00\u6267\u884c terraform apply\u7684\u6307\u4ee4\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BASDWAN%E5%AE%9E%E4%BE%8B\"><\/span>\u521b\u5efaSDWAN\u5b9e\u4f8b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u5b9e\u9645\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u6211\u4eec\u4f1a\u63d0\u4f9b\u5177\u6709\u8def\u7531\u529f\u80fd\u7684SDWAN\u5b9e\u4f8b\u3002<\/p>\n\n\n\n<p>\u672c\u6d4b\u8bd5\u73af\u5883\u4e2d\uff0c\u6211\u4eec\u901a\u8fc7terraform\u521b\u5efa\u4e24\u4e2at3.micro\u7684ubuntu\u5b9e\u4f8b\u7528\u505a\u6d4b\u8bd5\uff0c\u56e0\u4e3a\u5b9e\u4f8b\u7684AMI\u548c\u7c7b\u578b\uff0c\u4e0d\u5f71\u54cdlambda\u7684\u8def\u7531\u5012\u6362\u529f\u80fd\u3002<\/p>\n\n\n\n<p>\u5728main.tf\u4e2d\uff0c\u901a\u8fc7\u5982\u4e0b\u4ee3\u7801\u521b\u5efa\u4e24\u4e2aSDWAN\u5b9e\u4f8b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>provider \"aws\" {\n  access_key = \"AKIA**********NU5\"\n  secret_key = \"leVIw***************************wx\/a\"\n  region = \"ap-east-1\"\n}\n\n# \u521b\u5efa\u540d\u4e3a\"EC2-SDWAN-A\"\u7684EC2\nresource \"aws_instance\" \"EC2-SDWAN-A\" {\n  ami = \"ami-03490b1b7425e5fe3\"\n  instance_type = \"t3.micro\"\n  availability_zone = \"ap-east-1a\"\n  tags = {\n    Name = \"SDWAN-A\"\n  }\n}\n\n# \u521b\u5efa\u540d\u4e3a\"EC2-SDWAN-B\"\u7684EC2\nresource \"aws_instance\" \"EC2-SDWAN-B\" {\n  ami = \"ami-03490b1b7425e5fe3\"\n  instance_type = \"t3.micro\"\n  availability_zone = \"ap-east-1b\"\n  tags = {\n    Name = \"SDWAN-B\"\n  }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BAlambda\"><\/span>\u521b\u5efalambda<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u5728main.tf\u4e2d\uff0c\u901a\u8fc7\u5982\u4e0b\u4ee3\u7801\u521b\u5efalambda<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u521b\u5efa\u540d\u4e3a\"terraform-managed-lambda_RouteTableFailover\"\u7684lambda\nresource \"aws_lambda_function\" \"terraform_lambda_RouteTableFailover\" {\n  function_name = \"terraform-managed-lambda_RouteTableFailover\"\n\n  filename = \"RouteTableFailover.zip\"\n  handler = \"RouteTableFailover.lambda_handler\"\n  role    = \"${aws_iam_role.iam_lambda_RouteTableFailover.arn}\"\n  runtime = \"python3.9\"\n  timeout =\"15\"\n  environment {\n    variables = {\n\t\tregion = \"ap-east-1\"\n\t\tvpcid = \"vpc-0479a92f0dd5add79\"\n\t\thost1eni = aws_instance.EC2-SDWAN-A.primary_network_interface_id\n\t\thost2eni = aws_instance.EC2-SDWAN-B.primary_network_interface_id\n    }\n  }  \n}<\/code><\/pre>\n\n\n\n<p>\u8fd9\u91ccRouteTableFailover.zip\u662f\u628a\u5305\u542b\u4e86\u8def\u7531\u5012\u6362python\u4ee3\u7801\u7684RouteTableFailover.py\u538b\u7f29\u4e3azip\u6587\u4ef6\uff0c\u5e76\u4e0a\u4f20\u81f3\u5f53\u524dterraform\u8fd0\u884c\u670d\u52a1\u5668\u7684terraform-experiment4\u6587\u4ef6\u5939\u4e0b\u3002<\/p>\n\n\n\n<p>\u73af\u5883\u53d8\u91cf\u4e2d\u7684vpcid \u662f\u5df2\u7ecf\u521b\u5efa\u597d\u7684VPC\u7684ID\uff1bhost1eni\u662fSDWAN-A\u5b9e\u4f8b\u7684\u7f51\u7edc\u63a5\u53e3ENI\u7684ID\uff0c\u53ef\u901a\u8fc7terraform\u81ea\u52a8\u83b7\u53d6\u53d8\u91cf\uff1bhost2eni\u4e0ehost1eni\u540c\u7406\u3002<\/p>\n\n\n\n<p>handler = &#8220;RouteTableFailover.lambda_handler&#8221; \u4ee3\u8868RouteTableFailover\u8fd9\u4e2a\u6587\u4ef6\u4e0b\u7684lambda_handler\u4e3a\u8be5lambda\u51fd\u6570\u7684\u5165\u53e3\u70b9\uff0c\u5b83\u544a\u8bc9 Lambda \u5728\u54ea\u91cc\u5f00\u59cb\u6267\u884c\u4ee3\u7801\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BAIAM%E6%89%A7%E8%A1%8C%E8%A7%92%E8%89%B2\"><\/span>\u521b\u5efaIAM\u6267\u884c\u89d2\u8272<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u5728main.tf\u4e2d\uff0c\u901a\u8fc7\u5982\u4e0b\u4ee3\u7801\u521b\u5efa\u540d\u4e3a&#8221;iam_lambda_RouteTableFailover&#8221;\u7684IAM\u6267\u884c\u89d2\u8272\uff0c\u5e76\u521b\u5efa\u4fe1\u4efb\u5173\u7cfb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u521b\u5efa\u540d\u4e3a\"iam_lambda_RouteTableFailover\"\u7684IAM\u6267\u884c\u89d2\u8272\uff0c\u5e76\u521b\u5efa\u4fe1\u4efb\u5173\u7cfb\nresource \"aws_iam_role\" \"iam_lambda_RouteTableFailover\" {\n  name = \"iam_lambda_RouteTableFailover\"\n\n  assume_role_policy = &lt;&lt;EOF\n{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": &#91;\n    {\n      \"Action\": \"sts:AssumeRole\",\n      \"Principal\": {\n        \"Service\": \"lambda.amazonaws.com\"\n      },\n      \"Effect\": \"Allow\",\n      \"Sid\": \"\"\n    }\n  ]\n}\nEOF\n}<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8ff0\u6307\u4ee4\u751f\u6210\u7684\u5185\u5bb9\uff0c\u5728AWS\u63a7\u5236\u53f0\u5982\u4e0b\u6240\u793a\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"764\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-31.png\" alt=\"\" class=\"wp-image-1805\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-31.png 840w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-31-300x273.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-31-768x699.png 768w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BAIAM_Policy%E7%AD%96%E7%95%A5\"><\/span>\u521b\u5efaIAM Policy\u7b56\u7565<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u5728main.tf\u4e2d\uff0c\u901a\u8fc7\u5982\u4e0b\u4ee3\u7801\u521b\u5efa\u4e24\u4e2apolicy\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>policy1\uff0c\u6dfb\u52a0\u8def\u7531\u8868\u76f8\u5173\u64cd\u4f5c\u7684\u5fc5\u8981\u7684\u6743\u9650\uff0c\u5e76\u7ed1\u5b9a\u5230\u5f53\u524dIAM iam_lambda_RouteTableFailover \u4e0a\uff1b<\/li>\n\n\n\n<li>policy2\uff0c\u6dfb\u52a0lambda\u6267\u884c\u7684\u57fa\u672c\u6743\u9650\uff0c\u5e76\u7ed1\u5b9a\u5230\u5f53\u524dIAM iam_lambda_RouteTableFailover \u4e0a\uff1b<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u521b\u5efapolicy1\uff0c\u6dfb\u52a0\u8def\u7531\u8868\u76f8\u5173\u64cd\u4f5c\u7684\u5fc5\u8981\u7684\u6743\u9650\uff0c\u5e76\u7ed1\u5b9a\u5230\u5f53\u524dIAM iam_lambda_RouteTableFailover \u4e0a\uff1b\ndata \"aws_iam_policy_document\" \"lambda_policy_1\" {\n  statement {\n    effect = \"Allow\"\n\n    actions = &#91;\n        \"ec2:DescribeInstances\",\n        \"ec2:DescribeTags\",\n        \"ec2:DescribeVpcs\",\n        \"ec2:DescribeRouteTables\",\n        \"ec2:CreateRoute\",\n        \"ec2:DeleteRoute\",\n        \"ec2:ReplaceRoute\"\n    ]\n\n    resources = &#91;\n      \"*\"\n    ]\n  }\n}\n\nresource \"aws_iam_policy\" \"lambda_policy_1\" {\n  name        = \"Policy-RouteTableFailover\"\n  description = \"Policy for Lambda execution\"\n  policy      = data.aws_iam_policy_document.lambda_policy_1.json\n}\n\nresource \"aws_iam_role_policy_attachment\" \"Policy-RouteTableFailover\" {\n  role       = aws_iam_role.iam_lambda_RouteTableFailover.name\n  policy_arn = aws_iam_policy.lambda_policy_1.arn\n}\n\n\n\n# \u521b\u5efapolicy2\uff0c\u6dfb\u52a0lambda\u6267\u884c\u7684\u57fa\u672c\u6743\u9650\uff0c\u5e76\u7ed1\u5b9a\u5230\u5f53\u524dIAM iam_lambda_RouteTableFailover \u4e0a\uff1b\ndata \"aws_iam_policy_document\" \"lambda_policy_2\" {\n  statement {\n    effect = \"Allow\"\n\n    actions = &#91;\n      \"logs:CreateLogGroup\"\n    ]\n\n    resources = &#91;\n      \"arn:aws:logs:*\"\n    ]\n  }\n\n  statement {\n    effect = \"Allow\"\n\n    actions = &#91;\n      \"logs:CreateLogStream\",\n      \"logs:PutLogEvents\"\n    ]\n\n    resources = &#91;\n      \"arn:aws:logs:*\"\n    ]\n  }\n}\n\nresource \"aws_iam_policy\" \"lambda_policy_2\" {\n  name        = \"Policy-AWSLambdaBasicExecutionRole\"\n  description = \"Policy for Lambda execution\"\n  policy      = data.aws_iam_policy_document.lambda_policy_2.json\n}\n\nresource \"aws_iam_role_policy_attachment\" \"Policy-AWSLambdaBasicExecutionRole\" {\n  role       = aws_iam_role.iam_lambda_RouteTableFailover.name\n  policy_arn = aws_iam_policy.lambda_policy_2.arn\n}<\/code><\/pre>\n\n\n\n<p>\u521b\u5efa\u540e\uff0cAWS\u63a7\u5236\u53f0\u53ef\u89c1\u914d\u7f6e\u5982\u4e0b\u56fe\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-32-1024x684.png\" alt=\"\" class=\"wp-image-1806\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-32-1024x684.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-32-300x200.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-32-768x513.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-32.png 1034w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1018\" height=\"673\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-33.png\" alt=\"\" class=\"wp-image-1807\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-33.png 1018w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-33-300x198.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-33-768x508.png 768w\" sizes=\"auto, (max-width: 1018px) 100vw, 1018px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BAlambda%E8%A7%A6%E5%8F%91%E5%99%A8\"><\/span>\u521b\u5efalambda\u89e6\u53d1\u5668<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u5728main.tf\u4e2d\uff0c\u901a\u8fc7\u5982\u4e0b\u4ee3\u7801\u521b\u5efa\u89e6\u53d1lambda\u7684\u89e6\u53d1\u5668\uff0c\u7528Cloudwatch\u7684EventBridge\u89e6\u53d1lambda\u8fd0\u884c\uff1a\u5f53EC2-SDWAN-A\u6216EC2-SDWAN-B\u7684\u72b6\u6001\u53d8\u4e3a\u975e\u8fd0\u884c\u72b6\u6001\u65f6\uff0c\u89e6\u53d1EventBridge\u3002<\/p>\n\n\n\n<p>\u8fd9\u90e8\u5206\u4ee3\u7801\u8fd8\u914d\u7f6e\u4e86Cloudwatch Events\u8fd0\u884cLambda\u6240\u5fc5\u9700\u7684\u6743\u9650\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u521b\u5efa\u89e6\u53d1lambda\u7684\u89e6\u53d1\u5668\uff0c\u7528Cloudwatch\u7684EventBridge\u89e6\u53d1lambda\u8fd0\u884c\n#\u5f53EC2-SDWAN-A\u6216EC2-SDWAN-B\u7684\u72b6\u6001\u53d8\u4e3a\u975e\u8fd0\u884c\u72b6\u6001\u65f6\uff0c\u89e6\u53d1EventBridge\nresource\"aws_cloudwatch_event_rule\"\"EventBridge_Rule_DetectSdwanState\" {\n  name                =\"CloudWatch-Rule-Axesdn-DetectvAerState-ChangeRouteTableAuto\"\n  description         =\"For triggering lambda AxesdnRouterTableAutoFailoverForSDWAN-vAER, when one of the vAERs\u2018 state is NOT running, to change route table automatically. Please do NOT delete it.\"\n  \n  event_pattern = jsonencode({\n\t\t  \"source\": &#91;\n\t\t\t\"aws.ec2\"\n\t\t  ],\n\t\t  \"detail-type\": &#91;\n\t\t\t\"EC2 Instance State-change Notification\"\n\t\t  ],\n\t\t  \"detail\": {\n\t\t\t\"state\": &#91;\n\t\t\t  \"pending\",\n\t\t\t  \"shutting-down\",\n\t\t\t  \"stopped\",\n\t\t\t  \"stopping\",\n\t\t\t  \"terminated\"\n\t\t\t],\n\t\t\t\"instance-id\": &#91;\n\t\t\t  \"${aws_instance.EC2-SDWAN-A.id}\",\n\t\t\t  \"${aws_instance.EC2-SDWAN-B.id}\"\n\t\t\t]\n\t\t  }\n\t\t})\n}\n\nresource\"aws_cloudwatch_event_target\"\"set_target\" {\n  rule  =\"${aws_cloudwatch_event_rule.EventBridge_Rule_DetectSdwanState.name}\"\n  arn   =\"${aws_lambda_function.terraform_lambda_RouteTableFailover.arn}\"\n}\n\ndata\"aws_caller_identity\"\"current\" {\n}\n\nresource\"aws_lambda_permission\"\"allow_cloudwatch\" {\n  statement_id   =\"AllowExecutionFromCloudWatch\"\n  action         =\"lambda:InvokeFunction\"\n  function_name  =\"${aws_lambda_function.terraform_lambda_RouteTableFailover.function_name}\"\n  principal      =\"events.amazonaws.com\"\n  source_account =\"${data.aws_caller_identity.current.account_id}\"\n  source_arn     =\"${aws_cloudwatch_event_rule.EventBridge_Rule_DetectSdwanState.arn}\"\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%94%A8terraform%E5%88%9B%E5%BB%BA%E8%B5%84%E6%BA%90\"><\/span>\u7528terraform\u521b\u5efa\u8d44\u6e90<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u4e0a\u8ff0\u6240\u6709\u4ee3\u7801\u90fd\u5199\u5165main.tf\u6587\u4ef6\u4e2d\u540e\uff0c\u5c31\u53ef\u4ee5\u8fd0\u884c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>terraform init\nterraform apply<\/code><\/pre>\n\n\n\n<p>\u6765\u521b\u5efa\u5fc5\u8981\u7684\u8d44\u6e90\u4e86\u3002<\/p>\n\n\n\n<p>\u8fd0\u884cprintout\u622a\u56fe\u5982\u4e0b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"889\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-34.png\" alt=\"\" class=\"wp-image-1809\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-34.png 985w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-34-300x271.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-34-768x693.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"889\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-35.png\" alt=\"\" class=\"wp-image-1810\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-35.png 985w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-35-300x271.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-35-768x693.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"889\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-36.png\" alt=\"\" class=\"wp-image-1811\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-36.png 985w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-36-300x271.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-36-768x693.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"889\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-37.png\" alt=\"\" class=\"wp-image-1812\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-37.png 985w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-37-300x271.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-37-768x693.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"889\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-38.png\" alt=\"\" class=\"wp-image-1813\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-38.png 985w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-38-300x271.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-38-768x693.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"889\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-39.png\" alt=\"\" class=\"wp-image-1814\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-39.png 985w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-39-300x271.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-39-768x693.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"267\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-40.png\" alt=\"\" class=\"wp-image-1815\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-40.png 985w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-40-300x81.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-40-768x208.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%8A%9F%E8%83%BD%E9%AA%8C%E8%AF%81\"><\/span>\u529f\u80fd\u9a8c\u8bc1<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u5b8c\u6210\u914d\u7f6e\u540e\uff0c\u53ef\u767b\u9646AWS\u63a7\u5236\u53f0\uff0c\u67e5\u770b\u4e24\u4e2aSDWAN\u5b9e\u4f8b\u5df2\u521b\u5efa\uff0c\u5982\u4e0b\u56fe\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"923\" height=\"223\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-41.png\" alt=\"\" class=\"wp-image-1816\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-41.png 923w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-41-300x72.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-41-768x186.png 768w\" sizes=\"auto, (max-width: 923px) 100vw, 923px\" \/><\/figure>\n\n\n\n<p>\u6211\u4eec\u5728\u8be5VPC\u9ed8\u8ba4\u8def\u7531\u8868\u91cc\u624b\u52a8\u521b\u5efa\u4e00\u6761\u9759\u6001\u8def\u7531\uff1a<\/p>\n\n\n\n<p>\u5f53\u76ee\u7684\u5730\u5740\u4e3a10.0.0.0\/24\u65f6\uff0c\u4e0b\u4e00\u8df3\u7f51\u5173\u8bbe\u7f6e\u4e3a\u5b9e\u4f8bSDWAN-A\uff0c\u5982\u4e0b\u56fe\uff0c<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"366\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-42.png\" alt=\"\" class=\"wp-image-1819\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-42.png 512w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-42-300x214.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p>\u5b8c\u6210\u914d\u7f6e\u540e\uff0c\u53ef\u89c1\u8def\u7531\u5982\u4e0b\u56fe\uff0c<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"280\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-43.png\" alt=\"\" class=\"wp-image-1820\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-43.png 756w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-43-300x111.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n\n\n\n<p>\u5176\u4e2d\uff0c\u201c\u76ee\u6807\u201d\uff08\u4e5f\u5c31\u662f\u4e0b\u4e00\u8df3\u7f51\u5173\uff09\u663e\u793a\u4e3a\u5b9e\u4f8bSDWAN-A\u7684\u7f51\u7edc\u63a5\u53e3ID\uff08ENI\uff09\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"882\" height=\"226\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-44.png\" alt=\"\" class=\"wp-image-1822\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-44.png 882w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-44-300x77.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-44-768x197.png 768w\" sizes=\"auto, (max-width: 882px) 100vw, 882px\" \/><\/figure>\n\n\n\n<p>\u6839\u636e\u6211\u4eec\u8bbe\u8ba1\u7684\u529f\u80fd\uff0c\u5f53SDWAN-A\u5b9e\u4f8b\u72b6\u6001\u4e0d\u4e3arunning\u65f6\uff0cCloudWatch\u7684EventBridge\u4f1a\u89e6\u53d1lambda\uff0c\u67e5\u627e\u8def\u7531\u8868\u4e2d\u4e0b\u4e00\u8df3\u7f51\u5173\u4e3aSDWAN-A\u7684\u76f8\u5173\u8def\u7531\uff0c\u5e76\u628a\u8fd9\u4e9b\u4e0b\u4e00\u8df3\u7f51\u5173\u6539\u4e3aSDWAN-B\u3002<\/p>\n\n\n\n<p>\u4e0b\u9762\u6211\u4eec\u5f00\u59cb\u9a8c\u8bc1\u3002<\/p>\n\n\n\n<p>\u628aSDWAN-A\u5b9e\u4f8b\u72b6\u6001\u6539\u4e3a\u505c\u6b62\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"102\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-46.png\" alt=\"\" class=\"wp-image-1824\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-46.png 920w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-46-300x33.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-46-768x85.png 768w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n\n<p>\u6b64\u65f6\u6211\u4eec\u5237\u65b0\u8def\u7531\u8868\uff0c\u53ef\u89c1\u76f8\u5173\u8def\u7531\u8868\u7684\u201c\u76ee\u6807\u201d\u6539\u53d8\u4e86\uff0c\u5982\u4e0b\u56fe\uff0c<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"721\" height=\"276\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-47.png\" alt=\"\" class=\"wp-image-1825\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-47.png 721w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-47-300x115.png 300w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/figure>\n\n\n\n<p>\u53d8\u66f4\u540e\u7684\u201c\u76ee\u6807\u201d\uff0c\u5373\u4e3aSDWAN-B\u7684\u7f51\u7edc\u63a5\u53e3ID\uff0c<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"146\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-48.png\" alt=\"\" class=\"wp-image-1826\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-48.png 875w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-48-300x50.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-48-768x128.png 768w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><\/figure>\n\n\n\n<p>\u8fd8\u53ef\u5230lambda\u9875\u9762\u7684\u76d1\u63a7\u9875\u4e2d\uff0c\u70b9\u51fb\u201c\u67e5\u770bCloudWatch Logs\u201d\uff0c\u67e5\u770b\u76f8\u5173log\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"605\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-49-1024x605.png\" alt=\"\" class=\"wp-image-1827\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-49-1024x605.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-49-300x177.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-49-768x454.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-49.png 1179w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"571\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-50-1024x571.png\" alt=\"\" class=\"wp-image-1828\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-50-1024x571.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-50-300x167.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-50-768x428.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-50.png 1179w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"469\" src=\"http:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-51-1024x469.png\" alt=\"\" class=\"wp-image-1829\" srcset=\"https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-51-1024x469.png 1024w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-51-300x137.png 300w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-51-768x352.png 768w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-51-1536x703.png 1536w, https:\/\/yushuoxin.top\/wp-content\/uploads\/2023\/11\/image-51.png 1588w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u901a\u8fc7\u4e0a\u8ff0\u9a8c\u8bc1\uff0c\u53ef\u89c1\u81ea\u52a8\u5012\u6362\u8def\u7531\u8868\u7684\u529f\u80fd\uff0c\u53ef\u4ee5\u6b63\u5e38\u5b9e\u73b0\u3002<\/p>\n\n\n\n<p>\u6b64\u65f6\u82e5\u6062\u590d\u542f\u52a8SDWAN-A\uff0c\u8def\u7531\u8868\u4e0d\u53d8\uff1b<\/p>\n\n\n\n<p>\u7136\u540e\u518d\u628aSDWAN-B\u5b9e\u4f8b\u72b6\u6001\u53d8\u4e3a\u505c\u6b62\uff0c\u5219\u76f8\u5173\u8def\u7531\u81ea\u52a8\u5012\u6362\u81f3SDWAN-A\u3002\u8fd9\u91cc\u4e0d\u518d\u63d0\u4f9b\u622a\u56fe\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%80%BB%E7%BB%93\"><\/span>\u603b\u7ed3<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u901a\u8fc7\u4e0a\u9762\u7684\u914d\u7f6e\uff0c\u6211\u4eec\u6210\u529f\u5b9e\u73b0\u4e86\uff0c\u901a\u8fc7terraform\u7684\u58f0\u660e\u5f0f\u7684\u65b9\u5f0f\uff0c\u521b\u5efa\u4e86lambda\u51fd\u6570\uff0c\u5e76\u521b\u5efa\u4e86\u5fc5\u8981\u7684IAM role\u548cpolicy\uff0c\u4ee5\u53calambda\u7684trigger\uff0c\u4ece\u800c\u5b9e\u73b0\uff1a<\/p>\n\n\n\n<p>\u5f53\u67d0\u4e2a\u4f5c\u4e3a\u8def\u7531\u8868\u4e0b\u4e00\u8df3\u7f51\u5173\u7684SDWAN\u5b9e\u4f8b\u7684\u72b6\u6001\u4e0d\u6b63\u5e38\u65f6\uff0cCloudWatch\u7684EventBridge\u89e6\u53d1lambda\uff0c\u8fd0\u884cpython\u811a\u672c\uff0c\u628a\u76f8\u5173\u8def\u7531\u5012\u6362\u5230\u53e6\u4e00\u4e2a\u6b63\u5e38\u7684SDWAN\u5b9e\u4f8b\uff0c\u4ece\u800c\u5b9e\u73b0SDWAN\u5b9e\u4f8b\u7684\u5197\u4f59\u548c\u81ea\u52a8\u5012\u6362\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u80cc\u666f \u4e3a\u4e86\u5b9e\u73b0\u5728AWS\u7684\u4e00\u4e2aVPC\u5185\u90e8\u7f72\u4e24\u4e2aSDWAN\u5b9e\u4f8b\uff0c\u5e76\u901a\u8fc7lambda\u5b9e\u73b0\u53cc\u673a\u70ed\u5907\u548c\u8def\u7531\u7684\u81ea\u52a8\u5207\u6362\uff0c\u6211 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,8],"tags":[7,13,14,23,16],"class_list":["post-1799","post","type-post","status-publish","format-standard","hentry","category-2","category-8","tag-aws","tag-lambda","tag-sdwan","tag-terraform","tag-16"],"_links":{"self":[{"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/posts\/1799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/comments?post=1799"}],"version-history":[{"count":0,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/posts\/1799\/revisions"}],"wp:attachment":[{"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/media?parent=1799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/categories?post=1799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yushuoxin.top\/index.php\/wp-json\/wp\/v2\/tags?post=1799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}