Azure CLI — Bash скрипт для настройки пользовательского домена управления API

#bash #azure-cli

#bash #azure-cli

Вопрос:

Я пытаюсь настроить пользовательский домен в управлении api с помощью скрипта bash. Я знаю, что это можно сделать с помощью powershell

 # Upload the custom ssl certificate to be applied to Proxy endpoint / Api Gateway endpoint
$proxyCertUploadResult = Import-AzApiManagementHostnameCertificate -Name $apimServiceName - 
ResourceGroupName $resourceGroupName -HostnameType "Proxy" -PfxPath $proxyCertificatePath - 
PfxPassword $proxyCertificatePassword

# Upload the custom ssl certificate to be applied to Portal endpoint
$portalCertUploadResult = Import-AzApiManagementHostnameCertificate -Name $apimServiceName - 
ResourceGroupName $resourceGroupName -HostnameType "Portal" -PfxPath $portalCertificatePath - 
PfxPassword $portalCertificatePassword

# Create the HostnameConfiguration object for Portal endpoint
$PortalHostnameConf = New-AzApiManagementHostnameConfiguration -Hostname $proxyHostname - 
CertificateThumbprint $proxyCertUploadResult.Thumbprint

# Create the HostnameConfiguration object for Proxy endpoint
$ProxyHostnameConf = New-AzApiManagementHostnameConfiguration -Hostname $portalHostname - 
CertificateThumbprint $portalCertUploadResult.Thumbprint

# Apply the configuration to API Management
Set-AzApiManagementHostnames -Name $apimServiceName -ResourceGroupName $resourceGroupName `
    -PortalHostnameConfiguration $PortalHostnameConf -ProxyHostnameConfiguration $ProxyHostnameConf
  

Можно ли сделать подобное с помощью bash?

Ответ №1:

Если вы хотите настроить пользовательский домен для управления API Azure с помощью Azure CLI, мы можем использовать команду az apim update --set hostnameConfigurations={setting} . Настройка hostnameConfigurations должна быть такой

 [{
        "hostName": "bbb.beesphotos.net",
        "type": "Portal",
        "certificate": null,
        "certificatePassword": "<pfx file passsword>",
        "encodedCertificate": "Base64 Encoded certificate content"
    }, {
        "hostName": "huryapim.azure-api.net",
        "type": "Proxy",
        "certificate": null,
        "defaultSslBinding": true,
        "negotiateClientCertificate": false
    }
]
  

введите описание изображения здесь

Комментарии:

1. Возможно, у меня неправильный синтаксис, но когда я запускаю обновление az apim —name myapim —resource-group MyRG —set hostnameConfigurations={[{«Имя хоста»: «bbb.hostname.com.au «, «тип»: «Прокси», «keyVaultId»: » mykeyvault /секреты /mysecret «, «defaultSslBinding»: true,»negotiateClientCertificate»: true}]} Я получаю следующую ошибку — не удалось найти ‘bbb’ в ‘bbb.hostname’.

2. Пожалуйста, попробуйте преобразовать json в строку через tools.knowledgewalls.com/jsontostring . Затем запустите снова.

Ответ №2:

Вы можете использовать этот подход:

         az apim update --resource-group $rgName --name $apiMgmtName `
        --add hostnameConfigurations type=Proxy host_name=$hostName `
        encodedCertificate=$certData certificatePassword=$certPassword `
        negotiateClientCertificate=false