{"id":48517,"date":"2023-12-06T20:41:41","date_gmt":"2023-11-01T13:38:41","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/"},"modified":"2024-05-04T12:25:07","modified_gmt":"2024-05-04T04:25:07","slug":"%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/","title":{"rendered":"\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform"},"content":{"rendered":"<p>\u6211\u6b63\u5728\u5de5\u4f5c\u4e2d\u5f00\u59cb\u6784\u5efa\u4e00\u4e2a\u5229\u7528AWS\u7684\u7269\u8054\u7f51\u5e73\u53f0\u3002<br \/>\n\u5728\u8fd9\u6837\u7684\u60c5\u51b5\u4e0b\uff0c\u4e3a\u4e86\u5b9e\u73b0IaC\uff08\u57fa\u7840\u8bbe\u65bd\u5373\u4ee3\u7801\uff09\uff0c<br \/>\n\u6211\u5c1d\u8bd5\u4f7f\u7528TerraForm\u8fdb\u884c\u521b\u5efaS3\u3002<\/p>\n<h1>\u6267\u884c\u73af\u5883<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Windows 10 pro 64bit<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">VisualStudioCode: 1.26.1<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Terraform: 0.11.13<\/ul>\n<h1>\u73af\u5883\u7684\u5efa\u8bbe de<\/h1>\n<p>\u6211\u4eec\u73b0\u5728\u5f00\u59cb\u8fdb\u884c\u5b9e\u9645\u64cd\u4f5c\u5427\u3002<br \/>\n\u64cd\u4f5c\u6b65\u9aa4\u57fa\u672c\u4e0a\u662f\u53c2\u8003\u5b98\u65b9\u7f51\u9875\u3002<br \/>\nhttps:\/\/learn.hashicorp.com\/terraform\/getting-started\/install.html<\/p>\n<h2>\u4e9e\u99ac\u905c\u7db2\u8def\u670d\u52d9\u5efa\u69cb<\/h2>\n<p>\u9996\u5148\uff0c\u9700\u8981\u8fdb\u884cAWS\u7aef\u7684\u8bbe\u7f6e\u3002<\/p>\n<h3>\u521b\u5efaIAM\u7528\u6237\u5e76\u8bb0\u4e0b\u5176\u51ed\u636e\u3002<\/h3>\n<p>\u8fd9\u6b21\u6211\u521b\u5efa\u4e86\u4e00\u4e2a\u5e26\u6709poweruser\u89d2\u8272\u7684IAM\u7528\u6237\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">ACCESS_KEY<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">SECRET_KEY<\/ul>\n<h2>\u5c06Terraform\u548ctflint\u73af\u5883\u914d\u7f6e\u8bbe\u7f6e\u4e3a\u7ec8\u7aef<\/h2>\n<p>\u4e0b\u9762\u662f\u4e00\u79cd\u9009\u9879\uff1a<\/p>\n<p>\u4e0b\u8f7d\u5e76\u6784\u5efa\u4e00\u4e2a\u53ef\u4ee5\u8fd0\u884cTerraform\u548ctflint\u7684\u73af\u5883\u3002\u8fd9\u6b21\u6211\u4eec\u5c06\u4ee5\u8fd9\u79cd\u914d\u7f6e\u8fdb\u884c\u5b89\u6392\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">C:\\Users\\my_user\\terraform<\/span>\r\n<span class=\"err\">\u2502<\/span>  <span class=\"nx\">terraform.exe<\/span>\r\n<span class=\"err\">\u2502<\/span>  <span class=\"n\">tflint.exe<\/span>\r\n<\/code><\/pre>\n<h3>Terraform\u7684\u914d\u7f6e<\/h3>\n<h4>\u5b58\u6863\u4e0b\u8f7d<\/h4>\n<p>\u4eceTerraform\u5b98\u65b9\u7f51\u7ad9\u4e0a\u4e0b\u8f7d\u6700\u65b0\u7248\u672c\u7684\u5b58\u6863\u6587\u4ef6<br \/>\nhttps:\/\/www.terraform.io\/downloads.html<\/p>\n<h4>\u89e3\u51bb (ji\u011b<\/h4>\n<p>\u5c06 C:\\Users\\my_user\\terraform \u89e3\u538b\u7f29\u5230\u6307\u5b9a\u4f4d\u7f6e\u3002<\/p>\n<h3>TFLint\u7684\u914d\u7f6e<\/h3>\n<h4>\u5b58\u6863\u4e0b\u8f7d<\/h4>\n<p>\u4ecetflint\u7684\u5b98\u65b9\u7f51\u7ad9\u4e0a\u4e0b\u8f7d\u6700\u65b0\u6807\u7b7e\u7684tflint_windows_amd64.zip\u6587\u4ef6\uff0c\u5e76\u4f7f\u7528Terraform\u7684Lint\u529f\u80fd\u8fdb\u884c\u5b89\u88c5\u3002<br \/>\nhttps:\/\/github.com\/wata727\/tflint\/releases\/<\/p>\n<h4>\u89e3\u51cd<\/h4>\n<p>\u5c06C:\\Users\\my_user\\terraform\u89e3\u538b\u7f29\u3002<\/p>\n<h3>\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf<\/h3>\n<p>\u8bf7\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u5e76\u5728\u73af\u5883\u53d8\u91cf\u4e2d\u8bbe\u7f6eterraform\/tflint\u7684\u8def\u5f84\u3002\u8fd9\u65f6\uff0c\u8bf7\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u8fd0\u884cPowerShell\u3002<\/p>\n<pre class=\"post-pre\"><code>&gt;$env:Path += \";C:\\Users\\my_user\\terraform\"\r\n&gt;[Environment]::SetEnvironmentVariable('PATH', $Env:Path, 'Machine')\r\n<\/code><\/pre>\n<h3>\u786e\u8ba4\u884c\u52a8<\/h3>\n<p>\u53ea\u8981Terraform\u548ctflint\u5404\u81ea\u7684\u7248\u672c\u80fd\u6b63\u5e38\u663e\u793a\u5373\u53ef\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">&gt;<\/span> <span class=\"n\">terraform<\/span> <span class=\"nt\">-v<\/span>\r\n<span class=\"n\">Terraform<\/span> <span class=\"nx\">v0.11.13<\/span>\r\n\r\n<span class=\"err\">&gt;<\/span> <span class=\"n\">tflint<\/span> <span class=\"nt\">-v<\/span>\r\n<span class=\"n\">TFLint<\/span> <span class=\"nx\">version<\/span> <span class=\"nx\">0.7.5<\/span>\r\n<\/code><\/pre>\n<h2>VSCode\u7684\u8bbe\u7f6e<\/h2>\n<h3>\u5b89\u88c5Terraform\u6269\u5c55\u63d2\u4ef6\u3002<\/h3>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85c5913a08637a6ba290\/31-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85c5913a08637a6ba290\/32-0.png\" alt=\"image.png\" \/><\/div>\n<h3>\u521b\u5efa\u5de5\u4f5c\u76ee\u5f55<\/h3>\n<pre class=\"post-pre\"><code><span class=\"err\">&gt;<\/span><span class=\"n\">mkdir<\/span> <span class=\"nx\">C:\\Users\\my_user\\terraform<\/span>\r\n<span class=\"err\">&gt;<\/span><span class=\"n\">cd<\/span> <span class=\"nx\">C:\\Users\\my_user\\terraform<\/span>\r\n<\/code><\/pre>\n<h2>\u521b\u5efatf\u6587\u4ef6<\/h2>\n<p>\u672c\u6b21\u6211\u4eec\u5c06\u6309\u7167\u8fd9\u6837\u7684\u65b9\u5f0f\u521b\u5efa\u6587\u4ef6\u3002<br \/>\n\u7531\u4e8e\u540c\u4e00\u5c42\u7ea7\u7684tf\u6587\u4ef6\u5c06\u5168\u90e8\u6267\u884c\uff0c\u56e0\u6b64\u6211\u4eec\u8fdb\u884c\u4e86\u6309\u7ba1\u7406\u5355\u5143\u5206\u9694\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">C:\\Users\\my_user\\terraform<\/span>\r\n<span class=\"err\">\u2502<\/span>  <span class=\"nx\">terraform.exe<\/span>          \r\n<span class=\"err\">\u2502<\/span>  <span class=\"n\">tflint.exe<\/span>\r\n<span class=\"err\">\u2502<\/span>  <span class=\"nx\">main.tf<\/span>           <span class=\"c\">#   \u30e1\u30a4\u30f3\u306e\u8a2d\u5b9a <\/span>\r\n<span class=\"err\">\u2502<\/span>  <span class=\"n\">s3.tf<\/span>             <span class=\"c\">#   S3\u306e\u8a2d\u5b9a<\/span>\r\n<span class=\"err\">\u2502<\/span>  <span class=\"n\">terraform.tfvars<\/span>  <span class=\"c\">#   \u30af\u30ec\u30c7\u30f3\u30b7\u30e3\u30eb\u306e\u8a2d\u5b9a<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nx\">variable<\/span> <span class=\"s2\">\"access_key\"<\/span> <span class=\"p\">{}<\/span>\r\n<span class=\"nx\">variable<\/span> <span class=\"s2\">\"secret_key\"<\/span> <span class=\"p\">{}<\/span>\r\n<span class=\"nx\">variable<\/span> <span class=\"s2\">\"region\"<\/span> <span class=\"p\">{}<\/span>\r\n\r\n<span class=\"c1\"># AWS \u30d7\u30ed\u30d0\u30a4\u30c0\u306e\u8a2d\u5b9a<\/span>\r\n<span class=\"nx\">provider<\/span> <span class=\"s2\">\"aws\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">access_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"${var.access_key}\"<\/span>\r\n  <span class=\"nx\">secret_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"${var.secret_key}\"<\/span>\r\n  <span class=\"nx\">region<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"${var.region}\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>access_key = \"YOUR_ACCESS_KEY\"\r\nsecret_key = \"YOUR_SECRET_KEY\"\r\nregion = \"ap-northeast-1\"\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_s3_bucket\"<\/span> <span class=\"s2\">\"bucket\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">bucket<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"garakutayama-terraform-test\"<\/span>\r\n  <span class=\"nx\">acl<\/span>    <span class=\"p\">=<\/span> <span class=\"s2\">\"private\"<\/span>\r\n\r\n  <span class=\"nx\">lifecycle_rule<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">id<\/span>      <span class=\"p\">=<\/span> <span class=\"s2\">\"log\"<\/span>\r\n    <span class=\"nx\">enabled<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\r\n\r\n    <span class=\"nx\">prefix<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"log\/\"<\/span>\r\n\r\n    <span class=\"nx\">tags<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"s2\">\"rule\"<\/span>      <span class=\"p\">=<\/span> <span class=\"s2\">\"log\"<\/span>\r\n      <span class=\"s2\">\"autoclean\"<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"true\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n\r\n    <span class=\"nx\">transition<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"nx\">days<\/span>          <span class=\"p\">=<\/span> <span class=\"mi\">30<\/span>\r\n      <span class=\"nx\">storage_class<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"STANDARD_IA\"<\/span> <span class=\"c1\"># or \"ONEZONE_IA\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n\r\n    <span class=\"nx\">transition<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"nx\">days<\/span>          <span class=\"p\">=<\/span> <span class=\"mi\">60<\/span>\r\n      <span class=\"nx\">storage_class<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"GLACIER\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n\r\n    <span class=\"nx\">expiration<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"nx\">days<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">90<\/span>\r\n    <span class=\"p\">}<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h3>\u6267\u884cTerraform Init<\/h3>\n<p>Init\u547d\u4ee4\u7528\u4e8e\u521d\u59cb\u5316\u5de5\u4f5c\u76ee\u5f55\u4e2d\u7684Terraform\u914d\u7f6e\u6587\u4ef6.<br \/>\n\u4f8b\u5982\uff0c\u5982\u679c\u4f7f\u7528aws\u4f5c\u4e3a\u63d0\u4f9b\u7a0b\u5e8f\uff0c\u5219\u4f1a\u8fd0\u884c\u4e0b\u8f7daws\u63d2\u4ef6\u7b49\u76f8\u5173\u5904\u7406\u6b65\u9aa4\u3002<\/p>\n<pre class=\"post-pre\"><code>&gt; terraform init\r\n\r\nInitializing provider plugins...\r\n\r\n\r\n\u30fb\u30fb\u30fb\r\n\r\n* provider.aws: version = \"~&gt; 2.9\"\r\n\r\nTerraform has been successfully initialized!\r\n\r\nYou may now begin working with Terraform. Try running \"terraform plan\" to see\r\nany changes that are required for your infrastructure. All Terraform commands\r\nshould now work.\r\n\r\nIf you ever set or change modules or backend configuration for Terraform,\r\nrerun this command to reinitialize your working directory. If you forget, other\r\ncommands will detect it and remind you to do so if necessary.\r\n<\/code><\/pre>\n<h3>\u6267\u884cTerraform\u8ba1\u5212<\/h3>\n<p>\u6211\u5011\u5c07\u57f7\u884c\u8a2d\u5b9a\u5167\u5bb9\u7684\u8a08\u5283\u3002<br \/>\n\u4f7f\u7528&#8221;out&#8221;\u547d\u4ee4\u5c07\u8a08\u5283\u7d50\u679c\u8f38\u51fa\uff0c\u7136\u5f8c\u5728\u57f7\u884c&#8221;apply&#8221;\u547d\u4ee4\u4e4b\u5f8c\u9032\u884c\u53c3\u8003\u3002<\/p>\n<pre class=\"post-pre\"><code>&gt;terraform plan -out=mainplan\r\nRefreshing Terraform state in-memory prior to plan...\r\nThe refreshed state will be used to calculate this plan, but will not be\r\npersisted to local or remote state storage.\r\n\r\n\r\n------------------------------------------------------------------------\r\n\r\nAn execution plan has been generated and is shown below.\r\nResource actions are indicated with the following symbols:\r\n  + create\r\n\r\nTerraform will perform the following actions:\r\n\r\n\u30fb\u30fb\u30fb\r\n\r\n\r\nPlan: 1 to add, 0 to change, 0 to destroy.\r\n\r\n------------------------------------------------------------------------\r\n\r\nThis plan was saved to: main_plan\r\n\r\nTo perform exactly these actions, run the following command to apply:\r\n    terraform apply \"main_plan\"\r\n<\/code><\/pre>\n<h3>\u6267\u884cTerraform apply\u3002<\/h3>\n<p>\u6700\u540e\u6267\u884capply\u547d\u4ee4\u6765\u521b\u5efa\u3002<\/p>\n<pre class=\"post-pre\"><code>&gt; terraform apply main_plan\r\naws_s3_bucket.bucket: Creating...\r\n\u30fb\u30fb\u30fb\r\naws_s3_bucket.bucket: Creation complete after 4s (ID: garakutayama-terraform-test)\r\n\r\nApply complete! Resources: 1 added, 0 changed, 0 destroyed.\r\n<\/code><\/pre>\n<h3>\u529e\u59a5\u4e86\uff01<\/h3>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85c5913a08637a6ba290\/51-0.png\" alt=\"image.png\" \/><\/div>\n<h3>\u6574\u7406\u6574\u987f<\/h3>\n<p>\u6211\u4f1a\u5220\u9664\u521b\u5efa\u7684S3\u3002<br \/>\n\u5220\u9664\u4f7f\u7528destroy\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>&gt; terraform destroy\r\naws_s3_bucket.bucket: Refreshing state... (ID: garakutayama-terraform-test)\r\n\r\nAn execution plan has been generated and is shown below.\r\nResource actions are indicated with the following symbols:\r\n  - destroy\r\n\r\nTerraform will perform the following actions:\r\n\r\n  - aws_s3_bucket.bucket\r\n\r\n\r\nPlan: 0 to add, 0 to change, 1 to destroy.\r\n\r\nDo you really want to destroy all resources?\r\n  Terraform will destroy all your managed infrastructure, as shown above.\r\n  There is no undo. Only 'yes' will be accepted to confirm.\r\n\r\n  Enter a value: yes\r\n\r\naws_s3_bucket.bucket: Destroying... (ID: garakutayama-terraform-test)\r\naws_s3_bucket.bucket: Destruction complete after 0s\r\n\r\nDestroy complete! Resources: 1 destroyed.\r\n<\/code><\/pre>\n<p>\u7ed3\u675f<\/p>\n<h3>\u5269\u4e0b\u7684\u4efb\u52a1<\/h3>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">credential\u3092aws cli\u306eUserProfile\u304b\u3089\u53c2\u7167\u3059\u308b\u3088\u3046\u306b\u5909\u66f4<\/ul>\n<\/li>\n<\/ul>\n<p>credential\u3092\u9593\u9055\u3063\u3066git\u306b\u3042\u3052\u3061\u3083\u3046\u306a\u3069\u3057\u306a\u3044\u3088\u3046\u306btf\u30d5\u30a1\u30a4\u30eb\u3068\u306f\u5225\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u7ba1\u7406\u3057\u305f\u3044<\/p>\n<p>status\u30d5\u30a1\u30a4\u30eb\u3092\u3069\u3046\u7ba1\u7406\u3059\u308b\u304b<\/p>\n<p>\u4e2d\u306b\u306f\u30af\u30ec\u30c7\u30f3\u30b7\u30e3\u30eb\u60c5\u5831\u3082\u542b\u307e\u308c\u3066\u305f\u308a\u3059\u308b<br \/>\n\u307e\u305fstatus\u30d5\u30a1\u30a4\u30eb\u306fdeploy\u5148\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3068tf\u30d5\u30a1\u30a4\u30eb\u306e\u5dee\u7570\u304c\u3042\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308b<br \/>\n\u5916\u90e8\u30d9\u30f3\u30c0\u30fc\u3068\u306e\u5171\u6709\u65b9\u6cd5\u306f\u3069\u3046\u3059\u308b\u304b<\/p>\n<p>\u6211\u4eec\u5c06\u5728\u4e0b\u4e00\u96c6\u4e2d\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u6b63\u5728\u5de5\u4f5c\u4e2d\u5f00\u59cb\u6784\u5efa\u4e00\u4e2a\u5229\u7528AWS\u7684\u7269\u8054\u7f51\u5e73\u53f0\u3002 \u5728\u8fd9\u6837\u7684\u60c5\u51b5\u4e0b\uff0c\u4e3a\u4e86\u5b9e\u73b0IaC\uff08\u57fa\u7840\u8bbe\u65bd\u5373\u4ee3\u7801\uff09\uff0c \u6211\u5c1d\u8bd5\u4f7f [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-48517","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728vscode\u4e2d\u5f00\u59cb\u4f7f\u7528terraform\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform\" \/>\n<meta property=\"og:description\" content=\"\u6211\u6b63\u5728\u5de5\u4f5c\u4e2d\u5f00\u59cb\u6784\u5efa\u4e00\u4e2a\u5229\u7528AWS\u7684\u7269\u8054\u7f51\u5e73\u53f0\u3002 \u5728\u8fd9\u6837\u7684\u60c5\u51b5\u4e0b\uff0c\u4e3a\u4e86\u5b9e\u73b0IaC\uff08\u57fa\u7840\u8bbe\u65bd\u5373\u4ee3\u7801\uff09\uff0c \u6211\u5c1d\u8bd5\u4f7f [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728vscode\u4e2d\u5f00\u59cb\u4f7f\u7528terraform\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-01T13:38:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T04:25:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85c5913a08637a6ba290\/31-0.png\" \/>\n<meta name=\"author\" content=\"\u96c5, \u609f\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u96c5, \u609f\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/\",\"name\":\"\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-11-01T13:38:41+00:00\",\"dateModified\":\"2024-05-04T04:25:07+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6\",\"name\":\"\u96c5, \u609f\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g\",\"caption\":\"\u96c5, \u609f\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yawu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728vscode\u4e2d\u5f00\u59cb\u4f7f\u7528terraform\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform","og_description":"\u6211\u6b63\u5728\u5de5\u4f5c\u4e2d\u5f00\u59cb\u6784\u5efa\u4e00\u4e2a\u5229\u7528AWS\u7684\u7269\u8054\u7f51\u5e73\u53f0\u3002 \u5728\u8fd9\u6837\u7684\u60c5\u51b5\u4e0b\uff0c\u4e3a\u4e86\u5b9e\u73b0IaC\uff08\u57fa\u7840\u8bbe\u65bd\u5373\u4ee3\u7801\uff09\uff0c \u6211\u5c1d\u8bd5\u4f7f [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728vscode\u4e2d\u5f00\u59cb\u4f7f\u7528terraform\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-11-01T13:38:41+00:00","article_modified_time":"2024-05-04T04:25:07+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d85c5913a08637a6ba290\/31-0.png"}],"author":"\u96c5, \u609f","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u96c5, \u609f","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/","name":"\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-11-01T13:38:41+00:00","dateModified":"2024-05-04T04:25:07+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5728VSCode\u4e2d\u5f00\u59cb\u4f7f\u7528Terraform"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6","name":"\u96c5, \u609f","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g","caption":"\u96c5, \u609f"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yawu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8vscode%e4%b8%ad%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8terraform%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=48517"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48517\/revisions"}],"predecessor-version":[{"id":98304,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48517\/revisions\/98304"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=48517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=48517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=48517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}