通过Terraform部署用于容器(Windows容器)的Web应用程序时,访问被拒绝

时间:2019-10-17 12:53:14

标签: docker azure-devops terraform

我目前正在尝试通过Terraform将自定义Windows Docker容器部署到Azure中用于容器的Web应用程序中。我的代码如下:

resource "azurerm_app_service_plan" "container_service_plan" {
  name                = "${var.builderName}"
  location            = "${azurerm_resource_group.rg.location}"
  resource_group_name = "${azurerm_resource_group.rg.name}"
  kind                = "xenon"
  is_xenon            = true

  sku {
    tier = "PremiumContainer"
    size = "PC3"
  }
}

resource "azurerm_app_service" "container_service" {
  name                = "${var.builderName}"
  location            = "${azurerm_resource_group.rg.location}"
  resource_group_name = "${azurerm_resource_group.rg.name}"
  app_service_plan_id = "${azurerm_app_service_plan.container_service_plan.id}"
  tags = "${local.commonTags}"   

  app_settings = {
    "DOCKER_REGISTRY_SERVER_URL" = "https://privateazurecontainerregistry.azurecr.io",
    "DOCKER_REGISTRY_SERVER_USERNAME" = "privateazurecontainerregistry_username",
    "DOCKER_REGISTRY_SERVER_PASSWORD" = "privateazurecontainerregistry_pw",
    "CONTAINER_MEMORY:" = 8000
  }

  site_config {
    windows_fx_version = "DOCKER|privateazurecontainerregistry.azurecr.io/app.1901:latest"
  }


}

我得到的错误如下:

  • 错误:web.AppsClient#CreateOrUpdate:发送请求失败:StatusCode = 400-原始错误:Code =“ BadRequest” Message =“参数WindowsFxVersion具有无效值。找不到指定的图像名称和标记 组合。对于私有注册表,请确保在映像名称前添加服务器主机名。 https://mcr.microsoft.com“详细信息= [{”消息“:”参数WindowsFxVersion具有无效值。找不到 他指定了图像名称和标签组合。对于私有注册表,请确保在映像名称前添加服务器主机名。 https://mcr.microsoft.com“},{” Code“:” BadRequest“},{” ErrorEntity“:{” Code“:” BadRequest“ ,“ ExtendedCode”:“ 01007”,“ Message”:“参数WindowsFxVersion的值无效。找不到指定的图像名称和标签组合。对于私有注册表,请确保您在图像名称前添加了th 服务器主机名。 https://mcr.microsoft.com“,” MessageTemplate“:”参数{0}的值无效。“,” Parameters“:[” WindowsFxVersion“]}}]]

并且:

  • 错误:创建应用程序服务“ rdbuilder02”(资源组“ rdbuilder02”)时出错:web.AppsClient#CreateOrUpdate:发送请求失败:StatusCode = 401-原始错误:Code =“ Unauthorized” Message =“访问被拒绝。不认证 Orized。 Latest“ Details = [{” Message“:”访问被拒绝。未经授权。 Latest“},{” Code“:”未经授权“},{” ErrorEntity“:{” Code“:”未经授权“,” ExtendedCode“:” 01001“,” Message“:”访问被拒绝。未经授权。最新”,“ Messag eTemplate“:”访问被拒绝。“,”参数“:[]}}]

要点:

  • 该代码段是一个更大脚本的一部分,所有脚本都可以毫无问题地部署
  • 可以通过AzureRM Powershell和控制台部署Web应用程序Windows容器
  • 我可以成功部署公共容器
  • 我已经在this example之后对代码进行了建模

0 个答案:

没有答案