{"id":48886,"date":"2023-08-29T16:44:37","date_gmt":"2023-07-15T08:26:37","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/"},"modified":"2024-04-30T20:36:45","modified_gmt":"2024-04-30T12:36:45","slug":"%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/","title":{"rendered":"\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u7531\u4e8eTerraform\u7684\u5f00\u53d1\u73af\u5883\u5df2\u7ecf\u51c6\u5907\u5c31\u7eea\uff0c\u6211\u6253\u7b97\u4ece\u8fd9\u6b21\u5f00\u59cb\u5c1d\u8bd5\u4f7f\u7528Terraform\u6765\u8fdb\u884cAWS\u7684\u6784\u5efa\u5de5\u4f5c\u3002<\/p>\n<ul class=\"post-ul\">\u3010\u524d\u3011Terraform\u3092\u4f7f\u3063\u3066\u899a\u3048\u308b\u3002\uff08\u305d\u306e\uff12\uff1agit-secrets\u3068VS Code\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff09<\/ul>\n<h1>\u6267\u884cTerraform\u7684\u65b9\u6cd5<\/h1>\n<p>\u6211\u4eec\u5c06\u57fa\u4e8e\u521b\u5efaAWS EC2\u5b9e\u4f8b\u7684\u793a\u4f8b\u6765\u6267\u884cTerraform\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0<\/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\">terraform init\u306e\u5b9f\u884c\uff08\u521d\u56de\u306e\u307f\uff09<\/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\">terraform fmt\u306e\u5b9f\u884c<\/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\">terraform plan\u306e\u5b9f\u884c<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">terraform apply\u306e\u5b9f\u884c<\/ul>\n<h2>\u7f16\u7801<\/h2>\n<p>\u4f7f\u7528\u4e0a\u4e00\u6b21\u5b89\u88c5\u7684VS Code\u8fdb\u884c\u7f16\u7801\u65f6\uff0c\u82e5\u5c06\u6587\u4ef6\u6269\u5c55\u540d\u8bbe\u7f6e\u4e3a&#8221;.tf&#8221;\uff0c\u5219\u4f1a\u88ab\u8bc6\u522b\u4e3aTerraform\u7684\u683c\u5f0f\u3002<\/p>\n<p>\u521b\u5efaEC2\u5b9e\u4f8b\u65f6\uff0c\u901a\u8fc7\u8fdb\u884c\u4ee5\u4e0b\u6700\u4f4e\u9650\u5ea6\u7684\u7f16\u7801\u53ef\u4ee5\u5b9e\u73b0\u521b\u5efa\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nx\">provider<\/span> <span class=\"s2\">\"aws\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">region<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1\"<\/span>\r\n  <span class=\"nx\">profile<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"default\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_instance\"<\/span> <span class=\"s2\">\"testtf\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">ami<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"ami-0b7546e839d7ace12\"<\/span>\r\n    <span class=\"nx\">instance_type<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"t3.micro\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u60a8\u53ef\u4ee5\u5728\u4ee5\u4e0b\u7684\u5728\u7ebf\u6587\u6863\u4e2d\u67e5\u9605\u5404\u79cd\u53ef\u5728\u4e0d\u540c\u8d44\u6e90\u4e2d\u6307\u5b9a\u7684\u8bbe\u7f6e\u548c\u9009\u9879\u3002<\/p>\n<ul class=\"post-ul\">AWS Provider<\/ul>\n<p>\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cTerraform\u4f1a\u9690\u5f0f\u5730\u5224\u65ad\u4e3a\u6267\u884cAWS\u64cd\u4f5c\uff0c\u4f7f\u7528\u5df2\u8bbe\u7f6e\u7684AWS CLI\u9ed8\u8ba4\u51ed\u8bc1\u4fe1\u606f\u8fdb\u884c\u8fde\u63a5\u3002\u56e0\u6b64\uff0c\u5373\u4f7f\u6ca1\u6709\u63d0\u4f9bprovider\u5757\uff0c\u5b83\u4ecd\u7136\u53ef\u4ee5\u6b63\u5e38\u5de5\u4f5c\u3002\u4e3a\u4e86\u907f\u514d\u610f\u5916\u884c\u4e3a\uff0c\u6211\u4eec\u5e94\u660e\u786e\u5730\u8fdb\u884c\u8bf4\u660e\u3002<\/p>\n<h1>\u6267\u884cterraform init\uff08\u4ec5\u521d\u6b21\u6267\u884c\uff09<\/h1>\n<p>\u901a\u8fc7\u8fd0\u884cterraform init\u547d\u4ee4\uff0c\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u521b\u5efa\u4e86.terraform.locl.hcl\u6587\u4ef6\u548c.terraform\u6587\u4ef6\u5939\uff0c\u5e76\u4e14\u4e0b\u8f7d\u4e86\u5404\u79cd\u63d0\u4f9b\u8005\u8d44\u6e90\u521b\u5efa\u6240\u9700\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u5230\u8be5\u6587\u4ef6\u5939\u4e2d\u3002<\/p>\n<div>\n<div class=\"post-table\">\u30d5\u30a1\u30a4\u30eb\u30fb\u30d5\u30a9\u30eb\u30c0\u540d\u8aac\u660emain.tf\u4f5c\u6210\u3057\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9.terraformAWS\u7b49\u306e\u5404\u7a2e\u30d7\u30ed\u30d0\u30a4\u30c0\u30ea\u30bd\u30fc\u30b9\u4f5c\u6210\u7528\u30d0\u30a4\u30ca\u30ea\u30d5\u30a1\u30a4\u30eb\u683c\u7d0d.terraform.lock.hcl\u5404\u7a2e\u30d7\u30ed\u30d0\u30a4\u30c0\u30d5\u30a1\u30a4\u30eb\u306e\u30ed\u30c3\u30af\u30d5\u30a1\u30a4\u30eb<\/div>\n<\/div>\n<p>.terraform.lock.hcl\u662f\u4e00\u4e2a\u7c7b\u4f3c\u4e0b\u9762\u8fd9\u6837\u7684\u6587\u4ef6\u3002<\/p>\n<p>\u4e3a\u4e86\u786e\u4fdd\u5373\u4f7f\u6267\u884c\u73af\u5883\u6539\u53d8\uff0cProvider\u7684\u64cd\u4f5c\u4e5f\u4e0d\u4f1a\u6539\u53d8\uff0c\u9700\u8981\u4e00\u4e2a\u6587\u4ef6\u6765\u5b9e\u73b0\u8fd9\u4e00\u70b9\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\"># This file is maintained automatically by \"terraform init\".<\/span>\r\n<span class=\"c1\"># Manual edits may be lost in future updates.<\/span>\r\n\r\n<span class=\"nx\">provider<\/span> <span class=\"s2\">\"registry.terraform.io\/hashicorp\/aws\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">version<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"4.20.1\"<\/span>\r\n  <span class=\"nx\">hashes<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"s2\">\"h1:mU0Rl9mMkny1Q34aiQMSTA2R\/wfVPJgHQGM+\/GYUfG0=\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:21d064d8fac08376c633e002e2f36e83eb7958535e251831feaf38f51c49dafd\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:3a37912ff43d89ce8d559ec86265d7506801bccb380c7cfb896e8ff24e3fe79d\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:795eb175c85279ec51dbe12e4d1afa0860c2c0b22e5d36a8e8869f60a93b7931\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:8afb61a18b17f8ff249cb23e9d3b5d2530944001ef1d56c1d53f41b0890c7ab8\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:911701040395e0e4da4b7252279e7cf1593cdd26f22835e1a9eddbdb9691a1a7\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:a46d54a6a5407f569f8178e916af888b2b268f86448c64cad165dc89759c8399\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:c5f71fd5e3519a24fd6af455ef1c26a559cfdde7f626b0afbd2a73bb79f036b1\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:df3b69d6c9b0cdc7e3f90ee08412b22332c32e97ad8ce6ccad528f89f235a7d3\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:e99d6a64c03549d60c2accf792fa04466cfb317f72e895c8f67eff8a02920887\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:eea7a0df8bcb69925c9ce8e15ef403c8bbf16d46c43e8f5607b116531d1bce4a\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"zh:f6a26ce77f7db1d50ce311e32902fd001fb365e5e45e47a9a5cd59d734c89cb6\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">]<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u6b64\u5916\uff0c\u6267\u884cterraform init\u65f6\uff0c\u5c06\u4f1a\u8f93\u51fa\u5982\u4e0b\u7ed3\u679c\uff0c\u5e76\u8fdb\u884c\u5404\u79cd\u63d0\u4f9b\u5546\u8d44\u6e90\u521b\u5efa\u5de5\u5177\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u4e0b\u8f7d\u548c\u521d\u59cb\u5316\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nx\">$<\/span> <span class=\"nx\">terraform<\/span> <span class=\"nx\">init<\/span>\r\n\r\n<span class=\"nx\">Initializing<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">backend<\/span><span class=\"err\">...<\/span>\r\n\r\n<span class=\"nx\">Initializing<\/span> <span class=\"nx\">provider<\/span> <span class=\"nx\">plugins<\/span><span class=\"err\">...<\/span>\r\n<span class=\"err\">-<\/span> <span class=\"nx\">Finding<\/span> <span class=\"nx\">latest<\/span> <span class=\"nx\">version<\/span> <span class=\"nx\">of<\/span> <span class=\"nx\">hashicorp<\/span><span class=\"err\">\/<\/span><span class=\"nx\">aws<\/span><span class=\"err\">...<\/span>\r\n<span class=\"err\">-<\/span> <span class=\"nx\">Installing<\/span> <span class=\"nx\">hashicorp<\/span><span class=\"err\">\/<\/span><span class=\"nx\">aws<\/span> <span class=\"nx\">v4<\/span><span class=\"err\">.<\/span><span class=\"mf\">20.1<\/span><span class=\"err\">...<\/span>\r\n<span class=\"err\">-<\/span> <span class=\"nx\">Installed<\/span> <span class=\"nx\">hashicorp<\/span><span class=\"err\">\/<\/span><span class=\"nx\">aws<\/span> <span class=\"nx\">v4<\/span><span class=\"err\">.<\/span><span class=\"mf\">20.1<\/span> <span class=\"err\">(<\/span><span class=\"nx\">signed<\/span> <span class=\"nx\">by<\/span> <span class=\"nx\">HashiCorp<\/span><span class=\"err\">)<\/span>\r\n\r\n<span class=\"nx\">Terraform<\/span> <span class=\"nx\">has<\/span> <span class=\"nx\">created<\/span> <span class=\"nx\">a<\/span> <span class=\"nx\">lock<\/span> <span class=\"nx\">file<\/span> <span class=\"err\">.<\/span><span class=\"nx\">terraform<\/span><span class=\"err\">.<\/span><span class=\"nx\">lock<\/span><span class=\"err\">.<\/span><span class=\"nx\">hcl<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">record<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">provider<\/span>\r\n<span class=\"nx\">selections<\/span> <span class=\"nx\">it<\/span> <span class=\"nx\">made<\/span> <span class=\"nx\">above<\/span><span class=\"err\">.<\/span> <span class=\"nx\">Include<\/span> <span class=\"nx\">this<\/span> <span class=\"nx\">file<\/span> <span class=\"nx\">in<\/span> <span class=\"nx\">your<\/span> <span class=\"nx\">version<\/span> <span class=\"nx\">control<\/span> <span class=\"nx\">repository<\/span>\r\n<span class=\"nx\">so<\/span> <span class=\"nx\">that<\/span> <span class=\"nx\">Terraform<\/span> <span class=\"nx\">can<\/span> <span class=\"nx\">guarantee<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">make<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">same<\/span> <span class=\"nx\">selections<\/span> <span class=\"nx\">by<\/span> <span class=\"nx\">default<\/span> <span class=\"nx\">when<\/span>\r\n<span class=\"nx\">you<\/span> <span class=\"nx\">run<\/span> <span class=\"s2\">\"terraform init\"<\/span> <span class=\"nx\">in<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">future<\/span><span class=\"err\">.<\/span>\r\n\r\n<span class=\"nx\">Terraform<\/span> <span class=\"nx\">has<\/span> <span class=\"nx\">been<\/span> <span class=\"nx\">successfully<\/span> <span class=\"nx\">initialized<\/span><span class=\"err\">!<\/span>\r\n\r\n<span class=\"nx\">You<\/span> <span class=\"nx\">may<\/span> <span class=\"nx\">now<\/span> <span class=\"nx\">begin<\/span> <span class=\"nx\">working<\/span> <span class=\"nx\">with<\/span> <span class=\"nx\">Terraform<\/span><span class=\"err\">.<\/span> <span class=\"nx\">Try<\/span> <span class=\"nx\">running<\/span> <span class=\"s2\">\"terraform plan\"<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">see<\/span>\r\n<span class=\"nx\">any<\/span> <span class=\"nx\">changes<\/span> <span class=\"nx\">that<\/span> <span class=\"nx\">are<\/span> <span class=\"nx\">required<\/span> <span class=\"nx\">for<\/span> <span class=\"nx\">your<\/span> <span class=\"nx\">infrastructure<\/span><span class=\"err\">.<\/span> <span class=\"nx\">All<\/span> <span class=\"nx\">Terraform<\/span> <span class=\"nx\">commands<\/span>\r\n<span class=\"nx\">should<\/span> <span class=\"nx\">now<\/span> <span class=\"nx\">work<\/span><span class=\"err\">.<\/span>\r\n\r\n<span class=\"nx\">If<\/span> <span class=\"nx\">you<\/span> <span class=\"nx\">ever<\/span> <span class=\"nx\">set<\/span> <span class=\"nx\">or<\/span> <span class=\"nx\">change<\/span> <span class=\"nx\">modules<\/span> <span class=\"nx\">or<\/span> <span class=\"nx\">backend<\/span> <span class=\"nx\">configuration<\/span> <span class=\"nx\">for<\/span> <span class=\"nx\">Terraform<\/span><span class=\"err\">,<\/span>\r\n<span class=\"nx\">rerun<\/span> <span class=\"nx\">this<\/span> <span class=\"nx\">command<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">reinitialize<\/span> <span class=\"nx\">your<\/span> <span class=\"nx\">working<\/span> <span class=\"nx\">directory<\/span><span class=\"err\">.<\/span> <span class=\"nx\">If<\/span> <span class=\"nx\">you<\/span> <span class=\"nx\">forget<\/span><span class=\"err\">,<\/span> <span class=\"nx\">other<\/span>\r\n<span class=\"nx\">commands<\/span> <span class=\"nx\">will<\/span> <span class=\"nx\">detect<\/span> <span class=\"nx\">it<\/span> <span class=\"nx\">and<\/span> <span class=\"nx\">remind<\/span> <span class=\"nx\">you<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">do<\/span> <span class=\"nx\">so<\/span> <span class=\"nx\">if<\/span> <span class=\"nx\">necessary<\/span><span class=\"err\">.<\/span>\r\n<\/code><\/pre>\n<h2>\u6267\u884cterraform fmt<\/h2>\n<p>\u5c3d\u7ba1\u4e0d\u5fc5\u6bcf\u6b21\u6267\u884cterraform fmt\uff0c\u4f46\u6267\u884cterraform fmt\u4f1a\u81ea\u52a8\u683c\u5f0f\u5316\u521a\u624d\u7f16\u5199\u7684\u6e90\u4ee3\u7801\u6587\u4ef6\uff0c\u56e0\u6b64\u5efa\u8bae\u5728\u7f16\u7801\u540e\u6267\u884c\u8be5\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nx\">terraform<\/span> <span class=\"nx\">fmt<\/span>\r\n<\/code><\/pre>\n<p>\u987a\u4fbf\u63d0\u4e00\u4e0b\uff0c\u5982\u679c\u5728\u5148\u524d\u7f16\u5199\u7684main.tf\u6587\u4ef6\u4e0a\u6267\u884cterraform fmt\u547d\u4ee4\uff0c\u5c06\u4f1a\u6309\u7167\u4ee5\u4e0b\u65b9\u5f0f\u8fdb\u884c\u683c\u5f0f\u5316\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nx\">provider<\/span> <span class=\"s2\">\"aws\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">region<\/span>  <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1\"<\/span>\r\n  <span class=\"nx\">profile<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"default\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_instance\"<\/span> <span class=\"s2\">\"testtf\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">ami<\/span>           <span class=\"p\">=<\/span> <span class=\"s2\">\"ami-0b7546e839d7ace12\"<\/span>\r\n  <span class=\"nx\">instance_type<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"t3.micro\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h2>\u6267\u884cterraform plan<\/h2>\n<p>\u5f53\u6267\u884cterraform plan\u65f6\uff0c\u53ef\u4ee5\u67e5\u770b\u5c06\u521b\u5efa\u3001\u66f4\u6539\u6216\u5220\u9664\u54ea\u4e9b\u8d44\u6e90\u7684\u4fe1\u606f\u3002<\/p>\n<p>\u53ea\u9700\u4e00\u4e2a\u9009\u9879\uff0c\u5c06\u4ee5\u4e0b\u5185\u5bb9\u7528\u4e2d\u6587\u8fdb\u884c\u672c\u5730\u5316\uff1a<br \/>\n\u7531\u4e8e\u4e0d\u4f1a\u76f4\u63a5\u521b\u5efa\uff0c\u56e0\u6b64\u7528\u4e8e\u5728\u6267\u884c\u4e0b\u4e00\u4e2a terraform apply \u547d\u4ee4\u4e4b\u524d\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<p>\u5728terraform apply\u6267\u884c\u65f6\uff0c\u4ee5\u4e0b\u4ee5\u300c+\u300d\u663e\u793a\u7684\u8d44\u6e90\u5c06\u4f1a\u88ab\u521b\u5efa\uff0c\u4ee5\u300c~\u300d\u663e\u793a\u7684\u8d44\u6e90\u5c06\u4f1a\u88ab\u5220\u9664\u3002\uff08\u672c\u6b21\u64cd\u4f5c\u4e2d\u6ca1\u6709\u300c~\u300d\u663e\u793a\u7684\u8d44\u6e90\uff09\u3002<\/p>\n<details>terraform plan\u7684\u6267\u884c\u7ed3\u679c\uff08\u8bf7\u5c55\u5f00\uff09terraform_plan\u7684\u6267\u884c<br \/>\n$ terraform plan<\/p>\n<p>Terraform\u4f7f\u7528\u6240\u9009\u7684\u63d0\u4f9b\u7a0b\u5e8f\u751f\u6210\u4ee5\u4e0b\u6267\u884c\u8ba1\u5212\u3002\u8d44\u6e90\u64cd\u4f5c\u4f7f\u7528\u4ee5\u4e0b\u7b26\u53f7\u8868\u793a\uff1a<br \/>\n+ \u521b\u5efa<\/p>\n<p>Terraform\u5c06\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a<\/p>\n<p># aws_instance.testtf \u5c06\u88ab\u521b\u5efa<br \/>\n+ resource &#8220;aws_instance&#8221; &#8220;testtf&#8221; {<br \/>\n+ ami = &#8220;ami-0b7546e839d7ace12&#8221;<br \/>\n+ arn = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ associate_public_ip_address = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ availability_zone = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ cpu_core_count = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ cpu_threads_per_core = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ disable_api_stop = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ disable_api_termination = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ ebs_optimized = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ get_password_data = false<br \/>\n+ host_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ instance_initiated_shutdown_behavior = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ instance_state = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ instance_type = &#8220;t3.micro&#8221;<br \/>\n+ ipv6_address_count = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ ipv6_addresses = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ key_name = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ monitoring = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ outpost_arn = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ password_data = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ placement_group = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ placement_partition_number = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ primary_network_interface_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ private_dns = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ private_ip = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ public_dns = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ public_ip = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ secondary_private_ips = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ security_groups = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ source_dest_check = true<br \/>\n+ subnet_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ tags_all = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ tenancy = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ user_data = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ user_data_base64 = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ user_data_replace_on_change = false<br \/>\n+ vpc_security_group_ids = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<\/p>\n<p>+ capacity_reservation_specification {<br \/>\n+ capacity_reservation_preference = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<\/p>\n<p>+ capacity_reservation_target {<br \/>\n+ capacity_reservation_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ capacity_reservation_resource_group_arn = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<br \/>\n}<\/p>\n<p>+ ebs_block_device {<br \/>\n+ delete_on_termination = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ device_name = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ encrypted = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ iops = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ kms_key_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ snapshot_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ tags = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ throughput = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ volume_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ volume_size = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ volume_type = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<\/p>\n<p>+ enclave_options {<br \/>\n+ enabled = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<\/p>\n<p>+ ephemeral_block_device {<br \/>\n+ device_name = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ no_device = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ virtual_name = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<\/p>\n<p>+ maintenance_options {<br \/>\n+ auto_recovery = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<\/p>\n<p>+ metadata_options {<br \/>\n+ http_endpoint = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ http_put_response_hop_limit = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ http_tokens = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ instance_metadata_tags = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<\/p>\n<p>+ network_interface {<br \/>\n+ delete_on_termination = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ device_index = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ network_card_index = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ network_interface_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<\/p>\n<p>+ private_dns_name_options {<br \/>\n+ enable_resource_name_dns_a_record = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ enable_resource_name_dns_aaaa_record = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ hostname_type = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<\/p>\n<p>+ root_block_device {<br \/>\n+ delete_on_termination = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ device_name = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ encrypted = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ iops = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ kms_key_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ tags = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ throughput = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ volume_id = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ volume_size = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n+ volume_type = (\u5728\u5e94\u7528\u540e\u786e\u5b9a)<br \/>\n}<br \/>\n}<\/p>\n<p>\u8ba1\u5212\uff1a\u6dfb\u52a01\u4e2a\uff0c\u66f4\u65390\u4e2a\uff0c\u9500\u6bc10\u4e2a\u3002<\/p>\n<p>\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<\/p>\n<p>\u6ce8\u610f\uff1a\u60a8\u6ca1\u6709\u4f7f\u7528 -out \u9009\u9879\u4fdd\u5b58\u6b64\u8ba1\u5212\uff0c\u56e0\u6b64\u5982\u679c\u60a8\u73b0\u5728\u8fd0\u884c &#8220;terraform apply&#8221;\uff0cTerraform\u65e0\u6cd5\u4fdd\u8bc1\u5b8c\u5168\u6309\u7167\u6b64\u8ba1\u5212\u6267\u884c\u64cd\u4f5c\u3002<\/p>\n<\/details>\n<h2>\u6267\u884cterraform apply<\/h2>\n<p>\u6267\u884cterraform apply\u65f6\uff0c\u4f1a\u6267\u884c\u4ee3\u7801\u5e76\u5728\u6bcf\u4e2a\u63d0\u4f9b\u5546\u73af\u5883\uff08\u672c\u4f8b\u4e3aAWS\uff09\u4e2d\u521b\u5efa\u5404\u79cd\u8d44\u6e90\u3002<\/p>\n<p>\u6b64\u5916\uff0c\u5728\u8fc7\u7a0b\u4e2d\u4f1a\u6709\u8d44\u6e90\u521b\u5efa\u786e\u8ba4\uff0c\u5e76\u4e14\u9700\u8981\u8f93\u5165\uff0c\u56e0\u6b64\u8f93\u5165\u201c\u662f\u201d\u7136\u540e\u6267\u884c\u3002<\/p>\n<p>\u5982\u679c\u8981\u8fdb\u884c\u81ea\u52a8\u5316\u7b49\u64cd\u4f5c\uff0c\u5e76\u4e14\u60f3\u8981\u7701\u7565\u5bf9&#8221;yes&#8221;\u7684\u8f93\u5165\uff0c\u53ea\u9700\u5728\u6267\u884c\u65f6\u6dfb\u52a0-auto-approve\u9009\u9879\u5373\u53ef\u7701\u7565\u8f93\u5165\u3002<\/p>\n<details>terraform apply\u7684\u6267\u884c\u7ed3\u679c\uff08\u8bf7\u5c55\u5f00\uff09terraform_apply\u7684\u6267\u884c<br \/>\n$ terraform apply<\/p>\n<p>Terraform\u4f7f\u7528\u6240\u9009\u63d0\u4f9b\u7a0b\u5e8f\u751f\u6210\u4ee5\u4e0b\u6267\u884c\u8ba1\u5212\u3002\u8d44\u6e90\u64cd\u4f5c\u7528\u4ee5\u4e0b\u7b26\u53f7\u8868\u793a\uff1a<br \/>\n+ \u521b\u5efa<\/p>\n<p>Terraform\u5c06\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a<\/p>\n<p># \u5c06\u521b\u5efaaws_instance.testtf<br \/>\n+ resource &#8220;aws_instance&#8221; &#8220;testtf&#8221; {<br \/>\n+ ami = &#8220;ami-0b7546e839d7ace12&#8221;<br \/>\n+ arn = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ associate_public_ip_address = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ availability_zone = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ cpu_core_count = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ cpu_threads_per_core = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ disable_api_stop = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ disable_api_termination = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ ebs_optimized = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ get_password_data = false<br \/>\n+ host_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ instance_initiated_shutdown_behavior = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ instance_state = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ instance_type = &#8220;t3.micro&#8221;<br \/>\n+ ipv6_address_count = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ ipv6_addresses = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ key_name = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ monitoring = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ outpost_arn = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ password_data = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ placement_group = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ placement_partition_number = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ primary_network_interface_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ private_dns = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ private_ip = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ public_dns = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ public_ip = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ secondary_private_ips = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ security_groups = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ source_dest_check = true<br \/>\n+ subnet_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ tags_all = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ tenancy = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ user_data = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ user_data_base64 = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ user_data_replace_on_change = false<br \/>\n+ vpc_security_group_ids = (\u7533\u8bf7\u540e\u5df2\u77e5)<\/p>\n<p>+ capacity_reservation_specification {<br \/>\n+ capacity_reservation_preference = (\u7533\u8bf7\u540e\u5df2\u77e5)<\/p>\n<p>+ capacity_reservation_target {<br \/>\n+ capacity_reservation_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ capacity_reservation_resource_group_arn = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<br \/>\n}<\/p>\n<p>+ ebs_block_device {<br \/>\n+ delete_on_termination = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ device_name = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ encrypted = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ iops = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ kms_key_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ snapshot_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ tags = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ throughput = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ volume_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ volume_size = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ volume_type = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<\/p>\n<p>+ enclave_options {<br \/>\n+ enabled = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<\/p>\n<p>+ ephemeral_block_device {<br \/>\n+ device_name = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ no_device = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ virtual_name = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<\/p>\n<p>+ maintenance_options {<br \/>\n+ auto_recovery = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<\/p>\n<p>+ metadata_options {<br \/>\n+ http_endpoint = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ http_put_response_hop_limit = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ http_tokens = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ instance_metadata_tags = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<\/p>\n<p>+ network_interface {<br \/>\n+ delete_on_termination = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ device_index = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ network_card_index = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ network_interface_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<\/p>\n<p>+ private_dns_name_options {<br \/>\n+ enable_resource_name_dns_a_record = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ enable_resource_name_dns_aaaa_record = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ hostname_type = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<\/p>\n<p>+ root_block_device {<br \/>\n+<br \/>\n+ delete_on_termination = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ device_name = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ encrypted = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ iops = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ kms_key_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ tags = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ throughput = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ volume_id = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ volume_size = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n+ volume_type = (\u7533\u8bf7\u540e\u5df2\u77e5)<br \/>\n}<br \/>\n}<\/p>\n<p>\u8ba1\u5212\uff1a\u6dfb\u52a01\u4e2a\uff0c\u66f4\u65390\u4e2a\uff0c\u5220\u96640\u4e2a\u3002<\/p>\n<p>\u60a8\u8981\u6267\u884c\u8fd9\u4e9b\u64cd\u4f5c\u5417\uff1f<br \/>\nTerraform\u5c06\u6267\u884c\u4e0a\u8ff0\u64cd\u4f5c\u3002<br \/>\n\u53ea\u63a5\u53d7\u201c\u662f\u201d\u4ee5\u6279\u51c6\u3002<\/p>\n<p>\u8bf7\u8f93\u5165\u4e00\u4e2a\u503c\uff1a\u662f<\/p>\n<p>aws_instance.testtf\uff1a\u521b\u5efa\u4e2d&#8230;<br \/>\naws_instance.testtf\uff1a\u4ecd\u5728\u521b\u5efa\u4e2d&#8230;[\u5df2\u8fc7\u53bb10\u79d2]<br \/>\naws_instance.testtf\uff1a\u521b\u5efa\u5b8c\u6210\uff0c\u8017\u65f613\u79d2[id=i-058f9caf6b5fabfd0]<\/p>\n<p>\u5e94\u7528\u5b8c\u6210\uff01\u8d44\u6e90\uff1a\u65b0\u589e1\u4e2a\uff0c\u66f4\u65390\u4e2a\uff0c\u5220\u96640\u4e2a\u3002<\/p>\n<\/details>\n<p>\u5bf9\u5e94\u4e8e\u4e2d\u56fd\u7684\u4e92\u8054\u7f51\uff0cterraform apply\u6267\u884c\u540e\uff0c\u5c06\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a\u540d\u4e3aterraform.tfstate\u7684\u6587\u4ef6\u3002<\/p>\n<p>terraform.tfstate\u6587\u4ef6\u8bb0\u5f55\u4e86\u5728terraform apply\u6267\u884c\u65f6\u7684\u6bcf\u4e2a\u63d0\u4f9b\u7a0b\u5e8f\uff08\u672c\u4f8b\u4e2d\u4e3aAWS\uff09\u73af\u5883\u7684\u72b6\u6001\uff0c\u5e76\u4e14\u5728\u4e0b\u4e00\u6b21terraform apply\u6267\u884c\u65f6\uff0c\u4f1a\u5c06\u5176\u4e0eterraform.tfstate\u6587\u4ef6\u4e2d\u8bb0\u5f55\u7684\u73af\u5883\u4fe1\u606f\u8fdb\u884c\u6bd4\u8f83\uff0c\u4ec5\u8fdb\u884c\u6dfb\u52a0\u3001\u5220\u9664\u7b49\u64cd\u4f5c\u3002<\/p>\n<details>terraform.tfstate\u6587\u4ef6\u663e\u793a\u793a\u4f8b\uff08\u8bf7\u5c55\u5f00\uff09terraform.tfstate\u6587\u4ef6<br \/>\n{<br \/>\n&#8220;version&#8221;: 4,<br \/>\n&#8220;terraform_version&#8221;: &#8220;1.2.3&#8221;,<br \/>\n&#8220;serial&#8221;: 1,<br \/>\n&#8220;lineage&#8221;: &#8220;f0456b47-464f-3c3f-e246-4aeea30425b8&#8221;,<br \/>\n&#8220;outputs&#8221;: {},<br \/>\n&#8220;resources&#8221;: [<br \/>\n{<br \/>\n&#8220;mode&#8221;: &#8220;managed&#8221;,<br \/>\n&#8220;type&#8221;: &#8220;aws_instance&#8221;,<br \/>\n&#8220;name&#8221;: &#8220;testtf&#8221;,<br \/>\n&#8220;provider&#8221;: &#8220;provider[\\&#8221;registry.terraform.io\/hashicorp\/aws\\&#8221;]&#8221;,<br \/>\n&#8220;instances&#8221;: [<br \/>\n{<br \/>\n&#8220;schema_version&#8221;: 1,<br \/>\n&#8220;attributes&#8221;: {<br \/>\n&#8220;ami&#8221;: &#8220;ami-0b7546e839d7ace12&#8221;,<br \/>\n&#8220;arn&#8221;: &#8220;arn:aws:ec2:ap-northeast-1:335417439444:instance\/i-058f9caf6b5fabfd0&#8221;,<br \/>\n&#8220;associate_public_ip_address&#8221;: true,<br \/>\n&#8220;availability_zone&#8221;: &#8220;ap-northeast-1d&#8221;,<br \/>\n&#8220;capacity_reservation_specification&#8221;: [<br \/>\n{<br \/>\n&#8220;capacity_reservation_preference&#8221;: &#8220;open&#8221;,<br \/>\n&#8220;capacity_reservation_target&#8221;: []<br \/>\n}<br \/>\n],<br \/>\n&#8220;cpu_core_count&#8221;: 1,<br \/>\n&#8220;cpu_threads_per_core&#8221;: 2,<br \/>\n&#8220;credit_specification&#8221;: [<br \/>\n{<br \/>\n&#8220;cpu_credits&#8221;: &#8220;unlimited&#8221;<br \/>\n}<br \/>\n],<br \/>\n&#8220;disable_api_stop&#8221;: false,<br \/>\n&#8220;disable_api_termination&#8221;: false,<br \/>\n&#8220;ebs_block_device&#8221;: [],<br \/>\n&#8220;ebs_optimized&#8221;: false,<br \/>\n&#8220;enclave_options&#8221;: [<br \/>\n{<br \/>\n&#8220;enabled&#8221;: false<br \/>\n}<br \/>\n],<br \/>\n&#8220;ephemeral_block_device&#8221;: [],<br \/>\n&#8220;get_password_data&#8221;: false,<br \/>\n&#8220;hibernation&#8221;: false,<br \/>\n&#8220;host_id&#8221;: null,<br \/>\n&#8220;iam_instance_profile&#8221;: &#8220;&#8221;,<br \/>\n&#8220;id&#8221;: &#8220;i-058f9caf6b5fabfd0&#8221;,<br \/>\n&#8220;instance_initiated_shutdown_behavior&#8221;: &#8220;stop&#8221;,<br \/>\n&#8220;instance_state&#8221;: &#8220;running&#8221;,<br \/>\n&#8220;instance_type&#8221;: &#8220;t3.micro&#8221;,<br \/>\n&#8220;ipv6_address_count&#8221;: 0,<br \/>\n&#8220;ipv6_addresses&#8221;: [],<br \/>\n&#8220;key_name&#8221;: &#8220;&#8221;,<br \/>\n&#8220;launch_template&#8221;: [],<br \/>\n&#8220;maintenance_options&#8221;: [<br \/>\n{<br \/>\n&#8220;auto_recovery&#8221;: &#8220;default&#8221;<br \/>\n}<br \/>\n],<br \/>\n&#8220;metadata_options&#8221;: [<br \/>\n{<br \/>\n&#8220;http_endpoint&#8221;: &#8220;enabled&#8221;,<br \/>\n&#8220;http_put_response_hop_limit&#8221;: 1,<br \/>\n&#8220;http_tokens&#8221;: &#8220;optional&#8221;,<br \/>\n&#8220;instance_metadata_tags&#8221;: &#8220;disabled&#8221;<br \/>\n}<br \/>\n],<br \/>\n&#8220;monitoring&#8221;: false,<br \/>\n&#8220;network_interface&#8221;: [],<br \/>\n&#8220;outpost_arn&#8221;: &#8220;&#8221;,<br \/>\n&#8220;password_data&#8221;: &#8220;&#8221;,<br \/>\n&#8220;placement_group&#8221;: &#8220;&#8221;,<br \/>\n&#8220;placement_partition_number&#8221;: null,<br \/>\n&#8220;primary_network_interface_id&#8221;: &#8220;eni-00a399526fcba5d63&#8221;,<br \/>\n&#8220;private_dns&#8221;: &#8220;ip-172-31-21-72.ap-northeast-1.compute.internal&#8221;,<br \/>\n&#8220;private_dns_name_options&#8221;: [<br \/>\n{<br \/>\n&#8220;enable_resource_name_dns_a_record&#8221;: false,<br \/>\n&#8220;enable_resource_name_dns_aaaa_record&#8221;: false,<br \/>\n&#8220;hostname_type&#8221;: &#8220;ip-name&#8221;<br \/>\n}<br \/>\n],<br \/>\n&#8220;private_ip&#8221;: &#8220;172.31.21.72&#8221;,<br \/>\n&#8220;public_dns&#8221;: &#8220;ec2-35-78-254-110.ap-northeast-1.compute.amazonaws.com&#8221;,<br \/>\n&#8220;public_ip&#8221;: &#8220;35.78.254.110&#8221;,<br \/>\n&#8220;root_block_device&#8221;: [<br \/>\n{<br \/>\n&#8220;delete_on_termination&#8221;: true,<br \/>\n&#8220;device_name&#8221;: &#8220;\/dev\/xvda&#8221;,<br \/>\n&#8220;encrypted&#8221;: false,<br \/>\n&#8220;iops&#8221;: 100,<br \/>\n&#8220;kms_key_id&#8221;: &#8220;&#8221;,<br \/>\n&#8220;tags&#8221;: {},<br \/>\n&#8220;throughput&#8221;: 0,<br \/>\n&#8220;volume_id&#8221;: &#8220;vol-0eb3884c49cb32c24&#8221;,<br \/>\n&#8220;volume_size&#8221;: 8,<br \/>\n&#8220;volume_type&#8221;: &#8220;gp2&#8221;<br \/>\n}<br \/>\n],<br \/>\n&#8220;secondary_private_ips&#8221;: [],<br \/>\n&#8220;security_groups&#8221;: [<br \/>\n&#8220;default&#8221;<br \/>\n],<br \/>\n&#8220;source_dest_check&#8221;: true,<br \/>\n&#8220;subnet_id&#8221;: &#8220;subnet-c50cc9ee&#8221;,<br \/>\n&#8220;tags&#8221;: null,<br \/>\n&#8220;tags_all&#8221;: {},<br \/>\n&#8220;tenancy&#8221;: &#8220;default&#8221;,<br \/>\n&#8220;timeouts&#8221;: null,<br \/>\n&#8220;user_data&#8221;: null,<br \/>\n&#8220;user_data_base64&#8221;: null,<br \/>\n&#8220;user_data_replace_on_change&#8221;: false,<br \/>\n&#8220;volume_tags&#8221;: null,<br \/>\n&#8220;vpc_security_group_ids&#8221;: [<br \/>\n&#8220;sg-70df8a0e&#8221;<br \/>\n]<br \/>\n},<br \/>\n&#8220;sensitive_attributes&#8221;: [],<br \/>\n&#8220;private&#8221;: &#8220;eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6MTIwMDAwMDAwMDAwMCwidXBkYXRlIjo2MDAwMDAwMDAwMDB9LCJzY2hlbWFfdmVyc2lvbiI6IjEifQ==&#8221;<br \/>\n}<br \/>\n]<br \/>\n}<br \/>\n]<br \/>\n}<\/p>\n<\/details>\n<p>\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5b83\u5c06\u5728\u672c\u5730\u7684\u5f53\u524d\u76ee\u5f55\u4e2d\u521b\u5efa\uff0c\u4f46\u5728\u591a\u4eba\u5f00\u53d1\u6216\u5728\u591a\u53f0\u7ec8\u7aef\u4e0a\u5f00\u53d1\u7684\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u6bcf\u4e2a\u7528\u6237\u90fd\u5728\u672c\u5730\u5355\u72ec\u7ba1\u7406\uff0c\u90a3\u4e48\u7531\u4e8e\u6267\u884c\u64cd\u4f5c\u7684\u7528\u6237\u4e0d\u540c\uff0c\u884c\u4e3a\u5c06\u4f1a\u53d1\u751f\u53d8\u5316\uff0c\u56e0\u6b64\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u9700\u8981\u5728\u8fdc\u7a0b\u5b58\u50a8\u4e2d\u8fdb\u884c\u7ba1\u7406\uff0c\u800c\u4e0d\u662f\u5728\u672c\u5730\u3002<\/p>\n<h1>\u5220\u9664\u8d44\u6e90\u7684\u65b9\u6cd5<\/h1>\n<p>\u5982\u679c\u60a8\u60f3\u8981\u6279\u91cf\u5220\u9664\u5df2\u521b\u5efa\u7684\u8d44\u6e90\uff0c\u53ef\u4ee5\u901a\u8fc7\u6267\u884cterraform destroy\u547d\u4ee4\u6765\u5220\u9664\u6240\u6709\u73af\u5883\u3002<\/p>\n<p>\u5728\u5220\u9664\u65f6\uff0c\u9700\u8981\u786e\u8ba4\u662f\u5426\u5220\u9664\u8d44\u6e90\uff0c\u5e76\u8981\u6c42\u8f93\u5165\u201cyes\u201d\u540e\u624d\u6267\u884c\u3002<\/p>\n<p>\u5728\u4f7f\u7528terraform destroy\u547d\u4ee4\u65f6\uff0c\u53ef\u4ee5\u6dfb\u52a0-auto-approve\u9009\u9879\u4ee5\u7701\u7565\u8f93\u5165\uff0c\u53ea\u9700\u6267\u884c\u547d\u4ee4\u5373\u53ef\u3002<\/p>\n<details>terraform destroy\u6267\u884c\u7684\u7ed3\u679c\uff08\u8bf7\u5c55\u793a\uff09\u6267\u884cterrafrom destroy<br \/>\n$ terraform destroy<br \/>\naws_instance.testtf: \u5237\u65b0\u72b6\u6001&#8230; [id=i-058f9caf6b5fabfd0]<\/p>\n<p>Terraform\u4f7f\u7528\u6240\u9009\u7684\u63d0\u4f9b\u7a0b\u5e8f\u751f\u6210\u4ee5\u4e0b\u6267\u884c\u8ba1\u5212\u3002\u8d44\u6e90\u64cd\u4f5c\u7528\u4ee5\u4e0b\u7b26\u53f7\u8868\u793a\uff1a<br \/>\n&#8211; \u9500\u6bc1<\/p>\n<p>Terraform\u5c06\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a<\/p>\n<p># aws_instance.testtf\u5c06\u88ab\u9500\u6bc1<br \/>\n&#8211; \u8d44\u6e90 &#8220;aws_instance&#8221; &#8220;testtf&#8221; {<br \/>\n&#8211; ami = &#8220;ami-0b7546e839d7ace12&#8221; -&gt; null<br \/>\n&#8211; arn = &#8220;arn:aws:ec2:ap-northeast-1:335417439444:instance\/i-058f9caf6b5fabfd0&#8221; -&gt; null<br \/>\n&#8211; associate_public_ip_address = true -&gt; null<br \/>\n&#8211; availability_zone = &#8220;ap-northeast-1d&#8221; -&gt; null<br \/>\n&#8211; cpu_core_count = 1 -&gt; null<br \/>\n&#8211; cpu_threads_per_core = 2 -&gt; null<br \/>\n&#8211; disable_api_stop = false -&gt; null<br \/>\n&#8211; disable_api_termination = false -&gt; null<br \/>\n&#8211; ebs_optimized = false -&gt; null<br \/>\n&#8211; get_password_data = false -&gt; null<br \/>\n&#8211; hibernation = false -&gt; null<br \/>\n&#8211; id = &#8220;i-058f9caf6b5fabfd0&#8221; -&gt; null<br \/>\n&#8211; instance_initiated_shutdown_behavior = &#8220;stop&#8221; -&gt; null<br \/>\n&#8211; instance_state = &#8220;running&#8221; -&gt; null<br \/>\n&#8211; instance_type = &#8220;t3.micro&#8221; -&gt; null<br \/>\n&#8211; ipv6_address_count = 0 -&gt; null<br \/>\n&#8211; ipv6_addresses = [] -&gt; null<br \/>\n&#8211; monitoring = false -&gt; null<br \/>\n&#8211; primary_network_interface_id = &#8220;eni-00a399526fcba5d63&#8221; -&gt; null<br \/>\n&#8211; private_dns = &#8220;ip-172-31-21-72.ap-northeast-1.compute.internal&#8221; -&gt; null<br \/>\n&#8211; private_ip = &#8220;172.31.21.72&#8221; -&gt; null<br \/>\n&#8211; public_dns = &#8220;ec2-35-78-254-110.ap-northeast-1.compute.amazonaws.com&#8221; -&gt; null<br \/>\n&#8211; public_ip = &#8220;35.78.254.110&#8221; -&gt; null<br \/>\n&#8211; secondary_private_ips = [] -&gt; null<br \/>\n&#8211; security_groups = [<br \/>\n&#8211; &#8220;default&#8221;,<br \/>\n] -&gt; null<br \/>\n&#8211; source_dest_check = true -&gt; null<br \/>\n&#8211; subnet_id = &#8220;subnet-c50cc9ee&#8221; -&gt; null<br \/>\n&#8211; tags = {} -&gt; null<br \/>\n&#8211; tags_all = {} -&gt; null<br \/>\n&#8211; tenancy = &#8220;default&#8221; -&gt; null<br \/>\n&#8211; user_data_replace_on_change = false -&gt; null<br \/>\n&#8211; vpc_security_group_ids = [<br \/>\n&#8211; &#8220;sg-70df8a0e&#8221;,<br \/>\n] -&gt; null<\/p>\n<p>&#8211; capacity_reservation_specification {<br \/>\n&#8211; capacity_reservation_preference = &#8220;open&#8221; -&gt; null<br \/>\n}<\/p>\n<p>&#8211; credit_specification {<br \/>\n&#8211; cpu_credits = &#8220;unlimited&#8221; -&gt; null<br \/>\n}<\/p>\n<p>&#8211; enclave_options {<br \/>\n&#8211; enabled = false -&gt; null<br \/>\n}<\/p>\n<p>&#8211; maintenance_options {<br \/>\n&#8211; auto_recovery = &#8220;default&#8221; -&gt; null<br \/>\n}<\/p>\n<p>&#8211; metadata_options {<br \/>\n&#8211; http_endpoint = &#8220;enabled&#8221; -&gt; null<br \/>\n&#8211; http_put_response_hop_limit = 1 -&gt; null<br \/>\n&#8211; http_tokens = &#8220;optional&#8221; -&gt; null<br \/>\n&#8211; instance_metadata_tags = &#8220;disabled&#8221; -&gt; null<br \/>\n}<\/p>\n<p>&#8211; private_dns_name_options {<br \/>\n&#8211; enable_resource_name_dns_a_record = false -&gt; null<br \/>\n&#8211; enable_resource_name_dns_aaaa_record = false -&gt; null<br \/>\n&#8211; hostname_type = &#8220;ip-name&#8221; -&gt; null<br \/>\n}<\/p>\n<p>&#8211; root_block_device {<br \/>\n&#8211; delete_on_termination = true -&gt; null<br \/>\n&#8211; device_name = &#8220;\/dev\/xvda&#8221; -&gt; null<br \/>\n&#8211; encrypted = false -&gt; null<br \/>\n&#8211; iops = 100 -&gt; null<br \/>\n&#8211; tags = {} -&gt; null<br \/>\n&#8211; throughput = 0 -&gt; null<br \/>\n&#8211; volume_id = &#8220;vol-0eb3884c49cb32c24&#8221; -&gt; null<br \/>\n&#8211; volume_size = 8 -&gt; null<br \/>\n&#8211; volume_type = &#8220;gp2&#8221; -&gt; null<br \/>\n}<br \/>\n}<\/p>\n<p>\u8ba1\u5212: \u6dfb\u52a00\u4e2a\uff0c\u66f4\u65390\u4e2a\uff0c\u9500\u6bc11\u4e2a\u3002<\/p>\n<p>\u60a8\u771f\u7684\u8981\u9500\u6bc1\u6240\u6709\u8d44\u6e90\u5417\uff1f<br \/>\nTerraform\u5c06\u9500\u6bc1\u6240\u6709\u60a8\u7ba1\u7406\u7684\u57fa\u7840\u67b6\u6784\uff0c\u5982\u4e0a\u6240\u793a\u3002<br \/>\n\u6ca1\u6709\u64a4\u9500\u3002\u53ea\u63a5\u53d7\u201cyes\u201d\u4ee5\u786e\u8ba4\u3002<\/p>\n<p>\u8f93\u5165\u4e00\u4e2a\u503c: yes<\/p>\n<p>aws_instance.testtf: \u6b63\u5728\u9500\u6bc1&#8230; [id=i-058f9caf6b5fabfd0]<br \/>\naws_instance.testtf: \u4ecd\u5728\u9500\u6bc1&#8230; [id=i-058f9caf6b5fabfd0\uff0c\u5df2\u8fc7\u53bb10\u79d2]<br \/>\naws_instance.testtf: \u4ecd\u5728\u9500\u6bc1&#8230; [id=i-058f9caf6b5fabfd0\uff0c\u5df2\u8fc7\u53bb20\u79d2]<br \/>\naws_instance.testtf: \u4ecd\u5728\u9500\u6bc1&#8230; [id=i-058f9caf6b5fabfd0\uff0c\u5df2\u8fc7\u53bb30\u79d2]<br \/>\naws_instance.testtf: \u4ecd\u5728\u9500\u6bc1&#8230; [id=i-058f9caf6b5fabfd0\uff0c\u5df2\u8fc7\u53bb40\u79d2]<br \/>\naws_instance.testtf: \u4ecd\u5728\u9500\u6bc1&#8230; [id=i-058f9caf6b5fabfd0\uff0c\u5df2\u8fc7\u53bb50\u79d2]<br \/>\naws_instance.testtf: 50\u79d2\u540e\u9500\u6bc1\u5b8c\u6210<\/p>\n<p>\u9500\u6bc1\u5b8c\u6210\uff01\u8d44\u6e90\uff1a1\u4e2a\u5df2\u9500\u6bc1\u3002<\/p>\n<\/details>\n<h1>\u6700\u540e<\/h1>\n<p>\u4e3a\u4e86\u8bb0\u4f4f\u4f7f\u7528Terraform\u8fdb\u884c\u6784\u5efa\u7684\u6d41\u7a0b\uff0c\u672c\u6b21\u5c1d\u8bd5\u6267\u884c\u4e86\u5404\u79cd\u57fa\u672c\u64cd\u4f5c\u3002<\/p>\n<p>\u6211\u4eec\u5c06\u5b66\u4e60\u4f7f\u7528Terraform\u7f16\u5199\u4ee3\u7801\u65f6\u7684\u57fa\u672c\u8bed\u6cd5\u4ee5\u53ca\u5404\u79cd\u6587\u6863\u7528\u4e8e\u67e5\u8be2\u8bed\u6cd5\u7b49\u76f8\u5173\u5185\u5bb9\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u7531\u4e8eTerraform\u7684\u5f00\u53d1\u73af\u5883\u5df2\u7ecf\u51c6\u5907\u5c31\u7eea\uff0c\u6211\u6253\u7b97\u4ece\u8fd9\u6b21\u5f00\u59cb\u5c1d\u8bd5\u4f7f\u7528Terraform\u6765\u8fdb\u884cAWS\u7684\u6784 [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-48886","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>\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09 - 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\/\u5229\u7528terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cterraform\uff09\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u7531\u4e8eTerraform\u7684\u5f00\u53d1\u73af\u5883\u5df2\u7ecf\u51c6\u5907\u5c31\u7eea\uff0c\u6211\u6253\u7b97\u4ece\u8fd9\u6b21\u5f00\u59cb\u5c1d\u8bd5\u4f7f\u7528Terraform\u6765\u8fdb\u884cAWS\u7684\u6784 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5229\u7528terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cterraform\uff09\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-15T08:26:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T12:36:45+00:00\" \/>\n<meta name=\"author\" content=\"\u6e05, \u5b87\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u5b87\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 \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%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/\",\"name\":\"\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-15T08:26:37+00:00\",\"dateModified\":\"2024-04-30T12:36:45+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09\"}]},{\"@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\/1a6ecd3d914d22a5ac32791ffc1fbd8e\",\"name\":\"\u6e05, \u5b87\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u5b87\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09 - 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\/\u5229\u7528terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cterraform\uff09\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09","og_description":"\u9996\u5148 \u7531\u4e8eTerraform\u7684\u5f00\u53d1\u73af\u5883\u5df2\u7ecf\u51c6\u5907\u5c31\u7eea\uff0c\u6211\u6253\u7b97\u4ece\u8fd9\u6b21\u5f00\u59cb\u5c1d\u8bd5\u4f7f\u7528Terraform\u6765\u8fdb\u884cAWS\u7684\u6784 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5229\u7528terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cterraform\uff09\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-15T08:26:37+00:00","article_modified_time":"2024-04-30T12:36:45+00:00","author":"\u6e05, \u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u5b87","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"9 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/","name":"\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-15T08:26:37+00:00","dateModified":"2024-04-30T12:36:45+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5229\u7528Terraform\u5b66\u4e60\uff08\u7b2c\u4e09\u7ae0\uff1a\u6267\u884cTerraform\uff09"}]},{"@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\/1a6ecd3d914d22a5ac32791ffc1fbd8e","name":"\u6e05, \u5b87","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","caption":"\u6e05, \u5b87"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%a9%e7%94%a8terraform%e5%ad%a6%e4%b9%a0%ef%bc%88%e7%ac%ac%e4%b8%89%e7%ab%a0%ef%bc%9a%e6%89%a7%e8%a1%8cterraform%ef%bc%89%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\/48886","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=48886"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48886\/revisions"}],"predecessor-version":[{"id":94162,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48886\/revisions\/94162"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=48886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=48886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=48886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}