小编Ale*_*der的帖子

在 terraform 中为应用程序服务创建自定义主机名绑定失败,并显示找不到名称的证书

我正在尝试为 terraform 中的应用程序服务创建自定义主机名绑定,并且我正在使用以下配置

resource "azurerm_app_service_custom_hostname_binding" "webapp_fqdn" {
  for_each = local.apsvc_fqdns_locations

  hostname            = each.value.fqdn
  app_service_name    = azurerm_app_service.webapp[each.value.apsvc_location_key].name
  resource_group_name = var.regional_web_rg[each.value.location].name

  ssl_state  = "SniEnabled"
  thumbprint = azurerm_app_service_certificate.cert[each.value.certificate_location_key].thumbprint
}

resource "azurerm_app_service_certificate" "cert" {
  for_each = local.certificates_locations

  name                = each.value.certificate_name
  resource_group_name = var.regional_web_rg[each.value.location].name
  location            = each.value.location
  key_vault_secret_id = data.azurerm_key_vault_secret.cert[each.value.certificate_name].id
}
Run Code Online (Sandbox Code Playgroud)

代码失败(偶尔),并显示以下错误“找不到名称为 6CAC9XXXX 的证书”。出现错误时,我可以进入门户并看到以下内容 在此输入图像描述 如果我通过运行以下命令通过 Az PowerShell 模块创建这些资源

Set-AzWebApp -Name app508-resc-aa1-web-centralus-showcase-apsvc -ResourceGroupName app508-resc-aa1-web-centralus -HostNames @("showcase-aa1.np.dayforcehcm.com")
New-AzWebAppSSLBinding  -ResourceGroupName app508-resc-aa1-web-centralus  -WebAppName app508-resc-aa1-web-centralus-showcase-apsvc -Thumbprint "6CAC9XXXX" -Name "showcase-aa1.np.dayforcehcm.com"
Run Code Online (Sandbox Code Playgroud)

它工作得很好并且资源被正确创建。看起来 terraform 尝试使用一个资源 azurerm_app_service_custom_hostname_binding 创建主机名和自定义主机名绑定,那么这是我面临的某种竞争条件还是我使用了错误的资源?

terraform azure-web-app-service

5
推荐指数
1
解决办法
1421
查看次数

ConvertTo-Json 如何保持哈希表字段的顺序

我正在运行以下 PowerShell 代码,我需要保持原始哈希表键的顺序。

function New-GetServiceConnectionTask( $serviceConnectionId)
{
    @{
        environment      = @{ }
        taskId           = '0a9fdc5e-3f3a-4d3d-9f63-a4f007f9a1fe'
        version          = "1.*"
        name             = 'Get Service Endpoint Credentials'
        refName          = ''
        enabled          = $true
        alwaysRun        = $false
        continueOnError  = $false
        timeoutInMinutes = 0
        definitionType   = 'task'
        overrideInputs   = @{ }
        condition        = 'succeeded()'
        inputs           = @{
            connectedServiceNameARM = $serviceConnectionId
        }
    }
}
New-GetServiceConnectionTask xxx | ConvertTo-Json -Depth 99 
Run Code Online (Sandbox Code Playgroud)

函数返回

{
    "version": "1.*",
    "refName": "",
    "definitionType": "task",
    "overrideInputs": {},
    "name": "Get Service Endpoint Credentials",
    "environment": …
Run Code Online (Sandbox Code Playgroud)

powershell hashtable

2
推荐指数
1
解决办法
684
查看次数

容器化.net core应用程序无法连接到容器化mongo db

我正在本地计算机上运行 .net core 应用程序。\n以下是连接到 mongo db 的代码

\n
public BookService(IBookstoreDatabaseSettings settings)\n        {\n            var client = new MongoClient("mongodb://admin:password@localhost:27017");\n            var database = client.GetDatabase("BookstoreDb");\n\n            _books = database.GetCollection<Book>(settings.BooksCollectionName);\n        }\n
Run Code Online (Sandbox Code Playgroud)\n

另外我正在运行以下 docker compose 文件

\n
version: '3'\nservices: \n        mongodb:\n        image: mongo\n        ports:\n            - 27017:27017\n        environment:\n            - MONGO_INITDB_ROOT_USERNAME=admin\n            - MONGO_INITDB_ROOT_PASSWORD=password\n    mongo-express:\n        image: mongo-express\n        ports:\n            - 8081:8081\n        environment:\n            - ME_CONFIG_MONGODB_ADMINUSERNAME=admin\n            - ME_CONFIG_MONGODB_ADMINPASSWORD=password\n            - ME_CONFIG_MONGODB_SERVER=mongodb\n
Run Code Online (Sandbox Code Playgroud)\n

当我使用 dotnet run 运行应用程序,然后请求 http://localhost:5001/api/books 时。一切都工作得很好,API 能够访问 mongo 数据库。

\n

接下来,我使用标准 .net core Docker 文件对我的应用程序进行容器化

\n
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env\nWORKDIR /app\n\n# …
Run Code Online (Sandbox Code Playgroud)

c# mongodb docker .net-core

2
推荐指数
1
解决办法
1636
查看次数