{"id":48646,"date":"2023-09-03T01:56:06","date_gmt":"2022-11-03T12:44:38","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/"},"modified":"2024-04-30T21:18:13","modified_gmt":"2024-04-30T13:18:13","slug":"%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/","title":{"rendered":"\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u5728\u4f7f\u7528Terraform\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u5728\u7ba1\u7406\u672c\u5730\u548cS3\u4e2d\u7684terraform.tfstate\u65f6\u9047\u5230\u4e86\u76f8\u5f53\u591a\u7684\u56f0\u96be\u3002<br \/>\n\u56e0\u6b64\uff0c\u6211\u603b\u7ed3\u4e86\u9488\u5bf9\u6bcf\u4e2a\u4f4d\u7f6e\u8fdb\u884c\u7ba1\u7406\u65f6\u9700\u8981\u7f16\u5199\u7684\u4ee3\u7801\u548c\u6267\u884c\u7684\u547d\u4ee4\u3002<\/p>\n<h1>\u7eca\u5012\u4e0e\u89e3\u51b3<\/h1>\n<p>\u5982\u679c\u60a8\u53ea\u60f3\u67e5\u770b\u7ba1\u7406\u65b9\u6cd5\uff0c\u8bf7\u8df3\u8fc7\u672c\u8282\u3002<\/p>\n<h2>\u8dcc\u5012 (di\u0113<\/h2>\n<p>\u56e0\u4e3a\u5728\u5404\u79cd\u7f51\u7ad9\u4e0a\u90fd\u6709\u5173\u4e8e\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5\uff0c\u6240\u4ee5\u6211\u8bd5\u7740\u6839\u636e\u8fd9\u4e9b\u7f51\u7ad9\u4e0a\u7684\u5185\u5bb9\uff0c\u5728S3\u6876\u4e2d\u5c1d\u8bd5\u4fdd\u5b58terraform.tfstate\u6587\u4ef6\u3002\u4f46\u662f\uff0c\u5373\u4f7f\u6211\u6267\u884c\u4e86\u88ab\u4ecb\u7ecd\u7684\u547d\u4ee4(terraform init)\uff0cterraform.tfstate\u6587\u4ef6\u4ecd\u672a\u5728S3\u6876\u5185\u521b\u5efa\u3002<\/p>\n<p>\u4e3a\u4e86\u5f04\u6e05\u539f\u56e0\uff0c\u6211\u8003\u8651\u4e86\u4ee5\u4e0b\u4e24\u4e2a\u89c2\u70b9\uff1a<br \/>\n1. \u67e5\u770bGitHub\u7684\u95ee\u9898\u62a5\u544a\u6216\u535a\u5ba2\u7b49\uff0c\u56e0\u4e3a\u53ef\u80fd\u6709\u5176\u4ed6\u4eba\u4e5f\u9047\u5230\u8fc7\u8fd9\u4e2a\u95ee\u9898\u3002<br \/>\n2. \u5728\u67e5\u770b\u65e5\u5fd7\u7684\u540c\u65f6\uff0c\u8ffd\u8e2aTerraform\u6e90\u4ee3\u7801\u3002<\/p>\n<p>\u6709\u4e00\u7bc7\u5173\u4e8e1\u7684\u6587\u7ae0\uff0c\u5b83\u7740\u91cd\u5173\u6ce8\u4e86\u4ee5\u4e0b\u51e0\u70b9\u3002\u7136\u800c\uff0c\u5b9e\u9645\u5c1d\u8bd5\u4e5f\u672a\u80fd\u89e3\u51b3\u95ee\u9898\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3053\u306e\u8a18\u4e8b\u3067\u66f8\u3044\u3066\u3042\u308b\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u306e\u66f8\u304d\u65b9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30d0\u30b1\u30c3\u30c8\u306e\u30dd\u30ea\u30b7\u30fc\u8a2d\u5b9a\u65b9\u6cd5<\/ul>\n<p>\u5173\u4e8e\u7b2c2\u70b9\uff0c\u6211\u53c2\u8003\u4e86Terraform\u7684\u5b98\u65b9\u9875\u9762\uff0c\u5728\u6267\u884cterraform\u547d\u4ee4\u65f6\u6dfb\u52a0\u4e86TF_LOG=TRACE\u4ee5\u67e5\u770b\u65e5\u5fd7\u3002\u6211\u5f00\u59cb\u67e5\u770bTerraform\u7684\u6e90\u4ee3\u7801\uff0c\u4f46\u4f5c\u4e3a\u4e00\u4e2aGo\u521d\u5b66\u8005\uff0c\u6211\u53ea\u5927\u81f4\u4e86\u89e3\u4e86\u6d41\u7a0b\u3002<\/p>\n<p>\u56e0\u6b64\uff0c\u65e0\u8bba\u662f1\u8fd8\u662f2\u7684\u65b9\u6cd5\uff0c\u90fd\u6ca1\u6709\u8fbe\u5230\u89e3\u51b3\u95ee\u9898\u7684\u76ee\u7684\u3002<\/p>\n<h2>\u89e3\u51b3\u95ee\u9898<\/h2>\n<p>\u5f53\u6211\u8bd5\u9519\u524d\u8fdb\u65f6\uff0c\u7a81\u7136\u770b\u5230S3\u7684\u5b58\u50a8\u6876\uff0c\u610f\u8bc6\u5230\u6709\u4e00\u4e2aterraform.tfstate\u6587\u4ef6\u751f\u6210\u4e86\u3002\u56e0\u6b64\uff0c\u6211\u56de\u987e\u4e86\u4e4b\u524d\u6240\u505a\u7684\u4fee\u6b63\u548c\u547d\u4ee4\uff0c\u9010\u4e00\u8fdb\u884c\u4e86\u533a\u5206\uff0c\u5e76\u6700\u7ec8\u5f97\u5230\u4e86\u6b64\u5904\u6240\u8bb0\u8ff0\u7684\u6a21\u5f0f\u3002<\/p>\n<p>\u53ea\u8981\u61c2\u5f97Go\u7684\u4eba\uff0c\u5c31\u80fd\u591f\u901a\u8fc7\u4ee3\u7801\u7406\u89e3\uff0c\u5e76\u4e14\u5f88\u5feb\u5c31\u80fd\u591f\u7406\u89e3\u5176\u6a21\u5f0f\u3002\u6211\u5f53\u65f6\u8fd8\u4e0d\u4e86\u89e3Go\uff0c\u6240\u4ee5\u901a\u8fc7\u8fd9\u79cd\u65b9\u6cd5\u6765\u89e3\u51b3\u95ee\u9898\u3002<\/p>\n<h1>\u73af\u5883<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Mac\uff1amacOS Catalina Version 10.15.5<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Terraform\uff1av0.12.28<\/ul>\n<h1>\u524d\u63d0 t\u00ed)<br \/>\n\u6761\u4ef6<br \/>\n\u5047\u8bbe (Ji\u01ce sh\u00e8)<br \/>\n\u5148\u51b3\u6761\u4ef6 ju\u00e9<\/h1>\n<p>\u8fd9\u91cc\u63d0\u4f9b\u4e86\u4f7f\u7528Terraform\u521b\u5efaVPC\u7684\u793a\u4f8b\u3002<br \/>\n\u6b64\u5916\uff0c\u6587\u7ae0\u4e2d\u4ecb\u7ecd\u7684IAM\u7528\u6237\u7b56\u7565\u548c\u5b58\u50a8\u6876\u8bbe\u7f6e\u662f\u9488\u5bf9\u6587\u7ae0\u7684\u8bbe\u5b9a\u3002\u5728\u5b9e\u9645\u73af\u5883\u4e2d\uff0c\u8bf7\u6839\u636e\u9700\u8981\u8fdb\u884c\u76f8\u5e94\u7684\u7b56\u7565\u548c\u8bbe\u7f6e\u3002<\/p>\n<h1>\u521b\u5efa\u4e00\u4e2aIAM\u7528\u6237<\/h1>\n<p>\u4e3a\u4e86\u4f7f\u7528Terraform\u521b\u5efaVPC\uff0c\u9700\u8981\u521b\u5efa\u6ee1\u8db3\u4ee5\u4e0b\u4e24\u4e2a\u6761\u4ef6\u7684IAM\u7528\u6237\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">AmazonVPCFullAccess\u306e\u30a2\u30bf\u30c3\u30c1<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">AWS\u30a2\u30af\u30bb\u30b9\u306e\u7a2e\u985e\u306b\u300c\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u30fb\u30a2\u30af\u30bb\u30b9\u30ad\u30fc\u3092\u4f7f\u7528\u300d\u3092\u8a2d\u5b9a<\/ul>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/21-0.png\" alt=\"Screen Shot 2020-07-22 at 19.34.14.png\" \/><\/div>\n<h1>\u672c\u5730\u7ba1\u7406<\/h1>\n<h2>\u521b\u5efa\u6587\u4ef6\u5e76\u6267\u884c\u547d\u4ee4<\/h2>\n<p>\u8bf7\u6309\u7167\u4ee5\u4e0b\u65b9\u5f0f\u521b\u5efamain.tf\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\">access_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"xxxxx\"<\/span>\r\n  <span class=\"nx\">secret_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"yyyyy\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"c1\"># VPC<\/span>\r\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_vpc\"<\/span> <span class=\"s2\">\"vpc\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"10.0.0.0\/16\"<\/span>\r\n  <span class=\"nx\">enable_dns_hostnames<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\r\n\r\n  <span class=\"nx\">tags<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">Name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"vpc-test\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u5b8cmain.tf\u540e\uff0c\u6267\u884c\u4ee5\u4e0b\u4e09\u4e2a\u547d\u4ee4\u3002<br \/>\n\u203b \u8fd9\u91cc\u5728\u8fdb\u884cterraform apply\u65f6\u52a0\u4e0a\u4e86-auto-approve\u9009\u9879\uff0c\u4f46\u662f\u6ca1\u6709\u4e5f\u6ca1\u95ee\u9898\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\n$ terraform plan\r\n$ terraform apply -auto-approve\r\n<\/code><\/pre>\n<p>\u6267\u884cterraform apply\u540e\uff0c\u4f1a\u6709\u4ee5\u4e0b\u8f93\u51fa\uff0c\u5e76\u4e14\u4f1a\u5728\u672c\u5730\u521b\u5efaterraform.tfstate\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform apply -auto-approve\r\naws_vpc.vpc: Creating...\r\naws_vpc.vpc: Creation complete after 4s [id=vpc-aaaaa]\r\n\r\nApply complete! Resources: 1 added, 0 changed, 0 destroyed.\r\n<\/code><\/pre>\n<h1>\u4f7f\u7528S3\u8fdb\u884c\u7ba1\u7406<\/h1>\n<h2>\u5728IAM\u7528\u6237\u4e2d\u6dfb\u52a0\u8bbf\u95ee\u5b58\u50a8\u6876\u7684\u7b56\u7565\u3002<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/32-0.png\" alt=\"Screen Shot 2020-07-23 at 1.37.11.png\" \/><\/div>\n<h2>\u5728S3\u4e0a\u521b\u5efa\u4e00\u4e2a\u5b58\u50a8\u6876<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/34-0.png\" alt=\"Screen Shot 2020-07-21 at 21.10.21.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/35-0.png\" alt=\"Screen Shot 2020-07-21 at 20.28.22.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/36-0.png\" alt=\"Screen Shot 2020-07-21 at 6.59.37.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/37-0.png\" alt=\"Screen Shot 2020-07-21 at 21.11.55.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/38-0.png\" alt=\"Screen Shot 2020-07-21 at 21.13.50.png\" \/><\/div>\n<h2>\u5728\u6876\u4e2d\u8bbe\u7f6e\u6876\u7b56\u7565\u3002<\/h2>\n<p>\u4e3a\u4e86\u5c06terraform.tfstate\u914d\u7f6e\u5230S3\u4e2d\uff0c\u9700\u8981\u8fdb\u884c\u5b58\u50a8\u6876\u7b56\u7565\u7684\u8bbe\u7f6e\u3002\u8bf7\u53c2\u8003terraform\u5b98\u65b9\u7f51\u9875\uff0c\u5e76\u4f7f\u7528\u6240\u521b\u5efa\u7684IAM\u7528\u6237\u548c\u5b58\u50a8\u6876\u540d\u79f0\uff0c\u6309\u7167\u4ee5\u4e0b\u65b9\u5f0f\u8bbe\u7f6e\u5b58\u50a8\u6876\u7b56\u7565\u3002<\/p>\n<pre class=\"post-pre\"><code>{\r\n    \"Version\": \"2012-10-17\",\r\n    \"Statement\": [\r\n        {\r\n            \"Effect\": \"Allow\",\r\n            \"Principal\": {\r\n                \"AWS\": \"arn:aws:iam::111111:user\/terraform-bucket-manager\"\r\n            },\r\n            \"Action\": \"s3:ListBucket\",\r\n            \"Resource\": \"arn:aws:s3:::bucket-for-tf\"\r\n        },\r\n        {\r\n            \"Effect\": \"Allow\",\r\n            \"Principal\": {\r\n                \"AWS\": \"arn:aws:iam::11111:user\/terraform-bucket-manager\"\r\n            },\r\n            \"Action\": [\r\n                \"s3:GetObject\",\r\n                \"s3:PutObject\"\r\n            ],\r\n            \"Resource\": \"arn:aws:s3:::bucket-for-tf\/*\"\r\n        }\r\n    ]\r\n}\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/42-0.png\" alt=\"Screen Shot 2020-07-21 at 21.25.34.png\" \/><\/div>\n<h2>\u6587\u4ef6\u7684\u521b\u5efa\u548c\u547d\u4ee4\u6267\u884c<\/h2>\n<p>\u521b\u5efamain.tf\u5982\u4e0b\u6240\u793a\u3002<br \/>\n\u57fa\u672c\u4e0a\u4e0e\u201c\u5728\u672c\u5730\u7ba1\u7406terraform\u201d\u4e00\u8282\u76f8\u540c\u3002\u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\u5c06s3\u6307\u5b9a\u4e3a\u540e\u7aef\u3002<\/p>\n<p>\u5c06\u4ee5\u4e0b\u7684main.tf\u6587\u4ef6\u521b\u5efa\u5982\u4e0b\uff1a<br \/>\n\u57fa\u672c\u4e0a\u4e0e\u201c\u5728\u672c\u5730\u7ba1\u7406terraform\u201d\u4e00\u8282\u76f8\u540c\u3002\u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\u6307\u5b9a\u4e86s3\u4f5c\u4e3a\u540e\u7aef\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\">access_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"xxxxx\"<\/span>\r\n  <span class=\"nx\">secret_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"yyyyy\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">terraform<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">backend<\/span> <span class=\"s2\">\"s3\"<\/span> <span class=\"p\">{<\/span> \r\n    <span class=\"nx\">access_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"xxxxx\"<\/span>\r\n    <span class=\"nx\">secret_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"yyyyy\"<\/span>\r\n    <span class=\"nx\">bucket<\/span>  <span class=\"p\">=<\/span> <span class=\"s2\">\"bucket-for-tf\"<\/span>\r\n    <span class=\"nx\">region<\/span>  <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1\"<\/span>\r\n    <span class=\"nx\">key<\/span>     <span class=\"p\">=<\/span> <span class=\"s2\">\"terraform.tfstate\"<\/span>\r\n    <span class=\"nx\">encrypt<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"c1\"># VPC<\/span>\r\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_vpc\"<\/span> <span class=\"s2\">\"vpc\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"10.0.0.0\/16\"<\/span>\r\n  <span class=\"nx\">enable_dns_hostnames<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\r\n\r\n  <span class=\"nx\">tags<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">Name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"vpc-test\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u540e\uff0c\u6267\u884c\u4ee5\u4e0b\u4e09\u4e2a\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\n$ terraform plan\r\n$ terraform apply\r\n<\/code><\/pre>\n<p>\u5f53\u6267\u884cterraform init\u547d\u4ee4\u65f6\uff0c\u4f1a\u663e\u793a\u8bbe\u7f6es3\u4e3a\u540e\u7aef\u7684\u5b8c\u6210\u4fe1\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\n\r\nInitializing the backend...\r\n\r\nSuccessfully configured the backend \"s3\"! Terraform will automatically\r\nuse this backend unless the backend configuration changes.\r\n\u30fb\u30fb\u30fb\u7565\u30fb\u30fb\u30fb\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/50-0.png\" alt=\"Screen Shot 2020-07-21 at 21.40.55.png\" \/><\/div>\n<h1>\u5c06\u672c\u5730\u7ba1\u7406\u8fc1\u79fb\u5230S3\u7ba1\u7406\u4e2d\u3002<\/h1>\n<h2>\u672c\u5730\u7ba1\u7406<\/h2>\n<p>\u521b\u5efamain.tf\u5982\u4e0b\u6240\u8ff0\u3002<br \/>\n\u57fa\u672c\u4e0a\u4e0e\u201c\u5728S3\u4e2d\u7ba1\u7406terraform.tfstate\u201d\u76f8\u540c\u3002\u552f\u4e00\u7684\u533a\u522b\u662f\u6307\u5b9a\u4e86\u672c\u5730\u4f5c\u4e3a\u540e\u7aef\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\">access_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"xxxxx\"<\/span>\r\n  <span class=\"nx\">secret_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"yyyyy\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">terraform<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">backend<\/span> <span class=\"s2\">\"local\"<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">path<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"terraform.tfstate\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"c1\"># VPC<\/span>\r\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_vpc\"<\/span> <span class=\"s2\">\"vpc\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"10.0.0.0\/16\"<\/span>\r\n  <span class=\"nx\">enable_dns_hostnames<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\r\n\r\n  <span class=\"nx\">tags<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">Name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"vpc-test\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u4e00\u65e6\u521b\u5efa\u5b8c\u6210\u540e\uff0c\u5c06\u6267\u884c\u4ee5\u4e0b\u4e09\u4e2a\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\n$ terraform plan\r\n$ terraform apply -auto-approve\r\n<\/code><\/pre>\n<p>\u6267\u884c &#8220;terraform init&#8221; \u547d\u4ee4\u540e\uff0c\u5c06\u663e\u793a\u8bbe\u7f6e\u672c\u5730\u4f5c\u4e3a\u540e\u7aef\u7684\u5b8c\u6210\u6d88\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\n\r\nInitializing the backend...\r\n\r\nSuccessfully configured the backend \"local\"! Terraform will automatically\r\nuse this backend unless the backend configuration changes.\r\n\u30fb\u30fb\u30fb\u7565\u30fb\u30fb\u30fb\r\n<\/code><\/pre>\n<h2>\u66f4\u6539\u4e3aS3\u7684\u7ba1\u7406\u3002<\/h2>\n<p>\u5728terraform apply\u5b8c\u6210\u4e4b\u540e\uff0c\u5c06main.tf\u6587\u4ef6\u4e2d\u7684backend\u66f4\u6539\u4e3as3\u3002\u6709\u5173\u4f7f\u7528\u7684IAM\u7528\u6237\u548cS3\u5b58\u50a8\u6876\uff0c\u8bf7\u53c2\u8003\u201c\u521b\u5efaIAM\u7528\u6237\u201d\u548c\u201c\u521b\u5efaS3\u5b58\u50a8\u6876\u201d\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\">access_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"xxxxx\"<\/span>\r\n  <span class=\"nx\">secret_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"yyyyy\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">terraform<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">backend<\/span> <span class=\"s2\">\"s3\"<\/span> <span class=\"p\">{<\/span> \r\n    <span class=\"nx\">access_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"xxxxx\"<\/span>\r\n    <span class=\"nx\">secret_key<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"yyyyy\"<\/span>\r\n    <span class=\"nx\">bucket<\/span>  <span class=\"p\">=<\/span> <span class=\"s2\">\"bucket-for-tf\"<\/span>\r\n    <span class=\"nx\">region<\/span>  <span class=\"p\">=<\/span> <span class=\"s2\">\"ap-northeast-1\"<\/span>\r\n    <span class=\"nx\">key<\/span>     <span class=\"p\">=<\/span> <span class=\"s2\">\"terraform.tfstate\"<\/span>\r\n    <span class=\"nx\">encrypt<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"c1\"># VPC<\/span>\r\n<span class=\"nx\">resource<\/span> <span class=\"s2\">\"aws_vpc\"<\/span> <span class=\"s2\">\"vpc\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">cidr_block<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"10.0.0.0\/16\"<\/span>\r\n  <span class=\"nx\">enable_dns_hostnames<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\r\n\r\n  <span class=\"nx\">tags<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">Name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"vpc-test\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u66f4\u6539\u4e86\u540e\u7aef\uff0c\u8bf7\u91cd\u65b0\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u88ab\u8be2\u95ee\u662f\u5426\u53ef\u4ee5\u5c06 terraform.tfstate \u590d\u5236\u5230 s3 \u4e2d\uff0c\u6211\u4eec\u8f93\u5165\u201c\u662f\u201d\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\n\r\nInitializing the backend...\r\nBackend configuration changed!\r\n\r\nTerraform has detected that the configuration specified for the backend\r\nhas changed. Terraform will now check for existing state in the backends.\r\n\r\n\r\nTerraform detected that the backend type changed from \"local\" to \"s3\".\r\n\u30fb\u30fb\u30fb\u7565\u30fb\u30fb\u30fb\r\n Do you want to copy this state to the new \"s3\"\r\n  backend? Enter \"yes\" to copy and \"no\" to start with an empty state.\r\n\r\n  Enter a value: yes\r\n<\/code><\/pre>\n<p>\u8f93\u5165&#8221;Yes&#8221;\u540e\uff0c\u5c06\u5728\u540e\u7aef\u663e\u793a&#8221;S3\u8bbe\u7f6e\u5df2\u5b8c\u6210&#8221;\u7684\u6d88\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform init\r\n\u30fb\u30fb\u30fb\u7565\u30fb\u30fb\u30fb\r\n  Enter a value: yes\r\n\r\nSuccessfully configured the backend \"s3\"! Terraform will automatically\r\nuse this backend unless the backend configuration changes.\r\n\u30fb\u30fb\u30fb\u7565\u30fb\u30fb\u30fb\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/68-0.png\" alt=\"Screen Shot 2020-07-23 at 0.01.37.png\" \/><\/div>\n<p>\u6211\u4f1a\u5728\u6b64\u4e4b\u540e\u6267\u884c`terraform apply`\u3002<br \/>\n\u5f53\u67e5\u770bS3\u5b58\u50a8\u6876\u65f6\uff0c\u53ef\u4ee5\u770b\u5230`terraform.tfstate`\u5df2\u7ecf\u88ab\u66f4\u65b0\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>$ terraform apply -auto-approve\r\naws_vpc.vpc: Refreshing state... [id=vpc-aaaaa]\r\n\r\nApply complete! Resources: 0 added, 0 changed, 0 destroyed.\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/71-0.png\" alt=\"Screen Shot 2020-07-23 at 0.02.09.png\" \/><\/div>\n<h1>\u6700\u540e<\/h1>\n<p>\u6211\u5df2\u7ecf\u63d0\u4f9b\u4e86\u5173\u4e8e\u5982\u4f55\u5728\u672c\u5730\u548cS3\u4e0a\u7ba1\u7406terraform.tfstate\u7684\u65b9\u6cd5\u3002\u5982\u679c\u4f60\u4e86\u89e3Go\u8bed\u8a00\u7684\u8bdd\uff0c\u6211\u8ba4\u4e3a\u53ef\u4ee5\u66f4\u8f7b\u677e\u5730\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002<\/p>\n<p>\u5982\u679c\u672c\u6587\u80fd\u4e3a\u5c06\u6765\u7684\u6211\u6216\u8005\u6709\u56f0\u96be\u7684\u67d0\u4eba\u63d0\u4f9b\u5e2e\u52a9\uff0c\u6211\u5c06\u975e\u5e38\u9ad8\u5174\u3002<\/p>\n<h1>\u8bf7\u53c2\u8003\u4e0b\u5217\u8d44\u6599<\/h1>\n<p>\u5c06 Terraform \u7684 backend \u914d\u7f6e\u4e3a S3 \u5e76\u521d\u59cb\u5316\u7684\u6700\u57fa\u672c\u6b65\u9aa4<br \/>\n\u4f7f\u7528 Terraform \u7ba1\u7406 S3 \u6216 DynamoDB \u4f5c\u4e3a\u540e\u7aef\u7684\u8bbe\u7f6e\u65b9\u6cd5<br \/>\n\u4e00\u4e9b\u4e2a\u4eba\u5728\u4f7f\u7528 Terraform \u4e00\u6bb5\u65f6\u95f4\u540e\u5b66\u5230\u7684\u6280\u5de7<br \/>\n\u65e0\u6cd5\u4f7f\u7528 Terraform \u5c06 tfstate \u6587\u4ef6\u4e0a\u4f20\u5230 S3 \u4e2d<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u5728\u4f7f\u7528Terraform\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u5728\u7ba1\u7406\u672c\u5730\u548cS3\u4e2d\u7684terraform.tfstate\u65f6\u9047\u5230\u4e86\u76f8\u5f53\u591a [&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-48646","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>\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5 - 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\/\u5728\u672c\u5730\u6216s3\u4e2d\u7ba1\u7406terraform-tfstate\u6587\u4ef6\u7684\u65b9\u6cd5\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u5728\u4f7f\u7528Terraform\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u5728\u7ba1\u7406\u672c\u5730\u548cS3\u4e2d\u7684terraform.tfstate\u65f6\u9047\u5230\u4e86\u76f8\u5f53\u591a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728\u672c\u5730\u6216s3\u4e2d\u7ba1\u7406terraform-tfstate\u6587\u4ef6\u7684\u65b9\u6cd5\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-03T12:44:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T13:18:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/21-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=\"2 \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%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/\",\"name\":\"\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-11-03T12:44:38+00:00\",\"dateModified\":\"2024-04-30T13:18:13+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5\"}]},{\"@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%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5 - 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\/\u5728\u672c\u5730\u6216s3\u4e2d\u7ba1\u7406terraform-tfstate\u6587\u4ef6\u7684\u65b9\u6cd5\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5","og_description":"\u9996\u5148 \u5728\u4f7f\u7528Terraform\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u5728\u7ba1\u7406\u672c\u5730\u548cS3\u4e2d\u7684terraform.tfstate\u65f6\u9047\u5230\u4e86\u76f8\u5f53\u591a [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728\u672c\u5730\u6216s3\u4e2d\u7ba1\u7406terraform-tfstate\u6587\u4ef6\u7684\u65b9\u6cd5\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-11-03T12:44:38+00:00","article_modified_time":"2024-04-30T13:18:13+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8632913a08637a6bb909\/21-0.png"}],"author":"\u96c5, \u609f","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u96c5, \u609f","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/","name":"\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-11-03T12:44:38+00:00","dateModified":"2024-04-30T13:18:13+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5728\u672c\u5730\u6216S3\u4e2d\u7ba1\u7406terraform.tfstate\u6587\u4ef6\u7684\u65b9\u6cd5"}]},{"@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%a8%e6%9c%ac%e5%9c%b0%e6%88%96s3%e4%b8%ad%e7%ae%a1%e7%90%86terraform-tfstate%e6%96%87%e4%bb%b6%e7%9a%84%e6%96%b9%e6%b3%95\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48646","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=48646"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48646\/revisions"}],"predecessor-version":[{"id":94353,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48646\/revisions\/94353"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=48646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=48646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=48646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}