Azure: создание новой службы управления API без URL службы - PullRequest
0 голосов
/ 27 марта 2020

Мое намерение состоит в том, чтобы настроить API (например, Azure Функция ) в службу управления API , используя только политики, Я не хочу указывать URL службы .

Это возможно с помощью пользовательского интерфейса портала: enter image description here

, но без использования Модуль PowerShell Az .

Следующий код:

New-AzApiManagementApi -Context $context -Name $fullName -Protocols @('https') `
                                         -Path $path -ProductIds @($product) `
                                         -ApiVersionSetId $apiMgmtVersion.ApiVersionSetId

вызывает это исключение:

Error : Unable to create 'news' managed API version 1.
Cannot validate argument on parameter 'ServiceUrl'. The argument is null or empty. Provide an argument that is not null or empty, and then try the 
command again.
At C:\Projects\Intranet.ai\component_tools\Install-ApiMgmt.ps1:105 char:76
+ ... able to create '$fullName' managed API version $version.`n$_" | Error
+                                                                     ~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Error

Есть ли способ определить API без службы URL? Может быть, используя непосредственно New-AzResource?

Спасибо всем, кто поможет!

1 Ответ

1 голос
/ 01 апреля 2020

Есть ли способ определить API без URL службы? Может быть, с использованием New-AzResource?

* * * * * * * New-AzApiManagementApi, кажется, не поддерживает это, вы можете использовать New-AzResource напрямую, попробуйте пример ниже, он работает на моей стороне. 1009 *

enter image description here

Регистрация на портале:

enter image description here

Обновление :

Если вы хотите включить apiVersionSetId, попробуйте следующий.

$versionSet = Get-AzApiManagementApiVersionSet -Context $context -ApiVersionSetId "d41e7f92-9cf8-48fb-8552-d9ae5d4690d3"
$Id = $versionSet.Id -replace "apiVersionSets","api-version-sets"

$PropertiesObject = @{
        "name" = "test22"
        "serviceUrl" =  $null
        "path" = "testaaa"
        "protocols" = @("https")
        "apiVersionSetId" = $Id
    }
New-AzResource -PropertyObject $PropertiesObject -ResourceGroupName <Group-name> -ResourceType Microsoft.ApiManagement/service/apis -ResourceName "<API-management-servie-name>/test22" -ApiVersion 2018-01-01 -Force

enter image description here

...