{"id":48609,"date":"2023-09-08T22:40:44","date_gmt":"2022-12-22T12:24:11","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/"},"modified":"2024-04-30T22:02:20","modified_gmt":"2024-04-30T14:02:20","slug":"%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/","title":{"rendered":"\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011"},"content":{"rendered":"<h1>\u603b\u7ed3\u4e00\u4e0b<\/h1>\n<p>\u6211\u8ba1\u5212\u5728\u672c\u6708\u5c1d\u8bd5\u73a9\u4e00\u4e0bTerraoform\u7684v0.13.0-beta\u7248\u672c\u3002\u6211\u5c06\u4f1a\u8fdb\u884c\u4e00\u4e9b\u5b9e\u9a8c\uff0c\u6bd4\u5982\u63a2\u7d22\u4e0ev0.12\u7248\u672c\u7684\u533a\u522b\u4ee5\u53ca\u6267\u884c0.13\u5347\u7ea7\u547d\u4ee4\u540e\u7684\u5dee\u5f02\u9a8c\u8bc1\u3002<\/p>\n<h1>\u5b89\u88c5<\/h1>\n<p>\u56e0\u4e3a\u6211\u6b63\u5728\u4f7f\u7528tfenv\uff0c\u6240\u4ee5\u6211\u4f1a\u901a\u8fc7tfenv\u6765\u5b89\u88c5\u3002<br \/>\n\u5982\u679c\u60a8\u6b63\u5728\u4f7f\u7528Docker\u955c\u50cf\uff0c\u8bf7\u4f7f\u7528Docker\u8fdb\u884c\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>tfenv list-remote | <span class=\"nb\">grep <\/span>0.13\r\n0.13.0-beta2\r\n0.13.0-beta1\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>tfenv <span class=\"nb\">install <\/span>0.13.0-beta2\r\n<span class=\"o\">[<\/span>INFO] Installing Terraform v0.13.0-beta2\r\n<span class=\"o\">[<\/span>INFO] Downloading release tarball from https:\/\/releases.hashicorp.com\/terraform\/0.13.0-beta2\/terraform_0.13.0-beta2_darwin_amd64.zip\r\n<span class=\"c\">#################################################################################################################################################### 100.0%<\/span>\r\n<span class=\"o\">[<\/span>INFO] Downloading SHA <span class=\"nb\">hash <\/span>file from https:\/\/releases.hashicorp.com\/terraform\/0.13.0-beta2\/terraform_0.13.0-beta2_SHA256SUMS\r\ntfenv: tfenv-install: <span class=\"o\">[<\/span>WARN] No keybase <span class=\"nb\">install <\/span>found, skipping OpenPGP signature verification\r\nArchive:  tfenv_download.C6RPXq\/terraform_0.13.0-beta2_darwin_amd64.zip\r\n  inflating: \/usr\/local\/Cellar\/tfenv\/1.0.2\/versions\/0.13.0-beta2\/terraform  \r\n<span class=\"o\">[<\/span>INFO] Installation of terraform v0.13.0-beta2 successful\r\n<span class=\"o\">[<\/span>INFO] Switching to v0.13.0-beta2\r\nError parsing command-line flags: flag provided but not defined: <span class=\"nt\">-version<\/span>\r\n\r\ntfenv: tfenv-use: <span class=\"o\">[<\/span>ERROR] <span class=\"s1\">'terraform --version'<\/span> failed. Something is seriously wrong\r\n<\/code><\/pre>\n<p>\u54ce\u5440\uff1f\u4f3c\u4e4e\u51fa\u73b0\u9519\u8bef\u4e86\u3002<br \/>\n\u770b\u8d77\u6765\u4ecev0.13\u7248\u672c\u5f00\u59cb\uff0c-version\u9009\u9879\u5df2\u7ecf\u65e0\u6548\u4e86\uff0c\u53d8\u6210\u4e86version\uff08\u6ca1\u6709\u8fde\u5b57\u7b26\uff09\u5462\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>tfenv list\r\n  0.13.0-beta2\r\n<span class=\"k\">*<\/span> 0.12.26 <span class=\"o\">(<\/span><span class=\"nb\">set <\/span>by \/usr\/local\/Cellar\/tfenv\/1.0.2\/version<span class=\"o\">)<\/span>\r\n  0.12.17\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>terraform <span class=\"nt\">--version<\/span>\r\nTerraform v0.12.26\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>tfenv use 0.13.0-beta2\r\n<span class=\"o\">[<\/span>INFO] Switching to v0.13.0-beta2\r\nError parsing command-line flags: flag provided but not defined: <span class=\"nt\">-version<\/span>\r\n\r\ntfenv: tfenv-use: <span class=\"o\">[<\/span>ERROR] <span class=\"s1\">'terraform --version'<\/span> failed. Something is seriously wrong\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>tfenv list\r\n<span class=\"k\">*<\/span> 0.13.0-beta2 <span class=\"o\">(<\/span><span class=\"nb\">set <\/span>by \/usr\/local\/Cellar\/tfenv\/1.0.2\/version<span class=\"o\">)<\/span>\r\n  0.12.26\r\n  0.12.17\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>terraform version\r\nTerraform v0.13.0-beta2\r\n<\/code><\/pre>\n<p>\u7531\u4e8etfenv\u4e0d\u652f\u6301\uff0c\u4f3c\u4e4e\u4f1a\u51fa\u73b0\u9519\u8bef\u3002<br \/>\n\u987a\u4fbf\u63d0\u4e00\u4e0b\uff0c\u56e0\u4e3a\u6dfb\u52a0\u4e86-json\u9009\u9879\uff0c\u4e5f\u53ef\u4ee5\u4ee5\u8fd9\u79cd\u65b9\u5f0f\u8f93\u51fa\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>terraform version <span class=\"nt\">-json<\/span>\r\n<span class=\"o\">{<\/span>\r\n  <span class=\"s2\">\"terraform_version\"<\/span>: <span class=\"s2\">\"0.13.0-beta2\"<\/span>,\r\n  <span class=\"s2\">\"terraform_revision\"<\/span>: <span class=\"s2\">\"\"<\/span>,\r\n  <span class=\"s2\">\"provider_selections\"<\/span>: <span class=\"o\">{}<\/span>,\r\n  <span class=\"s2\">\"terraform_outdated\"<\/span>: <span class=\"nb\">false<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u5df2\u7ecf\u5207\u6362\u5b8c\u6bd5\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u7ee7\u7eed\u524d\u8fdb\u4e86\u3002<\/p>\n<h1>\u4fee\u6539\u5185\u5bb9<\/h1>\n<p>\u5728v0.13\u7248\u672c\u4e2d\uff0c\u6211\u4e2a\u4eba\u8ba4\u4e3a\u6709\u4ee5\u4e0b\u91cd\u8981\u7684\u53d8\u66f4\u70b9\u3002<\/p>\n<p>Automatic installation of third-party providers<\/p>\n<p>\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3082\u540d\u524d\u89e3\u6c7a\u3092\u5b9f\u65bd\u3057\u3066\u304f\u308c\u308b<\/p>\n<p>depends_on for modules<\/p>\n<p>module\u30d6\u30ed\u30c3\u30af\u3067\u3082depends_on\u304c\u5229\u7528\u3067\u304d\u308b<\/p>\n<p>count and for_each for modules<\/p>\n<p>module\u30d6\u30ed\u30c3\u30af\u3067\u3082count\u3084for_each\u304c\u5229\u7528\u3067\u304d\u308b<\/p>\n<p>\u9664\u4e86\u5347\u7ea7\u5230v0.12\u7248\u672c\u4e00\u6837\uff0cTerraform\u8fd8\u51c6\u5907\u4e860.13upgrade\u547d\u4ee4\uff0c\u56e0\u6b64\u6211\u6253\u7b97\u67e5\u770b\u5b83\u6240\u5e26\u6765\u7684\u66f4\u6539\u5185\u5bb9\u7b49\u7b49\u3002<br \/>\n\u5c3d\u7ba1\u6211\u5e76\u6ca1\u6709\u6253\u7b97\u4f7f\u7528\u5b83\uff0c\u4f46\u5728\u4f7f\u7528S3\u4f5c\u4e3a\u540e\u7aef\u65f6\uff0c\u4f3c\u4e4e\u53ef\u4ee5\u4f7f\u7528af-south-1\uff08\u5f00\u666e\u6566\uff09\u5730\u533a\u7684\u4e9a\u9a6c\u900a\u4e91\u670d\u52a1\uff08AWS\uff09\u3002<\/p>\n<h1>\u6267\u884c0.13\u7248\u672c\u5347\u7ea7\u6307\u4ee4\u3002<\/h1>\n<p>\u6211\u8bd5\u7740\u5f88\u5feb\u5730\u5b8c\u6210\u4e86\u4e00\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>terraform 0.13upgrade\r\n\r\nThis <span class=\"nb\">command <\/span>will update the configuration files <span class=\"k\">in <\/span>the given directory to use\r\nthe new provider <span class=\"nb\">source <\/span>features from Terraform v0.13. It will also highlight\r\nany providers <span class=\"k\">for <\/span>which the <span class=\"nb\">source <\/span>cannot be detected, and advise how to\r\nproceed.\r\n\r\nWe recommend using this <span class=\"nb\">command <\/span><span class=\"k\">in <\/span>a clean version control work tree, so that\r\nyou can easily see the proposed changes as a diff against the latest commit.\r\nIf you have uncommited changes already present, we recommend aborting this\r\n<span class=\"nb\">command <\/span>and dealing with them before running this <span class=\"nb\">command <\/span>again.\r\n\r\nWould you like to upgrade the module <span class=\"k\">in <\/span>the current directory?\r\n  Only <span class=\"s1\">'yes'<\/span> will be accepted to confirm.\r\n\r\n  Enter a value: <span class=\"nb\">yes<\/span>\r\n\r\n<span class=\"nt\">-----------------------------------------------------------------------------<\/span>\r\n\r\nUpgrade <span class=\"nb\">complete<\/span><span class=\"o\">!<\/span>\r\n\r\nUse your version control system to review the proposed changes, make any\r\nnecessary adjustments, and <span class=\"k\">then <\/span>commit.\r\n\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>git status\r\nOn branch master\r\nYour branch is up to <span class=\"nb\">date <\/span>with <span class=\"s1\">'origin\/master'<\/span><span class=\"nb\">.<\/span>\r\n\r\nUntracked files:\r\n  <span class=\"o\">(<\/span>use <span class=\"s2\">\"git add &lt;file&gt;...\"<\/span> to include <span class=\"k\">in <\/span>what will be committed<span class=\"o\">)<\/span>\r\n\r\n        versions.tf\r\n\r\nnothing added to commit but untracked files present <span class=\"o\">(<\/span>use <span class=\"s2\">\"git add\"<\/span> to track<span class=\"o\">)<\/span>\r\n<\/code><\/pre>\n<p>\u5df2\u7ecf\u8f93\u51fa\u4e86versions.tf\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">terraform<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">required_providers<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">aws<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"hashicorp\/aws\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n  <span class=\"p\">}<\/span>\r\n  <span class=\"n\">required_version<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"&gt;= 0.13\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u5728\u8fd9\u91cc\u662f\u5426\u63a8\u8350\u5bf9Terraform\u8fdb\u884c\u7248\u672c\u7ba1\u7406\u5462\uff1f<br \/>\n\u5982\u679c\u5728\u8fd9\u91cc\u6dfb\u52a0\u4e86\u793e\u533a\u63d0\u4f9b\u7a0b\u5e8f\uff0c\u5c31\u53ef\u4ee5\u901a\u8fc7\u547d\u540d\u7a7a\u95f4\u6765\u89e3\u51b3\u5e76\u8fdb\u884c\u5b89\u88c5\u3002<br \/>\n\u6240\u4ee5\u4eca\u540e\u91c7\u7528\u8fd9\u79cd\u5199\u6cd5\u53ef\u80fd\u66f4\u597d\u3002<\/p>\n<h1>\u8bd5\u4e00\u8bd5<\/h1>\n<p>\u63a5\u4e0b\u6765\u6211\u4eec\u5c06\u5c1d\u8bd5\u4e0a\u9762\u63d0\u5230\u7684\u5185\u5bb9\u3002<\/p>\n<h2>\u6211\u8a66\u8457\u5b89\u88dd\u793e\u7fa4\u63d0\u4f9b\u8005\u3002<\/h2>\n<p>\u60a8\u53ef\u4ee5\u5728\u6b64\u5904\u67e5\u770b\u63d0\u4f9b\u5546\u7684\u6ce8\u518c\u8868\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8640913a08637a6bbdaa\/24-0.png\" alt=\"sc.png\" \/><\/div>\n<pre class=\"post-pre\"><code><span class=\"n\">terraform<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">required_providers<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">aws<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"hashicorp\/aws\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"n\">sops<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"carlpett\/sops\"<\/span>\r\n      <span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"0.5.1\"<\/span>\r\n    <span class=\"p\">}<\/span>\r\n  <span class=\"p\">}<\/span>\r\n  <span class=\"n\">required_version<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"&gt;= 0.13\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u5728`config.tf`\u6587\u4ef6\u4e2d\u8fd8\u9700\u8981\u4f7f\u7528\u63d0\u4f9b\u8005\uff0c\u6240\u4ee5\u6211\u4f1a\u6dfb\u52a0\u76f8\u5e94\u7684\u58f0\u660e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">provider<\/span> <span class=\"s\">\"aws\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">region<\/span>  <span class=\"o\">=<\/span> <span class=\"s\">\"us-east-1\"<\/span>\r\n  <span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"~&gt; 2.67.0\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"n\">provider<\/span> <span class=\"s\">\"sops\"<\/span> <span class=\"p\">{}<\/span>  <span class=\"c\">\/\/ \u3053\u3053<\/span>\r\n\r\n<span class=\"n\">data<\/span> <span class=\"s\">\"aws_caller_identity\"<\/span> <span class=\"s\">\"self\"<\/span> <span class=\"p\">{}<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u5c06\u5f00\u59cb\u8fdb\u884c\u521d\u59cb\u5316\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>terraform init\r\n\r\nInitializing the backend...\r\n\r\nInitializing provider plugins...\r\n- Finding hashicorp\/aws versions matching <span class=\"s2\">\"~&gt; 2.67.0\"<\/span>...\r\n- Finding carlpett\/sops versions matching <span class=\"s2\">\"0.5.1\"<\/span>...\r\n- Installing hashicorp\/aws v2.67.0...\r\n- Installed hashicorp\/aws v2.67.0 <span class=\"o\">(<\/span>signed by HashiCorp<span class=\"o\">)<\/span>\r\n- Installing carlpett\/sops v0.5.1...\r\n- Installed carlpett\/sops v0.5.1 <span class=\"o\">(<\/span>self-signed, key ID 1468AC14E6819667<span class=\"o\">)<\/span>\r\n\r\nPartner and community providers are signed by their developers.\r\nIf you<span class=\"s1\">'d like to know more about provider signing, you can read about it here:\r\nhttps:\/\/www.terraform.io\/docs\/plugins\/signing.html\r\n\r\nTerraform has been successfully initialized!\r\n\r\nYou may now begin working with Terraform. Try running \"terraform plan\" to see\r\nany changes that are required for your infrastructure. All Terraform commands\r\nshould now work.\r\n\r\nIf you ever set or change modules or backend configuration for Terraform,\r\nrerun this command to reinitialize your working directory. If you forget, other\r\ncommands will detect it and remind you to do so if necessary.\r\n<\/span><\/code><\/pre>\n<p>\u542c\u8d77\u6765\u633a\u4e0d\u9519\u7684\u3002<br \/>\n\u8ba9\u6211\u4eec\u770b\u770b\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>tree .terraform\r\n.terraform\r\n\u2514\u2500\u2500 plugins\r\n    \u251c\u2500\u2500 registry.terraform.io\r\n    \u2502\u00a0\u00a0 \u251c\u2500\u2500 carlpett\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 sops\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 0.5.1\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0         \u2514\u2500\u2500 darwin_amd64\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0             \u2514\u2500\u2500 terraform-provider-sops_v0.5.1\r\n    \u2502\u00a0\u00a0 \u2514\u2500\u2500 hashicorp\r\n    \u2502\u00a0\u00a0     \u2514\u2500\u2500 aws\r\n    \u2502\u00a0\u00a0         \u2514\u2500\u2500 2.67.0\r\n    \u2502\u00a0\u00a0             \u2514\u2500\u2500 darwin_amd64\r\n    \u2502\u00a0\u00a0                 \u2514\u2500\u2500 terraform-provider-aws_v2.67.0_x4\r\n    \u2514\u2500\u2500 selections.json\r\n\r\n10 directories, 3 files\r\n<\/code><\/pre>\n<p>\u54e6\uff01\u6709\u4e1c\u897f\u6765\u4e86\uff01<\/p>\n<p>\u6211\u4f1a\u8fc5\u901f\u5c1d\u8bd5\u4e00\u4e0b\u662f\u5426\u53ef\u7528\u3002<br \/>\n\u6211\u5c06\u521b\u5efa\u7528\u4e8eSOPS\u7684KMS\u5bc6\u94a5\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">resource<\/span> <span class=\"s\">\"aws_kms_key\"<\/span> <span class=\"s\">\"sops\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">description<\/span>             <span class=\"o\">=<\/span> <span class=\"s\">\"For sops key\"<\/span>\r\n  <span class=\"n\">enable_key_rotation<\/span>     <span class=\"o\">=<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"n\">deletion_window_in_days<\/span> <span class=\"o\">=<\/span> <span class=\"m\">7<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"n\">resource<\/span> <span class=\"s\">\"aws_kms_alias\"<\/span> <span class=\"s\">\"sops\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">target_key_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">aws_kms_key<\/span><span class=\"o\">.<\/span><span class=\"n\">sops<\/span><span class=\"o\">.<\/span><span class=\"n\">id<\/span>\r\n  <span class=\"n\">name<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"alias\/sopsKey\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"n\">output<\/span> <span class=\"s\">\"sops_key\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">value<\/span> <span class=\"o\">=<\/span> <span class=\"n\">aws_kms_key<\/span><span class=\"o\">.<\/span><span class=\"n\">sops<\/span><span class=\"o\">.<\/span><span class=\"n\">arn<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u8fd9\u4e2a\u6765\u521b\u5efa\u52a0\u5bc6\u7684yml\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">export <\/span><span class=\"nv\">SOPS_KMS_ARN<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"arn:aws:kms:us-east-1:0123456789012:key\/beddd63b-4b91-49f4-a865-3d668359cb28\"<\/span>\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>sops credential.yml\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span>sops <span class=\"nt\">-d<\/span> credential.yml\r\ndemo_credential: IyHQTp3CHsDs+AFG\r\n<span class=\"nv\">$ <\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">ls<\/span> <span class=\"nt\">-l<\/span> credential.yml\r\n<span class=\"nt\">-rw-r--r--<\/span>  1 tetsu  staff  1013  6 21 08:56 credential.yml\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u540e\uff0c\u5c06\u4e0b\u9762\u5185\u5bb9\u8ffd\u52a0\u5230config.tf\u4e2d\uff0c\u7136\u540e\u518d\u6b21\u6267\u884cterraform init\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">data<\/span> <span class=\"s\">\"sops_file\"<\/span> <span class=\"s\">\"demo_credential\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">source_file<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"credential.yml\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u73b0\u5728\u51c6\u5907\u5de5\u4f5c\u5b8c\u6210\u4e86\uff0c\u63a5\u4e0b\u6765\u5c06\u5c1d\u8bd5\u5c06\u51ed\u636e\u4fdd\u5b58\u5728\u53c2\u6570\u5b58\u50a8\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">resource<\/span> <span class=\"s\">\"aws_ssm_parameter\"<\/span> <span class=\"s\">\"demo_credential\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">name<\/span>   <span class=\"o\">=<\/span> <span class=\"s\">\"demo-credential\"<\/span>\r\n  <span class=\"k\">type<\/span>   <span class=\"o\">=<\/span> <span class=\"s\">\"SecureString\"<\/span>\r\n  <span class=\"n\">key_id<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"alias\/aws\/ssm\"<\/span>\r\n  <span class=\"n\">value<\/span>  <span class=\"o\">=<\/span> <span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"n\">sops_file<\/span><span class=\"o\">.<\/span><span class=\"n\">demo_credential<\/span><span class=\"o\">.<\/span><span class=\"n\">data<\/span><span class=\"p\">[<\/span><span class=\"s\">\"demo_credential\"<\/span><span class=\"p\">]<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<details>\u8ba1\u5212\u548c\u5e94\u7528<br \/>\n$ terraform plan -out plan.out<br \/>\n\u5237\u65b0Terraform\u72b6\u6001\u4ee5\u8ba1\u5212\u4e4b\u524d&#8230;<br \/>\n\u5237\u65b0\u540e\u7684\u72b6\u6001\u5c06\u7528\u4e8e\u8ba1\u7b97\u8be5\u8ba1\u5212\uff0c\u4f46\u4e0d\u4f1a\u88ab\u6301\u4e45\u5316\u5230\u672c\u5730\u6216\u8fdc\u7a0b\u72b6\u6001\u5b58\u50a8\u3002data.sops_file.demo_credential: \u5237\u65b0\u72b6\u6001&#8230;<br \/>\ndata.aws_caller_identity.self: \u5237\u65b0\u72b6\u6001&#8230; [id=2020-06-20 23:52:16.146895 +0000 UTC]<br \/>\naws_kms_key.sops: \u5237\u65b0\u72b6\u6001&#8230; [id=beddd63b-4b91-49f4-a865-3d668359cb28]<br \/>\naws_kms_alias.sops: \u5237\u65b0\u72b6\u6001&#8230; [id=alias\/sopsKey]<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>\u5df2\u751f\u6210\u6267\u884c\u8ba1\u5212\u5982\u4e0b\u6240\u793a\u3002<br \/>\n\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># aws_ssm_parameter.demo_credential \u5c06\u88ab\u521b\u5efa<br \/>\n+ resource &#8220;aws_ssm_parameter&#8221; &#8220;demo_credential&#8221; {<br \/>\n+ arn = (\u5e94\u7528\u540e\u5df2\u77e5)<br \/>\n+ id = (\u5e94\u7528\u540e\u5df2\u77e5)<br \/>\n+ key_id = &#8220;alias\/aws\/ssm&#8221;<br \/>\n+ name = &#8220;demo-credential&#8221;<br \/>\n+ tier = &#8220;Standard&#8221;<br \/>\n+ type = &#8220;SecureString&#8221;<br \/>\n+ value = (\u654f\u611f\u503c)<br \/>\n+ version = (\u5e94\u7528\u540e\u5df2\u77e5)<br \/>\n}<\/p>\n<p>\u8ba1\u5212: \u6dfb\u52a01\u4e2a\uff0c\u66f4\u65390\u4e2a\uff0c\u9500\u6bc10\u4e2a\u3002<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>\u8be5\u8ba1\u5212\u5df2\u4fdd\u5b58\u81f3: plan.out<\/p>\n<p>\u8981\u6267\u884c\u8fd9\u4e9b\u64cd\u4f5c\uff0c\u8bf7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u8fdb\u884c\u5e94\u7528\uff1a<br \/>\nterraform apply &#8220;plan.out&#8221;<\/p>\n<p>$<br \/>\n$<br \/>\n$ terraform apply &#8220;plan.out&#8221;<br \/>\naws_ssm_parameter.demo_credential: \u6b63\u5728\u521b\u5efa&#8230;<br \/>\naws_ssm_parameter.demo_credential: \u521b\u5efa\u5b8c\u6210\uff0c\u8017\u65f63\u79d2 [id=demo-credential]<\/p>\n<p>\u5e94\u7528\u5b8c\u6210\uff01\u8d44\u6e90: 1\u4e2a\u5df2\u6dfb\u52a0\uff0c0\u4e2a\u5df2\u66f4\u6539\uff0c0\u4e2a\u5df2\u9500\u6bc1\u3002<\/p>\n<p>\u60a8\u7684\u57fa\u7840\u67b6\u6784\u72b6\u6001\u5df2\u4fdd\u5b58\u5230\u4e0b\u9762\u7684\u8def\u5f84\u3002<br \/>\n\u6b64\u72b6\u6001\u7528\u4e8e\u4fee\u6539\u548c\u9500\u6bc1\u57fa\u7840\u67b6\u6784\uff0c\u8bf7\u59a5\u5584\u4fdd\u7ba1\u3002\u8981\u68c0\u67e5\u5b8c\u6574\u7684\u72b6\u6001\uff0c\u8bf7\u4f7f\u7528 `terraform show` \u547d\u4ee4\u3002<\/p>\n<p>\u72b6\u6001\u8def\u5f84: terraform.tfstate<\/p>\n<p>\u8f93\u51fa:<\/p>\n<p>sops_key = arn:aws:kms:us-east-1:0123456789012:key\/beddd63b-4b91-49f4-a865-3d668359cb28<\/p>\n<\/details>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8640913a08637a6bbdaa\/42-0.png\" alt=\"sc 1.png\" \/><\/div>\n<h2>\u5c1d\u8bd5\u4f7f\u7528 module \u4e2d\u7684 count \u529f\u80fd\u3002<\/h2>\n<p>\u5229\u7528 count \u7684\u540c\u65f6\uff0c\u521b\u5efa\u591a\u4e2a\u7528\u6237\u8fdb\u884c\u5c1d\u8bd5\u3002<br \/>\n\u5c06\u53c2\u8003\u4ee5\u4e0b module \u7684\u5185\u5bb9\u6765\u521b\u5efa\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">resource<\/span> <span class=\"s\">\"aws_iam_user\"<\/span> <span class=\"s\">\"default\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">name<\/span>          <span class=\"o\">=<\/span> <span class=\"k\">var<\/span><span class=\"o\">.<\/span><span class=\"n\">name<\/span>\r\n  <span class=\"n\">force_destroy<\/span> <span class=\"o\">=<\/span> <span class=\"no\">false<\/span>\r\n\r\n  <span class=\"n\">tags<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">Group<\/span> <span class=\"o\">=<\/span> <span class=\"k\">var<\/span><span class=\"o\">.<\/span><span class=\"n\">iam_group<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u5728\u6839\u76ee\u5f55\u4e0b\u7684main.tf\u6587\u4ef6\u4e2d\uff0c\u7f16\u5199\u4e00\u4e2a\u6a21\u5757\u4ee5\u5f15\u7528\u4e0a\u8ff0\u5185\u5bb9\uff0c\u5e76\u5728\u6a21\u5757\u4e2d\u4f7f\u7528count\u8fdb\u884c\u5c1d\u8bd5\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">module<\/span> <span class=\"s\">\"count_user\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">count<\/span>  <span class=\"o\">=<\/span> <span class=\"m\">2<\/span>\r\n  <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\".\/modules\/user\"<\/span>\r\n\r\n  <span class=\"n\">name<\/span>      <span class=\"o\">=<\/span> <span class=\"s\">\"hoge-${format(\"<\/span><span class=\"o\">%<\/span><span class=\"m\">02<\/span><span class=\"n\">d<\/span><span class=\"s\">\", count.index + 1)}\"<\/span>\r\n  <span class=\"n\">iam_group<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"hogehoge\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u5927\u6982\u662f\u8fd9\u6837\u7684\u3002\u6ca1\u6709\u7279\u522b\u7684\u8bbe\u8ba1\u3002<br \/>\n\u5f53\u6267\u884cterraform plan\u65f6\uff0c\u662f\u8fd9\u4e2a\u6837\u5b50\u3002<\/p>\n<pre class=\"post-pre\"><code>  <span class=\"err\">#<\/span> <span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_user<\/span><span class=\"p\">[<\/span><span class=\"m\">0<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span> <span class=\"n\">will<\/span> <span class=\"n\">be<\/span> <span class=\"n\">created<\/span>\r\n  <span class=\"o\">+<\/span> <span class=\"n\">resource<\/span> <span class=\"s\">\"aws_iam_user\"<\/span> <span class=\"s\">\"default\"<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">arn<\/span>           <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">force_destroy<\/span> <span class=\"o\">=<\/span> <span class=\"no\">false<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">id<\/span>            <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">name<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"hoge-01\"<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">path<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"\/\"<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">tags<\/span>          <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"o\">+<\/span> <span class=\"s\">\"Group\"<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"hogehoge\"<\/span>\r\n        <span class=\"p\">}<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">unique_id<\/span>     <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"p\">}<\/span>\r\n\r\n  <span class=\"err\">#<\/span> <span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_user<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span> <span class=\"n\">will<\/span> <span class=\"n\">be<\/span> <span class=\"n\">created<\/span>\r\n  <span class=\"o\">+<\/span> <span class=\"n\">resource<\/span> <span class=\"s\">\"aws_iam_user\"<\/span> <span class=\"s\">\"default\"<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">arn<\/span>           <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">force_destroy<\/span> <span class=\"o\">=<\/span> <span class=\"no\">false<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">id<\/span>            <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">name<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"hoge-02\"<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">path<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"\/\"<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">tags<\/span>          <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"o\">+<\/span> <span class=\"s\">\"Group\"<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"hogehoge\"<\/span>\r\n        <span class=\"p\">}<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">unique_id<\/span>     <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u8ba1\u6570\u5f88\u51c6\u786e\uff0c\u7d22\u5f15\u5df2\u7ecf\u88ab\u6dfb\u52a0\u8fdb\u53bb\u4e86\u3002<\/p>\n<h2>\u53ef\u4ee5\u5c1d\u8bd5\u4f7f\u7528module\u4e2d\u7684for_each\u3002<\/h2>\n<p>\u63cf\u8ff0\u4e00\u4e2a\u7c7b\u4f3c\u4e0a\u8ff0\u7684\u6a21\u5757\uff0c\u7528for_each\u5f15\u7528\u5e76\u521b\u5efa\u7528\u6237\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">locals<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">forEach<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">demo01<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"fuga\"<\/span>\r\n    <span class=\"n\">demo02<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"piyo\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"n\">module<\/span> <span class=\"s\">\"for_each_user\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">for_each<\/span> <span class=\"o\">=<\/span> <span class=\"n\">local<\/span><span class=\"o\">.<\/span><span class=\"n\">forEach<\/span>\r\n  <span class=\"n\">source<\/span>   <span class=\"o\">=<\/span> <span class=\"s\">\".\/modules\/user\"<\/span>\r\n\r\n  <span class=\"n\">name<\/span>      <span class=\"o\">=<\/span> <span class=\"n\">each<\/span><span class=\"o\">.<\/span><span class=\"n\">value<\/span>\r\n  <span class=\"n\">iam_group<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"fugapiyo\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u4e5f\u4f1a\u5c1d\u8bd5\u8fd0\u884c terraform plan\u3002<\/p>\n<pre class=\"post-pre\"><code>  <span class=\"err\">#<\/span> <span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_user<\/span><span class=\"p\">[<\/span><span class=\"s\">\"demo01\"<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span> <span class=\"n\">will<\/span> <span class=\"n\">be<\/span> <span class=\"n\">created<\/span>\r\n  <span class=\"o\">+<\/span> <span class=\"n\">resource<\/span> <span class=\"s\">\"aws_iam_user\"<\/span> <span class=\"s\">\"default\"<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">arn<\/span>           <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">force_destroy<\/span> <span class=\"o\">=<\/span> <span class=\"no\">false<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">id<\/span>            <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">name<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"fuga\"<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">path<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"\/\"<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">tags<\/span>          <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"o\">+<\/span> <span class=\"s\">\"Group\"<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"fugapiyo\"<\/span>\r\n        <span class=\"p\">}<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">unique_id<\/span>     <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"p\">}<\/span>\r\n\r\n  <span class=\"err\">#<\/span> <span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_user<\/span><span class=\"p\">[<\/span><span class=\"s\">\"demo02\"<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span> <span class=\"n\">will<\/span> <span class=\"n\">be<\/span> <span class=\"n\">created<\/span>\r\n  <span class=\"o\">+<\/span> <span class=\"n\">resource<\/span> <span class=\"s\">\"aws_iam_user\"<\/span> <span class=\"s\">\"default\"<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">arn<\/span>           <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">force_destroy<\/span> <span class=\"o\">=<\/span> <span class=\"no\">false<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">id<\/span>            <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">name<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"piyo\"<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">path<\/span>          <span class=\"o\">=<\/span> <span class=\"s\">\"\/\"<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">tags<\/span>          <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"o\">+<\/span> <span class=\"s\">\"Group\"<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"fugapiyo\"<\/span>\r\n        <span class=\"p\">}<\/span>\r\n      <span class=\"o\">+<\/span> <span class=\"n\">unique_id<\/span>     <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">known<\/span> <span class=\"n\">after<\/span> <span class=\"n\">apply<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u53ef\u4ee5\u6e05\u695a\u5730\u770b\u5230key:value\u5df2\u7ecf\u6b63\u786e\u8f93\u51fa\u4e86\u3002<\/p>\n<h2>\u5c1d\u8bd5\u4f7f\u7528module\u548cdepends_on<\/h2>\n<p>\u56e0\u4e3a\u5373\u4f7f\u4e0d\u5199\u8fd9\u4e2a\u4e5f\u80fd\u89e3\u51b3\u95ee\u9898\uff0c\u6240\u4ee5\u8fd9\u662f\u591a\u4f59\u7684\uff0c\u4f46\u8fd8\u662f\u5199\u4e0b\u6765\u5427\u3002<br \/>\n\u5bf9\u4e8e\u4e4b\u524d\u521b\u5efa\u7684\u7528\u6237\uff0c\u6211\u4eec\u63d0\u524d\u521b\u5efa\u4e86\u4e00\u4e2a\u7fa4\u7ec4\uff0c\u5e76\u91cd\u65b0\u4fee\u6539\u4e86\u4ee3\u7801\uff0c\u4f7f\u5f97\u6807\u7b7e\u7b49\u503c\u53ef\u4ee5\u901a\u8fc7\u6a21\u5757\u8d4b\u4e88\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">\/\/ IAM\u30e6\u30fc\u30b6\u30fc\u4f5c\u6210<\/span>\r\n<span class=\"n\">module<\/span> <span class=\"s\">\"count_user\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">count<\/span>  <span class=\"o\">=<\/span> <span class=\"m\">2<\/span>\r\n  <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\".\/modules\/user\"<\/span>\r\n\r\n  <span class=\"n\">name<\/span>      <span class=\"o\">=<\/span> <span class=\"s\">\"hoge-${format(\"<\/span><span class=\"o\">%<\/span><span class=\"m\">02<\/span><span class=\"n\">d<\/span><span class=\"s\">\", count.index + 1)}\"<\/span>\r\n  <span class=\"n\">iam_group<\/span> <span class=\"o\">=<\/span> <span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_group<\/span><span class=\"o\">.<\/span><span class=\"n\">group_name<\/span>\r\n\r\n  <span class=\"n\">depends_on<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_group<\/span><span class=\"o\">.<\/span><span class=\"n\">group_name<\/span><span class=\"p\">]<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"n\">module<\/span> <span class=\"s\">\"for_each_user\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">for_each<\/span> <span class=\"o\">=<\/span> <span class=\"n\">local<\/span><span class=\"o\">.<\/span><span class=\"n\">forEach<\/span>\r\n  <span class=\"n\">source<\/span>   <span class=\"o\">=<\/span> <span class=\"s\">\".\/modules\/user\"<\/span>\r\n\r\n  <span class=\"n\">name<\/span>      <span class=\"o\">=<\/span> <span class=\"n\">each<\/span><span class=\"o\">.<\/span><span class=\"n\">value<\/span>\r\n  <span class=\"n\">iam_group<\/span> <span class=\"o\">=<\/span> <span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_group<\/span><span class=\"o\">.<\/span><span class=\"n\">group_name<\/span>\r\n\r\n  <span class=\"n\">depends_on<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_group<\/span><span class=\"o\">.<\/span><span class=\"n\">group_name<\/span><span class=\"p\">]<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"c\">\/\/ IAM\u30b0\u30eb\u30fc\u30d7\u306e\u4f5c\u6210<\/span>\r\n<span class=\"n\">module<\/span> <span class=\"s\">\"count_group\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\".\/modules\/group\"<\/span>\r\n\r\n  <span class=\"n\">group<\/span>      <span class=\"o\">=<\/span> <span class=\"s\">\"hogehoge\"<\/span>\r\n\r\n  <span class=\"n\">policy_arns<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"k\">default<\/span> <span class=\"o\">=<\/span> <span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">gengeral_policy<\/span><span class=\"o\">.<\/span><span class=\"n\">default_policy<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"n\">module<\/span> <span class=\"s\">\"for_each_group\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\".\/modules\/group\"<\/span>\r\n\r\n  <span class=\"n\">group<\/span>      <span class=\"o\">=<\/span> <span class=\"s\">\"fugapiyo\"<\/span>\r\n\r\n  <span class=\"n\">policy_arns<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"k\">default<\/span> <span class=\"o\">=<\/span> <span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">gengeral_policy<\/span><span class=\"o\">.<\/span><span class=\"n\">default_policy<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h2>\u6211\u8bd5\u7740\u90e8\u7f72\u4e00\u4e0b<\/h2>\n<p>\u7531\u4e8e\u6211\u5df2\u7ecf\u5b8c\u6210\u4e86\u4e00\u4e9b\u5199\u4f5c\u5de5\u4f5c\uff0c\u56e0\u6b64\u6211\u6682\u65f6\u4f1a\u5728v0.12\u7248\u672c\u4e0a\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">$<\/span> <span class=\"n\">terraform<\/span> <span class=\"o\">-<\/span><span class=\"n\">v<\/span>\r\n<span class=\"n\">Terraform<\/span> <span class=\"n\">v0<\/span><span class=\"m\">.12.26<\/span>\r\n<span class=\"err\">$<\/span> \r\n<span class=\"err\">$<\/span> \r\n<span class=\"err\">$<\/span> <span class=\"n\">terraform<\/span> <span class=\"n\">plan<\/span>\r\n\r\n<span class=\"n\">Error<\/span><span class=\"o\">:<\/span> <span class=\"n\">Reserved<\/span> <span class=\"n\">argument<\/span> <span class=\"n\">name<\/span> <span class=\"n\">in<\/span> <span class=\"n\">module<\/span> <span class=\"n\">block<\/span>\r\n\r\n  <span class=\"n\">on<\/span> <span class=\"n\">main<\/span><span class=\"o\">.<\/span><span class=\"n\">tf<\/span> <span class=\"n\">line<\/span> <span class=\"m\">10<\/span><span class=\"p\">,<\/span> <span class=\"n\">in<\/span> <span class=\"n\">module<\/span> <span class=\"s\">\"count_user\"<\/span><span class=\"o\">:<\/span>\r\n  <span class=\"m\">10<\/span><span class=\"o\">:<\/span>   <span class=\"n\">count<\/span>  <span class=\"o\">=<\/span> <span class=\"m\">2<\/span>\r\n\r\n<span class=\"n\">The<\/span> <span class=\"n\">name<\/span> <span class=\"s\">\"count\"<\/span> <span class=\"n\">is<\/span> <span class=\"n\">reserved<\/span> <span class=\"k\">for<\/span> <span class=\"n\">use<\/span> <span class=\"n\">in<\/span> <span class=\"n\">a<\/span> <span class=\"n\">future<\/span> <span class=\"n\">version<\/span> <span class=\"n\">of<\/span> <span class=\"n\">Terraform<\/span><span class=\"o\">.<\/span>\r\n\r\n\r\n<span class=\"n\">Error<\/span><span class=\"o\">:<\/span> <span class=\"n\">Reserved<\/span> <span class=\"n\">argument<\/span> <span class=\"n\">name<\/span> <span class=\"n\">in<\/span> <span class=\"n\">module<\/span> <span class=\"n\">block<\/span>\r\n\r\n  <span class=\"n\">on<\/span> <span class=\"n\">main<\/span><span class=\"o\">.<\/span><span class=\"n\">tf<\/span> <span class=\"n\">line<\/span> <span class=\"m\">16<\/span><span class=\"p\">,<\/span> <span class=\"n\">in<\/span> <span class=\"n\">module<\/span> <span class=\"s\">\"count_user\"<\/span><span class=\"o\">:<\/span>\r\n  <span class=\"m\">16<\/span><span class=\"o\">:<\/span>   <span class=\"n\">depends_on<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_group<\/span><span class=\"o\">.<\/span><span class=\"n\">group_name<\/span><span class=\"p\">]<\/span>\r\n\r\n<span class=\"n\">The<\/span> <span class=\"n\">name<\/span> <span class=\"s\">\"depends_on\"<\/span> <span class=\"n\">is<\/span> <span class=\"n\">reserved<\/span> <span class=\"k\">for<\/span> <span class=\"n\">use<\/span> <span class=\"n\">in<\/span> <span class=\"n\">a<\/span> <span class=\"n\">future<\/span> <span class=\"n\">version<\/span> <span class=\"n\">of<\/span> <span class=\"n\">Terraform<\/span><span class=\"o\">.<\/span>\r\n\r\n\r\n<span class=\"n\">Error<\/span><span class=\"o\">:<\/span> <span class=\"n\">Reserved<\/span> <span class=\"n\">argument<\/span> <span class=\"n\">name<\/span> <span class=\"n\">in<\/span> <span class=\"n\">module<\/span> <span class=\"n\">block<\/span>\r\n\r\n  <span class=\"n\">on<\/span> <span class=\"n\">main<\/span><span class=\"o\">.<\/span><span class=\"n\">tf<\/span> <span class=\"n\">line<\/span> <span class=\"m\">20<\/span><span class=\"p\">,<\/span> <span class=\"n\">in<\/span> <span class=\"n\">module<\/span> <span class=\"s\">\"for_each_user\"<\/span><span class=\"o\">:<\/span>\r\n  <span class=\"m\">20<\/span><span class=\"o\">:<\/span>   <span class=\"n\">for_each<\/span> <span class=\"o\">=<\/span> <span class=\"n\">local<\/span><span class=\"o\">.<\/span><span class=\"n\">forEach<\/span>\r\n\r\n<span class=\"n\">The<\/span> <span class=\"n\">name<\/span> <span class=\"s\">\"for_each\"<\/span> <span class=\"n\">is<\/span> <span class=\"n\">reserved<\/span> <span class=\"k\">for<\/span> <span class=\"n\">use<\/span> <span class=\"n\">in<\/span> <span class=\"n\">a<\/span> <span class=\"n\">future<\/span> <span class=\"n\">version<\/span> <span class=\"n\">of<\/span> <span class=\"n\">Terraform<\/span><span class=\"o\">.<\/span>\r\n\r\n\r\n<span class=\"n\">Error<\/span><span class=\"o\">:<\/span> <span class=\"n\">Reserved<\/span> <span class=\"n\">argument<\/span> <span class=\"n\">name<\/span> <span class=\"n\">in<\/span> <span class=\"n\">module<\/span> <span class=\"n\">block<\/span>\r\n\r\n  <span class=\"n\">on<\/span> <span class=\"n\">main<\/span><span class=\"o\">.<\/span><span class=\"n\">tf<\/span> <span class=\"n\">line<\/span> <span class=\"m\">26<\/span><span class=\"p\">,<\/span> <span class=\"n\">in<\/span> <span class=\"n\">module<\/span> <span class=\"s\">\"for_each_user\"<\/span><span class=\"o\">:<\/span>\r\n  <span class=\"m\">26<\/span><span class=\"o\">:<\/span>   <span class=\"n\">depends_on<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_group<\/span><span class=\"o\">.<\/span><span class=\"n\">group_name<\/span><span class=\"p\">]<\/span>\r\n\r\n<span class=\"n\">The<\/span> <span class=\"n\">name<\/span> <span class=\"s\">\"depends_on\"<\/span> <span class=\"n\">is<\/span> <span class=\"n\">reserved<\/span> <span class=\"k\">for<\/span> <span class=\"n\">use<\/span> <span class=\"n\">in<\/span> <span class=\"n\">a<\/span> <span class=\"n\">future<\/span> <span class=\"n\">version<\/span> <span class=\"n\">of<\/span> <span class=\"n\">Terraform<\/span><span class=\"o\">.<\/span>\r\n<\/code><\/pre>\n<p>\u5bf9\u4e8e\u4f7f\u7528Terraform\u4fdd\u7559\u5b57\uff0c\u4f60\u88ab\u8d23\u602a\u4e86\uff0c\u662f\u5417\uff1f\u90a3\u4e48\uff0c\u5982\u679c\u4f7f\u7528v0.13\u7248\u672c\uff0c\u4f1a\u600e\u4e48\u6837\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">$<\/span> <span class=\"n\">terraform<\/span> <span class=\"n\">version<\/span>\r\n<span class=\"n\">Terraform<\/span> <span class=\"n\">v0<\/span><span class=\"m\">.13.0<\/span><span class=\"o\">-<\/span><span class=\"n\">beta2<\/span>\r\n<span class=\"o\">+<\/span> <span class=\"n\">provider<\/span> <span class=\"n\">registry<\/span><span class=\"o\">.<\/span><span class=\"n\">terraform<\/span><span class=\"o\">.<\/span><span class=\"n\">io<\/span><span class=\"o\">\/<\/span><span class=\"n\">hashicorp<\/span><span class=\"o\">\/<\/span><span class=\"n\">aws<\/span> <span class=\"n\">v2<\/span><span class=\"m\">.67.0<\/span>\r\n<span class=\"err\">$<\/span> \r\n<span class=\"err\">$<\/span> \r\n<span class=\"err\">$<\/span> <span class=\"n\">terraform<\/span> <span class=\"n\">plan<\/span>\r\n<span class=\"n\">Refreshing<\/span> <span class=\"n\">Terraform<\/span> <span class=\"n\">state<\/span> <span class=\"n\">in<\/span><span class=\"o\">-<\/span><span class=\"n\">memory<\/span> <span class=\"n\">prior<\/span> <span class=\"n\">to<\/span> <span class=\"n\">plan<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">The<\/span> <span class=\"n\">refreshed<\/span> <span class=\"n\">state<\/span> <span class=\"n\">will<\/span> <span class=\"n\">be<\/span> <span class=\"n\">used<\/span> <span class=\"n\">to<\/span> <span class=\"n\">calculate<\/span> <span class=\"n\">this<\/span> <span class=\"n\">plan<\/span><span class=\"p\">,<\/span> <span class=\"n\">but<\/span> <span class=\"n\">will<\/span> <span class=\"n\">not<\/span> <span class=\"n\">be<\/span>\r\n<span class=\"n\">persisted<\/span> <span class=\"n\">to<\/span> <span class=\"n\">local<\/span> <span class=\"n\">or<\/span> <span class=\"n\">remote<\/span> <span class=\"n\">state<\/span> <span class=\"n\">storage<\/span><span class=\"o\">.<\/span>\r\n\r\n<span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_caller_identity<\/span><span class=\"o\">.<\/span><span class=\"n\">self<\/span><span class=\"o\">:<\/span> <span class=\"n\">Refreshing<\/span> <span class=\"n\">state<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">gengeral_policy<\/span><span class=\"o\">.<\/span><span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_policy_document<\/span><span class=\"o\">.<\/span><span class=\"n\">basic_policy<\/span><span class=\"o\">:<\/span> <span class=\"n\">Refreshing<\/span> <span class=\"n\">state<\/span><span class=\"o\">...<\/span>\r\n\r\n<span class=\"o\">------------------------------------------------------------------------<\/span>\r\n\r\n<span class=\"n\">An<\/span> <span class=\"n\">execution<\/span> <span class=\"n\">plan<\/span> <span class=\"n\">has<\/span> <span class=\"n\">been<\/span> <span class=\"n\">generated<\/span> <span class=\"n\">and<\/span> <span class=\"n\">is<\/span> <span class=\"n\">shown<\/span> <span class=\"n\">below<\/span><span class=\"o\">.<\/span>\r\n<span class=\"n\">Resource<\/span> <span class=\"n\">actions<\/span> <span class=\"n\">are<\/span> <span class=\"n\">indicated<\/span> <span class=\"n\">with<\/span> <span class=\"n\">the<\/span> <span class=\"n\">following<\/span> <span class=\"n\">symbols<\/span><span class=\"o\">:<\/span>\r\n  <span class=\"o\">+<\/span> <span class=\"n\">create<\/span>\r\n <span class=\"o\">&lt;=<\/span> <span class=\"n\">read<\/span> <span class=\"p\">(<\/span><span class=\"n\">data<\/span> <span class=\"n\">resources<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"n\">Terraform<\/span> <span class=\"n\">will<\/span> <span class=\"n\">perform<\/span> <span class=\"n\">the<\/span> <span class=\"n\">following<\/span> <span class=\"n\">actions<\/span><span class=\"o\">:<\/span>\r\n\r\n<span class=\"o\">=======================<\/span><span class=\"n\">\u7701\u7565<\/span><span class=\"o\">=======================<\/span>\r\n\r\n<span class=\"n\">Plan<\/span><span class=\"o\">:<\/span> <span class=\"m\">9<\/span> <span class=\"n\">to<\/span> <span class=\"n\">add<\/span><span class=\"p\">,<\/span> <span class=\"m\">0<\/span> <span class=\"n\">to<\/span> <span class=\"n\">change<\/span><span class=\"p\">,<\/span> <span class=\"m\">0<\/span> <span class=\"n\">to<\/span> <span class=\"n\">destroy<\/span><span class=\"o\">.<\/span>\r\n\r\n<span class=\"o\">------------------------------------------------------------------------<\/span>\r\n\r\n<span class=\"n\">Note<\/span><span class=\"o\">:<\/span> <span class=\"n\">You<\/span> <span class=\"n\">didn<\/span><span class=\"err\">'<\/span><span class=\"n\">t<\/span> <span class=\"n\">specify<\/span> <span class=\"n\">an<\/span> <span class=\"s\">\"-out\"<\/span> <span class=\"n\">parameter<\/span> <span class=\"n\">to<\/span> <span class=\"n\">save<\/span> <span class=\"n\">this<\/span> <span class=\"n\">plan<\/span><span class=\"p\">,<\/span> <span class=\"n\">so<\/span> <span class=\"n\">Terraform<\/span>\r\n<span class=\"n\">can<\/span><span class=\"err\">'<\/span><span class=\"n\">t<\/span> <span class=\"n\">guarantee<\/span> <span class=\"n\">that<\/span> <span class=\"n\">exactly<\/span> <span class=\"n\">these<\/span> <span class=\"n\">actions<\/span> <span class=\"n\">will<\/span> <span class=\"n\">be<\/span> <span class=\"n\">performed<\/span> <span class=\"k\">if<\/span>\r\n<span class=\"s\">\"terraform apply\"<\/span> <span class=\"n\">is<\/span> <span class=\"n\">subsequently<\/span> <span class=\"n\">run<\/span><span class=\"o\">.<\/span>\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u4e4b\u524d\u5728v0.12\u7248\u672c\u4e2d\u51fa\u73b0\u7684\u9519\u8bef\u5df2\u7ecf\u6d88\u5931\u4e86\uff0c\u770b\u8d77\u6765\u6ca1\u6709\u95ee\u9898\uff0c\u6240\u4ee5\u8ba9\u6211\u4eec\u5c1d\u8bd5\u6267\u884cterraform apply\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">$<\/span> <span class=\"n\">terraform<\/span> <span class=\"n\">apply<\/span> <span class=\"s\">\"plan.out\"<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">gengeral_policy<\/span><span class=\"o\">.<\/span><span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_policy_document<\/span><span class=\"o\">.<\/span><span class=\"n\">basic_policy<\/span><span class=\"o\">:<\/span> <span class=\"n\">Reading<\/span><span class=\"o\">...<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"m\">296661728<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">gengeral_policy<\/span><span class=\"o\">.<\/span><span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_policy_document<\/span><span class=\"o\">.<\/span><span class=\"n\">basic_policy<\/span><span class=\"o\">:<\/span> <span class=\"n\">Read<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">0<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"m\">296661728<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_group<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_group<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_group<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_group<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">gengeral_policy<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_policy<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_group<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_group<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">1<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">fugapiyo<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_group<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_group<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">1<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">hogehoge<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_user<\/span><span class=\"p\">[<\/span><span class=\"s\">\"demo02\"<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_user<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_user<\/span><span class=\"p\">[<\/span><span class=\"s\">\"demo01\"<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_user<\/span><span class=\"p\">[<\/span><span class=\"m\">0<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_user<\/span><span class=\"p\">[<\/span><span class=\"s\">\"demo01\"<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">2<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">fuga<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">gengeral_policy<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_policy<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">3<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">arn<\/span><span class=\"o\">:<\/span><span class=\"n\">aws<\/span><span class=\"o\">:<\/span><span class=\"n\">iam<\/span><span class=\"o\">::<\/span><span class=\"m\">881745222256<\/span><span class=\"o\">:<\/span><span class=\"n\">policy<\/span><span class=\"o\">\/<\/span><span class=\"n\">basicPolicy<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_group<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_group_policy_attachment<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"p\">[<\/span><span class=\"s\">\"default\"<\/span><span class=\"p\">]<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_group<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_group_policy_attachment<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"p\">[<\/span><span class=\"s\">\"default\"<\/span><span class=\"p\">]<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creating<\/span><span class=\"o\">...<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_user<\/span><span class=\"p\">[<\/span><span class=\"m\">0<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">2<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">hoge<\/span><span class=\"o\">-<\/span><span class=\"m\">01<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_user<\/span><span class=\"p\">[<\/span><span class=\"s\">\"demo02\"<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">2<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">piyo<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_user<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_user<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">2<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">hoge<\/span><span class=\"o\">-<\/span><span class=\"m\">02<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">count_group<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_group_policy_attachment<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"p\">[<\/span><span class=\"s\">\"default\"<\/span><span class=\"p\">]<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">3<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">hogehoge<\/span><span class=\"o\">-<\/span><span class=\"m\">20200620131313923200000001<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">module<\/span><span class=\"o\">.<\/span><span class=\"n\">for_each_group<\/span><span class=\"o\">.<\/span><span class=\"n\">aws_iam_group_policy_attachment<\/span><span class=\"o\">.<\/span><span class=\"k\">default<\/span><span class=\"p\">[<\/span><span class=\"s\">\"default\"<\/span><span class=\"p\">]<\/span><span class=\"o\">:<\/span> <span class=\"n\">Creation<\/span> <span class=\"n\">complete<\/span> <span class=\"n\">after<\/span> <span class=\"m\">3<\/span><span class=\"n\">s<\/span> <span class=\"p\">[<\/span><span class=\"n\">id<\/span><span class=\"o\">=<\/span><span class=\"n\">fugapiyo<\/span><span class=\"o\">-<\/span><span class=\"m\">20200620131313943400000002<\/span><span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u770b\u5230\u7ec4\u5148\u884c\u521b\u5efa\uff0c\u7136\u540e\u7528\u6237\u521b\u5efa\u3002<br \/>\n\u8fd9\u6837\uff0c\u5373\u4f7f\u5728\u6a21\u5757\u4e2d\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u50cfcount\u548cfor_each\u8fd9\u6837\u7684\u5faa\u73af\u5904\u7406\uff0c\u5e76\u4e14\u53ef\u4ee5\u4f7f\u7528depends_on\u6765\u89e3\u51b3\u4f9d\u8d56\u5173\u7cfb\u3002<\/p>\n<h1>\u6211\u7684\u611f\u53d7<\/h1>\n<p>\u6211\u89c9\u5f97\u6ca1\u6709\u7279\u522b\u56f0\u96be\u7684\u5730\u65b9\uff0c\u53ea\u9700\u8981\u4e86\u89e3\u4e00\u4e0b\u6a21\u5757\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e86\u5462\uff5e<br \/>\n\u4f5c\u4e3a\u4e00\u4e2a\u9700\u8981\u6ce8\u610f\u7684\u7ec6\u8282\u70b9\uff0c\u4f7f\u7528\u8f93\u51fa\u65f6\u7684\u5199\u6cd5\u53ef\u80fd\u9700\u8981\u7a0d\u5fae\u6ce8\u610f\u4e00\u4e0b\u3002<br \/>\n\u4e2a\u4eba\u6765\u8bf4\uff0c\u7531\u4e8e\u793e\u533a\u63d0\u4f9b\u5546\u53ef\u4ee5\u89e3\u6790\u540d\u79f0\uff0c\u6240\u4ee5\u6211\u7684\u5f00\u53d1\u4f53\u9a8c\u5927\u5927\u63d0\u9ad8\u4e86\u3002<br \/>\n\u4e0d\u8981\u8fc7\u5ea6\u4f7f\u7528\uff0c\u5426\u5219\u53ef\u8bfb\u6027\u4f1a\u4e0b\u964d\uff0c\u6240\u4ee5\u9700\u8981\u5728\u4f7f\u7528\u7684\u8fc7\u7a0b\u4e2d\u52a0\u4ee5\u659f\u914c\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u603b\u7ed3\u4e00\u4e0b \u6211\u8ba1\u5212\u5728\u672c\u6708\u5c1d\u8bd5\u73a9\u4e00\u4e0bTerraoform\u7684v0.13.0-beta\u7248\u672c\u3002\u6211\u5c06\u4f1a\u8fdb\u884c\u4e00\u4e9b\u5b9e\u9a8c\uff0c\u6bd4\u5982\u63a2 [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-48609","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>\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011 - 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\/\u6211\u5728terraform\u7684v0-13-0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010terraform\u3011\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011\" \/>\n<meta property=\"og:description\" content=\"\u603b\u7ed3\u4e00\u4e0b \u6211\u8ba1\u5212\u5728\u672c\u6708\u5c1d\u8bd5\u73a9\u4e00\u4e0bTerraoform\u7684v0.13.0-beta\u7248\u672c\u3002\u6211\u5c06\u4f1a\u8fdb\u884c\u4e00\u4e9b\u5b9e\u9a8c\uff0c\u6bd4\u5982\u63a2 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5728terraform\u7684v0-13-0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010terraform\u3011\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-22T12:24:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T14:02:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8640913a08637a6bbdaa\/24-0.png\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 \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\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/\",\"name\":\"\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-12-22T12:24:11+00:00\",\"dateModified\":\"2024-04-30T14:02:20+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011\"}]},{\"@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\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011 - 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\/\u6211\u5728terraform\u7684v0-13-0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010terraform\u3011\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011","og_description":"\u603b\u7ed3\u4e00\u4e0b \u6211\u8ba1\u5212\u5728\u672c\u6708\u5c1d\u8bd5\u73a9\u4e00\u4e0bTerraoform\u7684v0.13.0-beta\u7248\u672c\u3002\u6211\u5c06\u4f1a\u8fdb\u884c\u4e00\u4e9b\u5b9e\u9a8c\uff0c\u6bd4\u5982\u63a2 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u5728terraform\u7684v0-13-0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010terraform\u3011\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-12-22T12:24:11+00:00","article_modified_time":"2024-04-30T14:02:20+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8640913a08637a6bbdaa\/24-0.png"}],"author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"8 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/","name":"\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-12-22T12:24:11+00:00","dateModified":"2024-04-30T14:02:20+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6211\u5728Terraform\u7684v0.13.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u4e00\u4e9b\u8bd5\u9a8c\u3010Terraform\u3011"}]},{"@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\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e5%9c%a8terraform%e7%9a%84v0-13-0%e7%89%88%e6%9c%ac%e4%b8%8a%e8%bf%9b%e8%a1%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e8%af%95%e9%aa%8c%e3%80%90terraform%e3%80%91%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\/48609","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=48609"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48609\/revisions"}],"predecessor-version":[{"id":94558,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48609\/revisions\/94558"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=48609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=48609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=48609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}