{"id":48534,"date":"2023-05-12T20:21:18","date_gmt":"2023-12-15T15:03:45","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/"},"modified":"2024-04-30T03:50:25","modified_gmt":"2024-04-29T19:50:25","slug":"%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/","title":{"rendered":"\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55"},"content":{"rendered":"<p>terraform \u7684\u5f3a\u5927\u611f\u8d85\u68d2\u3002<br \/>\n\u56e0\u4e3a\u5728 terraform 0.4.2 \u4e2d\u6211\u5bf9\u73b0\u6709 VPC \u8fdb\u884c\u4e86\u4ee5\u4e0b\u64cd\u4f5c\uff0c\u7279\u6b64\u8bb0\u5f55\u3002<\/p>\n<p>\u987a\u4fbf\u63d0\u4e00\u4e0b\uff0c\u6211\u662f\u901a\u8fc7 brew install terraform \u547d\u4ee4\u6765\u8fdb\u884c\u5b89\u88c5\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code>$  terraform\r\nusage: terraform [--version] [--help] &lt;command&gt; [&lt;args&gt;]\r\n\r\nAvailable commands are:\r\n    apply      Builds or changes infrastructure\r\n    destroy    Destroy Terraform-managed infrastructure\r\n    get        Download and install modules for the configuration\r\n    graph      Create a visual graph of Terraform resources\r\n    init       Initializes Terraform configuration from a module\r\n    output     Read an output from a state file\r\n    plan       Generate and show an execution plan\r\n    push       Upload this Terraform module to Atlas to run\r\n    refresh    Update local state file against real resources\r\n    remote     Configure remote state storage\r\n    show       Inspect Terraform state or plan\r\n    taint      Manually mark a resource for recreation\r\n    version    Prints the Terraform version\r\n\r\n$  terraform --version\r\nTerraform v0.4.2\r\n\r\n$  ls -l \/usr\/local\/bin\/terraform*\r\nlrwxr-xr-x  1 hoge huga 39 Apr 27 14:21 \/usr\/local\/bin\/terraform -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform\r\nlrwxr-xr-x  1 hoge huga 54 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-atlas -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-atlas\r\nlrwxr-xr-x  1 hoge huga 52 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-aws -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-aws\r\nlrwxr-xr-x  1 hoge huga 59 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-cloudflare -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-cloudflare\r\nlrwxr-xr-x  1 hoge huga 59 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-cloudstack -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-cloudstack\r\nlrwxr-xr-x  1 hoge huga 55 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-consul -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-consul\r\nlrwxr-xr-x  1 hoge huga 61 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-digitalocean -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-digitalocean\r\nlrwxr-xr-x  1 hoge huga 52 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-dme -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-dme\r\nlrwxr-xr-x  1 hoge huga 57 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-dnsimple -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-dnsimple\r\nlrwxr-xr-x  1 hoge huga 55 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-docker -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-docker\r\nlrwxr-xr-x  1 hoge huga 55 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-google -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-google\r\nlrwxr-xr-x  1 hoge huga 55 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-heroku -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-heroku\r\nlrwxr-xr-x  1 hoge huga 56 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-mailgun -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-mailgun\r\nlrwxr-xr-x  1 hoge huga 53 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-null -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-null\r\nlrwxr-xr-x  1 hoge huga 58 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-openstack -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-openstack\r\nlrwxr-xr-x  1 hoge huga 58 Apr 27 14:21 \/usr\/local\/bin\/terraform-provider-terraform -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provider-terraform\r\nlrwxr-xr-x  1 hoge huga 56 Apr 27 14:21 \/usr\/local\/bin\/terraform-provisioner-file -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provisioner-file\r\nlrwxr-xr-x  1 hoge huga 62 Apr 27 14:21 \/usr\/local\/bin\/terraform-provisioner-local-exec -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provisioner-local-exec\r\nlrwxr-xr-x  1 hoge huga 63 Apr 27 14:21 \/usr\/local\/bin\/terraform-provisioner-remote-exec -&gt; ..\/Cellar\/terraform\/0.4.2\/bin\/terraform-provisioner-remote-exec\r\n<\/code><\/pre>\n<p>\u5f88\u7b80\u5355\uff0c\u611f\u89c9\u4e0d\u9519\u3002<\/p>\n<p>\u53e6\u5916\uff0c\u6211\u5c1d\u8bd5\u901a\u8fc7\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\uff0c\u5e76\u521b\u5efa\/usr\/local\/bin\/terraform\u76ee\u5f55\u5e76\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff0c\u4f46\u662f\u51fa\u73b0\u4e86&#8221;provider aws not found&#8221;\u7684\u9519\u8bef\uff0c\u53ef\u80fd\u5fc5\u987b\u4f7f\u7528\/usr\/local\/bin\u8def\u5f84\u624d\u884c\u3002<\/p>\n<h3>\u505a\u8fc7\u7684\u4e8b\u60c5 de<\/h3>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b5\u30d6\u30cd\u30c3\u30c8\u4f5c\u6210<\/ul>\n<\/li>\n<\/ul>\n<p>10.0.0.0\/24<br \/>\n10.0.1.0\/24<\/p>\n<p>\u30eb\u30fc\u30c8\u30c6\u30fc\u30d6\u30eb\u4f5c\u6210<\/p>\n<p>nat \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3078\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u30eb\u30fc\u30c8<br \/>\nOffice \u3078\u306e\u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30eb\u30fc\u30c8<\/p>\n<p>Network ACL\u4f5c\u6210<\/p>\n<p>\u5185\u5411\u304d\u5168\u8a31\u53ef<br \/>\n\u5916\u5411\u304d\u3067 25 \u30dd\u30fc\u30c8\u3060\u3051\u62d2\u5426<\/p>\n<h3>Variable<\/h3>\n<p>\u53d8\u91cf\u5c06\u88ab\u547d\u540d\u4e3avariables.tf\u3002<br \/>\n\u5047\u8bbeVPC\u548cOffice\u4e4b\u95f4\u5efa\u7acb\u4e86VPN\uff0c\u5e76\u4e14VPC\u5185\u90e8\u6709nat\u5b9e\u4f8b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nx\">variable<\/span> <span class=\"s2\">\"my-env\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">default<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nx\">access_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"**************\"<\/span>\r\n        <span class=\"nx\">secret_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"************************\"<\/span>\r\n        <span class=\"nx\">region<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1\"<\/span>\r\n        <span class=\"nx\">vpc_id<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"vpc-******\"<\/span>\r\n        <span class=\"nx\">az_b<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1a\"<\/span>\r\n        <span class=\"nx\">az_c<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1b\"<\/span>\r\n        <span class=\"nx\">nat_id<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"i-*******\"<\/span>\r\n        <span class=\"nx\">office_gw<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"vgw-******\"<\/span><span class=\"nx\">z<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h3>\u5b50\u7f51<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_subnet\"<\/span> <span class=\"s2\">\"test-1\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">vpc_id<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"${var.my-env.vpc_id}\"<\/span>\r\n    <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"10.0.0.0\/24\"<\/span>\r\n    <span class=\"nx\">availability_zone<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1a\"<\/span>\r\n    <span class=\"nx\">tags<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nx\">Name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"test-1\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_subnet\"<\/span> <span class=\"s2\">\"test-2\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">vpc_id<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"${var.my-env.vpc_id}\"<\/span>\r\n    <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"10.0.1.0\/24\"<\/span>\r\n    <span class=\"nx\">availability_zone<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1b\"<\/span>\r\n    <span class=\"nx\">tags<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nx\">Name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"test-2\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h3>\u8def\u7531\u8868<\/h3>\n<pre class=\"post-pre\"><code><span class=\"n\">resource<\/span> <span class=\"s2\">\"aws_route_table\"<\/span> <span class=\"s2\">\"test-rtb\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">vpc_id<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"${var.vpc_id}\"<\/span>\r\n    <span class=\"n\">route<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"n\">cidr_block<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"0.0.0.0\/0\"<\/span>\r\n            <span class=\"n\">instance_id<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"${var.nat_id}\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"n\">route<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"n\">cidr_block<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"192.168.1.0\/24\"<\/span>\r\n            <span class=\"n\">gateway_id<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"${var.office_gw}\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"n\">resource<\/span> <span class=\"s2\">\"aws_route_table_association\"<\/span> <span class=\"s2\">\"test-1\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">subnet_id<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"${aws_subnet.test-1.id}\"<\/span>\r\n    <span class=\"n\">route_table_id<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"${aws_route_table.test-rtb.id}\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"n\">resource<\/span> <span class=\"s2\">\"aws_route_table_association\"<\/span> <span class=\"s2\">\"test-2\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">subnet_id<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"${aws_subnet.test-2.id}\"<\/span>\r\n    <span class=\"n\">route_table_id<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"${aws_route_table.test-rtb.id}\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h3>\u7f51\u7edc\u8bbf\u95ee\u63a7\u5236\u5217\u8868<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_network_acl\"<\/span> <span class=\"s2\">\"test-1_acl\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">vpc_id<\/span> <span class=\"p\">=<\/span><span class=\"s2\">\"${var.vpc_id}\"<\/span>\r\n    <span class=\"nx\">subnet_id<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"${aws_subnet.test-1.id}\"<\/span>\r\n    <span class=\"nx\">ingress<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nx\">rule_no<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">100<\/span>\r\n        <span class=\"nx\">protocol<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"all\"<\/span>\r\n        <span class=\"nx\">action<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"allow\"<\/span>\r\n        <span class=\"nx\">from_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span>\r\n        <span class=\"nx\">to_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">65535<\/span>\r\n        <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"0.0.0.0\/0\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"nx\">egress<\/span> <span class=\"p\">{<\/span>\r\n       <span class=\"nx\">rule_no<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">50<\/span>\r\n        <span class=\"nx\">protocol<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"tcp\"<\/span>\r\n        <span class=\"nx\">action<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"deny\"<\/span>\r\n        <span class=\"nx\">from_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">25<\/span>\r\n        <span class=\"nx\">to_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">25<\/span>\r\n        <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"0.0.0.0\/0\"<\/span>\r\n\r\n    <span class=\"nx\">egress<\/span> <span class=\"p\">{<\/span>\r\n       <span class=\"nx\">rule_no<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">100<\/span>\r\n        <span class=\"nx\">protocol<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"all\"<\/span>\r\n        <span class=\"nx\">action<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"allow\"<\/span>\r\n        <span class=\"nx\">from_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span>\r\n        <span class=\"nx\">to_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">65535<\/span>\r\n        <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"0.0.0.0\/0\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_network_acl\"<\/span> <span class=\"s2\">\"test-2_acl\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">vpc_id<\/span> <span class=\"p\">=<\/span><span class=\"s2\">\"${var.vpc_id}\"<\/span>\r\n    <span class=\"nx\">subnet_id<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"${aws_subnet.test-2.id}\"<\/span>\r\n    <span class=\"nx\">ingress<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nx\">rule_no<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">100<\/span>\r\n        <span class=\"nx\">protocol<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"all\"<\/span>\r\n        <span class=\"nx\">action<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"allow\"<\/span>\r\n        <span class=\"nx\">from_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span>\r\n        <span class=\"nx\">to_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">65535<\/span>\r\n        <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"0.0.0.0\/0\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"nx\">egress<\/span> <span class=\"p\">{<\/span>\r\n       <span class=\"nx\">rule_no<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">50<\/span>\r\n        <span class=\"nx\">protocol<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"tcp\"<\/span>\r\n        <span class=\"nx\">action<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"deny\"<\/span>\r\n        <span class=\"nx\">from_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">25<\/span>\r\n        <span class=\"nx\">to_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">25<\/span>\r\n        <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"0.0.0.0\/0\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"nx\">egress<\/span> <span class=\"p\">{<\/span>\r\n       <span class=\"nx\">rule_no<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">100<\/span>\r\n        <span class=\"nx\">protocol<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"all\"<\/span>\r\n        <span class=\"nx\">action<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"allow\"<\/span>\r\n        <span class=\"nx\">from_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span>\r\n        <span class=\"nx\">to_port<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">65535<\/span>\r\n        <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"0.0.0.0\/0\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h3>\u6267\u884c<\/h3>\n<p>\u6587\u4ef6\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<pre class=\"post-pre\"><code>$ tree\r\n.\r\n\u251c\u2500\u2500 aws.tf\r\n\u251c\u2500\u2500 nacl.tf\r\n\u251c\u2500\u2500 route_tables.tf\r\n\u251c\u2500\u2500 subnets.tf\r\n\u2514\u2500\u2500 variables.tf\r\n\r\n0 directories, 5 files\r\n<\/code><\/pre>\n<p>\u5728\u4f7f\u7528\u4e4b\u524d\uff0c\u8bf7\u5148\u786e\u8ba4\u60a8\u7684\u8ba1\u5212\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform plan\r\n<\/code><\/pre>\n<p>\u7533\u8bf7\u9002\u7528\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform apply\r\n<\/code><\/pre>\n<p>\u53ea\u8981\u8fd9\u6837\u505a\uff0c\u5c31\u80fd\u591f\u5b8c\u6210\u3002\u592a\u5389\u5bb3\u4e86\u3002<br \/>\n\u4f7f\u7528terraform destroy\u53ef\u4ee5\u8f7b\u677e\u5730\u6467\u6bc1\u5b83\uff0c\u8fd8\u53ef\u4ee5\u5728\u521b\u5efa\u6d4b\u8bd5\u73af\u5883\u7b49\u60c5\u51b5\u4e0b\u8fdb\u884c\u590d\u7528\u548c\u64cd\u4f5c\uff0c\u4f3c\u4e4e\u5f88\u5bb9\u6613\u548c\u7701\u65f6\u3002<\/p>\n<p>\u2193 \u6211\u53c2\u8003\u4e86\u4ee5\u4e0b\u94fe\u63a5\uff1ahttp:\/\/ghost.ponpokopon.me\/provider-digitalocean-not-found\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>terraform \u7684\u5f3a\u5927\u611f\u8d85\u68d2\u3002 \u56e0\u4e3a\u5728 terraform 0.4.2 \u4e2d\u6211\u5bf9\u73b0\u6709 VPC \u8fdb\u884c\u4e86\u4ee5\u4e0b\u64cd\u4f5c [&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-48534","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>\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55 - 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\/\u5bf9\u5df2\u5b58\u5728\u7684vpc\u8fdb\u884c\u64cd\u4f5c\u7684terraform\u5907\u5fd8\u5f55\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55\" \/>\n<meta property=\"og:description\" content=\"terraform \u7684\u5f3a\u5927\u611f\u8d85\u68d2\u3002 \u56e0\u4e3a\u5728 terraform 0.4.2 \u4e2d\u6211\u5bf9\u73b0\u6709 VPC \u8fdb\u884c\u4e86\u4ee5\u4e0b\u64cd\u4f5c [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5bf9\u5df2\u5b58\u5728\u7684vpc\u8fdb\u884c\u64cd\u4f5c\u7684terraform\u5907\u5fd8\u5f55\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-15T15:03:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T19:50:25+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=\"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%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/\",\"name\":\"\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-12-15T15:03:45+00:00\",\"dateModified\":\"2024-04-29T19:50:25+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55\"}]},{\"@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%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55 - 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\/\u5bf9\u5df2\u5b58\u5728\u7684vpc\u8fdb\u884c\u64cd\u4f5c\u7684terraform\u5907\u5fd8\u5f55\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55","og_description":"terraform \u7684\u5f3a\u5927\u611f\u8d85\u68d2\u3002 \u56e0\u4e3a\u5728 terraform 0.4.2 \u4e2d\u6211\u5bf9\u73b0\u6709 VPC \u8fdb\u884c\u4e86\u4ee5\u4e0b\u64cd\u4f5c [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5bf9\u5df2\u5b58\u5728\u7684vpc\u8fdb\u884c\u64cd\u4f5c\u7684terraform\u5907\u5fd8\u5f55\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-12-15T15:03:45+00:00","article_modified_time":"2024-04-29T19:50:25+00:00","author":"\u6e05, \u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u5b87","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/","name":"\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-12-15T15:03:45+00:00","dateModified":"2024-04-29T19:50:25+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5bf9\u5df2\u5b58\u5728\u7684VPC\u8fdb\u884c\u64cd\u4f5c\u7684Terraform\u5907\u5fd8\u5f55"}]},{"@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%af%b9%e5%b7%b2%e5%ad%98%e5%9c%a8%e7%9a%84vpc%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84terraform%e5%a4%87%e5%bf%98%e5%bd%95%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\/48534","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=48534"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48534\/revisions"}],"predecessor-version":[{"id":89507,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48534\/revisions\/89507"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=48534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=48534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=48534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}