{"id":48727,"date":"2023-12-27T18:04:01","date_gmt":"2023-05-03T13:24:20","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/"},"modified":"2024-05-04T15:37:33","modified_gmt":"2024-05-04T07:37:33","slug":"%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/","title":{"rendered":"\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure."},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<h3>1-1 \u95ee\u5019<\/h3>\n<p>\u521d\u6b21\u89c1\u9762\uff0c\u6211\u662f\u4e95\u6751\u3002<br \/>\n\u6211\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\u521b\u5efa\u4e86Web Apps\u3002<br \/>\n\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u4ecb\u7ecd\u4e86\u5982\u4f55\u521b\u5efa\u670d\u52a1\u4e3b\u4f53\u4ee5\u53caTerraform\u7684\u8be6\u7ec6\u63cf\u8ff0\uff0c\u5e76\u7528\u4e8e\u8bb0\u5f55\u7b14\u8bb0\u3002<\/p>\n<h3>1. \u8bfb\u8005\u76ee\u6807<br \/>\n2. \u9488\u5bf9\u8bfb\u8005<\/h3>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Azure\u306b\u8208\u5473\u304c\u3042\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Terrafom\u306b\u8208\u5473\u304c\u3042\u308b<\/ul>\n<h3>1-3 \u521b\u5efa\u6210\u679c\u7269\u7684\u524d\u63d0\u6761\u4ef6<\/h3>\n<p>Azure\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u3042\u308b\u3002<\/p>\n<p>Azure CLI\u3068Terraform\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u3002<br \/>\n\u203bAzure CLI\u3068Terraform\u306e\u521d\u671f\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/p>\n<h3>1-4 \u9879\u6210\u679c<\/h3>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Terraform\u7528\u306e\u30b5\u30fc\u30d3\u30b9\u30d7\u30ea\u30f3\u30b7\u30d1\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4e0b\u56f3\u306e\u3068\u304a\u308a\u30ea\u30bd\u30fc\u30b9\u30b0\u30eb\u30fc\u30d7\u3001Azure App Service Plans\u3001Web Apps\u3092\u4f5c\u6210\u3002(Free\u30d7\u30e9\u30f3\u306eAzure App Service Plans\u3067\u3059\u3002)<\/ul>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d86dd913a08637a6be501\/9-0.png\" alt=\"SystemConfiguration.png\" \/><\/div>\n<h3>1-5 \u91cd\u5851\u76ee\u5f55\u7ed3\u6784<\/h3>\n<pre class=\"post-pre\"><code>.\r\n\u251c\u2500\u2500 env\r\n\u2502   \u2514\u2500\u2500 dev\r\n\u2502       \u251c\u2500\u2500 main.tf\r\n\u2502       \u251c\u2500\u2500 outputs.tf\r\n\u2502       \u251c\u2500\u2500 provider.tf\r\n\u2502       \u251c\u2500\u2500 terraform.tfvars\r\n\u2502       \u2514\u2500\u2500 variable.tf\r\n\u2514\u2500\u2500 modules\r\n    \u251c\u2500\u2500 app\r\n    \u2502   \u251c\u2500\u2500 main.tf\r\n    \u2502   \u251c\u2500\u2500 outputs.tf\r\n    \u2502   \u2514\u2500\u2500 variables.tf\r\n    \u251c\u2500\u2500 asp\r\n    \u2502   \u251c\u2500\u2500 main.tf\r\n    \u2502   \u251c\u2500\u2500 outputs.tf\r\n    \u2502   \u2514\u2500\u2500 variables.tf\r\n    \u2514\u2500\u2500 rg\r\n        \u251c\u2500\u2500 main.tf\r\n        \u251c\u2500\u2500 outputs.tf\r\n        \u2514\u2500\u2500 variables.tf\r\n<\/code><\/pre>\n<p>\u6e90\u4ee3\u7801\u53ef\u4ee5\u5728GitHub\u4e0a\u627e\u5230\u3002<br \/>\nhttps:\/\/github.com\/hawk0722\/Azure_Terraform_03_webapp<\/p>\n<h1>2. \u5efa\u7acb<\/h1>\n<h3>\u521b\u5efa2-1\u670d\u52a1\u4e3b\u4f53\u3002<\/h3>\n<p>\u6211\u5c06\u521b\u5efa\u540d\u4e3a&#8221;sp-terra&#8221;\u7684\u670d\u52a1\u4e3b\u4f53\u3002<br \/>\n\u9002\u7528\u8303\u56f4\u662f\u8ba2\u9605\uff0c\u6743\u9650\u5c06\u88ab\u8bbe\u5b9a\u4e3a\u5171\u540c\u521b\u5efa\u8005\u3002<\/p>\n<p>\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u4ee5\u786e\u8ba4\u8ba2\u9605ID\u3002<\/p>\n<pre class=\"post-pre\"><code>az account show\r\n<\/code><\/pre>\n<p>\u8bb0\u5f55\u4e0b\u8f93\u51fa\u7ed3\u679c\u7684\u8ba2\u9605ID\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">{<\/span>\r\n  <span class=\"s2\">\"environmentName\"<\/span>: \u7701\u7565,\r\n  <span class=\"s2\">\"homeTenantId\"<\/span>: \u7701\u7565,\r\n  <span class=\"s2\">\"id\"<\/span>: <span class=\"s2\">\"&lt;azure_subscription_id&gt;\"<\/span>,\r\n  <span class=\"s2\">\"isDefault\"<\/span>: \u7701\u7565,\r\n  <span class=\"s2\">\"managedByTenants\"<\/span>: <span class=\"o\">[]<\/span>,\r\n  <span class=\"s2\">\"name\"<\/span>: \u7701\u7565,\r\n  <span class=\"s2\">\"state\"<\/span>: \u7701\u7565,\r\n  <span class=\"s2\">\"tenantId\"<\/span>: \u7701\u7565,\r\n  <span class=\"s2\">\"user\"<\/span>: <span class=\"o\">{<\/span>\r\n    <span class=\"s2\">\"name\"<\/span>: \u7701\u7565,\r\n    <span class=\"s2\">\"type\"<\/span>: \u7701\u7565\r\n  <span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<p>\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u521b\u5efa\u670d\u52a1\u4e3b\u4f53\u3002<br \/>\n\u203baz ad sp create-for-rbac\u53c2\u8003\u7f51\u5740<\/p>\n<pre class=\"post-pre\"><code>az ad sp create-for-rbac <span class=\"nt\">--role<\/span> Contributor <span class=\"nt\">--scopes<\/span> <span class=\"s2\">\"\/subscriptions\/&lt;azure_subscription_id&gt;\"<\/span> <span class=\"nt\">--name<\/span> <span class=\"s2\">\"sp-terra\"<\/span>\r\n<\/code><\/pre>\n<p>\u8bb0\u4f4f\u5e94\u7528\u7a0b\u5e8f\uff08\u5ba2\u6237\u7aef\uff09\u7684\u8f93\u51fa\u7ed3\u679cID\u3001\u76ee\u5f55\uff08\u79df\u6237\uff09ID\u548c\u5bc6\u7801\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">{<\/span>\r\n  <span class=\"s2\">\"appId\"<\/span>: <span class=\"s2\">\"&lt;azure_subscription_tenant_id&gt;\"<\/span>,\r\n  <span class=\"s2\">\"displayName\"<\/span>: <span class=\"s2\">\"sp-terra\"<\/span>,\r\n  <span class=\"s2\">\"password\"<\/span>: <span class=\"s2\">\"&lt;service_principal_password&gt;\"<\/span>,\r\n  <span class=\"s2\">\"tenant\"<\/span>: <span class=\"s2\">\"&lt;service_principal_appid&gt;\"<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u5c06\u4e0a\u8ff0\u670d\u52a1\u4e3b\u4f53\u53cd\u6620\u5230Terraform\u4e2d\uff0c\u9700\u8981\u4e0b\u8f7d\u6240\u9700\u7684\u8d44\u6e90\u3002<\/p>\n<pre class=\"post-pre\"><code>mkidir work\r\n<span class=\"nb\">cd <\/span>work\r\ngit clone https:\/\/github.com\/hawk0722\/Azure_Terraform_03_webapp.git\r\n<\/code><\/pre>\n<p>\u51c6\u5907\u5de5\u4f5c\u5df2\u7ecf\u5b8c\u6210\u3002<\/p>\n<h3>\u4fee\u6b63 terraform.tfvars \u7684 2-2 \u9879\u3002<\/h3>\n<p>\u672c\u8cc7\u6599\u53ea\u4fee\u6539\u201cAzure_Terraform_03_webapp\/env\/dev\/terraform.tfvars\u201d\u6587\u4ef6\u3002<br \/>\n\u6839\u636e\u7b2c2-1\u6b65\u5f97\u5230\u7684\u6bcf\u4e2aID\u548c\u6240\u9700\u53d8\u91cf\u8fdb\u884c\u9002\u5f53\u4fee\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\"># azure service principal info<\/span>\r\n<span class=\"nx\">subscription_id<\/span> <span class=\"err\">=<\/span> <span class=\"s2\">\"&lt;azure_subscription_id&gt;\"<\/span>\r\n<span class=\"nx\">tenant_id<\/span>       <span class=\"err\">=<\/span> <span class=\"s2\">\"&lt;azure_subscription_tenant_id&gt;\"<\/span>\r\n<span class=\"nx\">client_id<\/span>       <span class=\"err\">=<\/span> <span class=\"s2\">\"&lt;service_principal_appid&gt;\"<\/span>\r\n<span class=\"nx\">client_secret<\/span>   <span class=\"err\">=<\/span> <span class=\"s2\">\"&lt;service_principal_password&gt;\"<\/span>\r\n\r\n<span class=\"c1\"># common<\/span>\r\n<span class=\"nx\">location<\/span> <span class=\"err\">=<\/span> <span class=\"s2\">\"japaneast\"<\/span>\r\n<span class=\"nx\">env<\/span>      <span class=\"err\">=<\/span> <span class=\"s2\">\"dev\"<\/span>\r\n<span class=\"nx\">code<\/span>     <span class=\"err\">=<\/span> <span class=\"s2\">\"hawk\"<\/span>\r\n\r\n<span class=\"c1\"># App Service Plan<\/span>\r\n<span class=\"nx\">asp_os_type<\/span>  <span class=\"err\">=<\/span> <span class=\"s2\">\"Linux\"<\/span>\r\n<span class=\"nx\">asp_sku_name<\/span> <span class=\"err\">=<\/span> <span class=\"s2\">\"F1\"<\/span>\r\n\r\n<span class=\"c1\"># App Service<\/span>\r\n<span class=\"nx\">python_version<\/span> <span class=\"err\">=<\/span> <span class=\"s2\">\"3.9\"<\/span>\r\n<\/code><\/pre>\n<h3>\u90e8\u7f722-3\u4e2aAzure\u8d44\u6e90\u3002<\/h3>\n<p>\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u4ee5\u521b\u5efaAzure\u8d44\u6e90\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># \u30eb\u30fc\u30c8\u30e2\u30b8\u30e5\u30fc\u30eb\u3078\u79fb\u52d5<\/span>\r\n<span class=\"nb\">cd <\/span>Azure_Terraform_03_webapp\/env\/dev\r\n\r\n<span class=\"c\"># \u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3092\u521d\u671f\u5316\u3059\u308b<\/span>\r\nterraform init\r\n\r\n<span class=\"c\"># \u5b9f\u884c\u8a08\u753b\u306e\u53c2\u7167<\/span>\r\nterraform plan\r\n\r\n<span class=\"c\"># \u30ea\u30bd\u30fc\u30b9\u306e\u30c7\u30d7\u30ed\u30a4<\/span>\r\nterraform apply\r\n\r\n<\/code><\/pre>\n<h3>\u786e\u8ba4\u884c\u52a82\u81f34<\/h3>\n<p>\u6211\u5011\u5c07\u78ba\u8a8d\u5df2\u90e8\u7f72\u7684 Web Apps \u7684\u904b\u4f5c\u3002<br \/>\n\u5c07\u4ee5\u4e0b\u7684 URL \u8907\u88fd\u5230\u672c\u5730\u7aef\u7684\u700f\u89bd\u5668\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>https:\/\/&lt;app_name&gt;.azurewebsites.net\r\n\u203b&lt;app_name&gt;\u306fWeb Apps\u30b5\u30fc\u30d3\u30b9\u306e\u540d\u524d\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d86dd913a08637a6be501\/36-0.png\" alt=\"webapp.png\" \/><\/div>\n<h1>3. \u8865\u5145<\/h1>\n<h3>\u5173\u4e8e3-1\u7684\u670d\u52a1\u4e3b\u4f53<\/h3>\n<p>\u6309\u7167\u4e0b\u56fe\u6240\u793a\uff0cAzure\u91c7\u7528\u4e86\u5c42\u7ea7\u7ed3\u6784\u3002\u5728\u8ba2\u9605\u5c42\u4e0b\u521b\u5efa\u5e76\u6388\u4e88Terraform\u6240\u9700\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u5c31\u53ef\u4ee5\u521b\u5efa\u4e0b\u5c5e\u7684\u8d44\u6e90\u7ec4\u548cAzure\u8d44\u6e90\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d86dd913a08637a6be501\/40-0.png\" alt=\"layer.png\" \/><\/div>\n<p>Azure \u8ba2\u9605\uff0c\u7ba1\u7406\u7ec4\uff0c\u8d44\u6e90\u6982\u8ff0<\/p>\n<p>\u60a8\u53ef\u4ee5\u5728Azure\u95e8\u6237\u4e2d\u901a\u8fc7\u4ece\u201cAzure Active Directory\u201d\u5230\u201c\u5e94\u7528\u6ce8\u518c\u201d\u6765\u67e5\u770b\u670d\u52a1\u4e3b\u4f53\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d86dd913a08637a6be501\/43-0.png\" alt=\"app-reg.png\" \/><\/div>\n<h3>3-2 \u73af\u5883\/\u5f00\u53d1\/\u8f93\u51fa.tf<\/h3>\n<p>\u5728\u8fd9\u4e2a\u6587\u4ef6\u4e2d\uff0c\u6211\u4eec\u5c06\u63cf\u8ff0\u60f3\u8981\u5728\u7ec8\u7aef\u4e0a\u8f93\u51fa\u7684\u5185\u5bb9\u3002\u672c\u6b21\u6211\u4eec\u5c06\u8f93\u51fa\u90e8\u7f72\u7684 Azure \u670d\u52a1\u7684\u540d\u79f0\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\"># Output to terminal screen.<\/span>\r\n<span class=\"k\">output<\/span> <span class=\"s2\">\"rg_name\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">value<\/span> <span class=\"p\">=<\/span> <span class=\"k\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">rg<\/span><span class=\"p\">.<\/span><span class=\"nx\">rg_name<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">output<\/span> <span class=\"s2\">\"app_name\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">value<\/span> <span class=\"p\">=<\/span> <span class=\"k\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nx\">app_name<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">output<\/span> <span class=\"s2\">\"asp_name\"<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">value<\/span> <span class=\"p\">=<\/span> <span class=\"k\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">asp<\/span><span class=\"p\">.<\/span><span class=\"nx\">asp_name<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"c\"># \u30ea\u30bd\u30fc\u30b9\u306e\u30c7\u30d7\u30ed\u30a4<\/span>\r\nterraform apply\r\n\r\n\uff5e \u7701\u7565 \uff5e\r\n\r\nApply <span class=\"nb\">complete<\/span><span class=\"o\">!<\/span> Resources: 3 added, 0 changed, 0 destroyed.\r\n\r\nOutputs:\r\n\r\napp_name <span class=\"o\">=<\/span> <span class=\"s2\">\"app-dev-hawk\"<\/span>\r\nasp_name <span class=\"o\">=<\/span> <span class=\"s2\">\"asp-dev-hawk\"<\/span>\r\nrg_name <span class=\"o\">=<\/span> <span class=\"s2\">\"rg-dev-hawk\"<\/span>\r\n<\/code><\/pre>\n<h3>\u6709\u5173\u6bcf\u4e2a\u6587\u4ef6\u4e2d\u7684\u53d8\u91cf\u4f20\u9012\u76843-3\u7684\u95ee\u9898\u3002<\/h3>\n<p>\u5728\u6211\u4e4b\u524d\u53d1\u5e03\u7684\u6587\u7ae0\uff08\u6216\u8005\u8bf4\u662f\u90a3\u7bc7\u6587\u7ae0\u76f8\u5173\u7684\u53c2\u8003\u6587\u7ae0\uff09\u4e2d\u6709\u63d0\u5230\u3002<\/p>\n<h1>4. \u7ed3\u675f\u65f6<\/h1>\n<p>\u975e\u5e38\u611f\u8c22\u60a8\u9605\u8bfb\u672c\u7bc7\u6587\u7ae0\u76f4\u5230\u6700\u540e\u3002<br \/>\n\u6700\u8fd1\u6211\u5728GitHub\u4e0a\u5206\u4eab\u4e86\u6211\u81ea\u5df1\u521b\u5efa\u7684\u6210\u679c\u7269\u3002\u539f\u56e0\u662f\u6211\u53c2\u4e0e\u7684\u9879\u76ee\u5728GitLab\u4e0a\u8fdb\u884c\u6587\u4ef6\u7248\u672c\u7ba1\u7406\u3002\u4ee5\u524d\u6211\u6ca1\u6709\u63a5\u89e6\u8fc7Git\uff0c\u4f46\u662f\u56e0\u4e3a\u9879\u76ee\u4e2d\u6709\u4e00\u4f4d\u5bf9Git\u5f88\u719f\u6089\u7684\u6210\u5458\uff0c\u6240\u4ee5\u6211\u7684\u5de5\u4f5c\u5e76\u6ca1\u6709\u53d7\u5230\u592a\u5927\u5f71\u54cd\u3002\u73b0\u5728Git\u5df2\u6210\u4e3a\u5fc5\u5907\u6280\u80fd\uff0c\u6240\u4ee5\u6211\u4e2a\u4eba\u4f1a\u5229\u7528\u4e2a\u4eba\u65f6\u95f4\u8fdb\u884c\u7ec3\u4e60\u3002<\/p>\n<p>\u5728\u4fee\u590d\u6210\u679c\u7269\u65f6\uff0c\u521b\u5efa\u4e00\u4e2a\u5206\u652f\u3001\u4fee\u590d\u4ee3\u7801\u3001\u63a8\u9001\u5e76\u5408\u5e76\uff0c\u8fd9\u771f\u662f\u4e00\u4ef6\u6709\u8da3\u7684\u4e8b\u60c5\u3002<\/p>\n<h1>5. \u53c2\u8003\u6587\u732e<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">az ad sp create-for-rbac<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Azure Terraform error: Service returned an error. Status= when creating an Azure Web App<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">terraform-provider-azurerm\/examples\/app-service\/linux-basic\/main.tf<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">azurerm_linux_web_app<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 1-1 \u95ee\u5019 \u521d\u6b21\u89c1\u9762\uff0c\u6211\u662f\u4e95\u6751\u3002 \u6211\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\u521b\u5efa\u4e86Web Apps\u3002 \u8fd9\u7bc7\u6587\u7ae0 [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-48727","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>\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure. - 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\/\u4f7f\u7528terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaweb\u5e94\u7528\u7a0b\u5e8fazure\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure.\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 1-1 \u95ee\u5019 \u521d\u6b21\u89c1\u9762\uff0c\u6211\u662f\u4e95\u6751\u3002 \u6211\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\u521b\u5efa\u4e86Web Apps\u3002 \u8fd9\u7bc7\u6587\u7ae0 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaweb\u5e94\u7528\u7a0b\u5e8fazure\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-03T13:24:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T07:37:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d86dd913a08637a6be501\/9-0.png\" \/>\n<meta name=\"author\" content=\"\u9038, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u9038, \u79d1\" \/>\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\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/\",\"name\":\"\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure. - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-05-03T13:24:20+00:00\",\"dateModified\":\"2024-05-04T07:37:33+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure.\"}]},{\"@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\/85c1dae56e6ea1e695c73d33c684d487\",\"name\":\"\u9038, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"caption\":\"\u9038, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure. - 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\/\u4f7f\u7528terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaweb\u5e94\u7528\u7a0b\u5e8fazure\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure.","og_description":"\u9996\u5148 1-1 \u95ee\u5019 \u521d\u6b21\u89c1\u9762\uff0c\u6211\u662f\u4e95\u6751\u3002 \u6211\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\u521b\u5efa\u4e86Web Apps\u3002 \u8fd9\u7bc7\u6587\u7ae0 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaweb\u5e94\u7528\u7a0b\u5e8fazure\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-05-03T13:24:20+00:00","article_modified_time":"2024-05-04T07:37:33+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d86dd913a08637a6be501\/9-0.png"}],"author":"\u9038, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u9038, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/","name":"\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure. - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-05-03T13:24:20+00:00","dateModified":"2024-05-04T07:37:33+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Terraform\u7684\u670d\u52a1\u4e3b\u4f53\uff0c\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8fAzure."}]},{"@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\/85c1dae56e6ea1e695c73d33c684d487","name":"\u9038, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","caption":"\u9038, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8terraform%e7%9a%84%e6%9c%8d%e5%8a%a1%e4%b8%bb%e4%bd%93%ef%bc%8c%e5%88%9b%e5%bb%baweb%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8fazure\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48727","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\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=48727"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48727\/revisions"}],"predecessor-version":[{"id":99185,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/48727\/revisions\/99185"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=48727"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=48727"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=48727"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}