使用 az apim api 在 apim 中更新 api
Update api in apim using az apim api
在我的 azure devops 管道中,我有一个任务 AzureCLI@2,它将 api 部署到 apim。我如何使用 az apim api 来更新 api?我知道有一个操作可以做到这一点,但文档没有显示如何操作,我也没有找到任何示例。我正在使用在管道中生成的打开的 api 文件来创建,我想用它来更新 api。
您可以使用 this method and delete it using this 方法在 APIM 中创建一个 API。
在azure devops管道中,我们可以这样设置AzureCLI任务:
我们需要前往 Azure 门户并找到我们的 api ID,然后更新 api 信息。这是我的测试结果:
再次使用az apim api import
即可。它将用新的 API 替换现有的 API,保留使用相同模板的操作策略。 --path
和 --api-id
参数必须与现有的 API 相同。提供 url/path 到 swagger/openapi 和正确的规范格式。示例:
az apim api import --path "/myapi" --api-id "myapiid" --resource-group "test-rg" --service-name "test-apim" --specification-url "https://petstore.swagger.io/v2/swagger.json" --specification-format Swagger
如果您想添加修订而不是更新现有版本,请添加额外的 --api-revision
参数
az apim api update
适用于更新单个属性或字段,如描述、api 类型等。
请使用以下脚本在 APIM 中使用 az cli create/update API。
我假设
一个。您的 api 定义在打开 API 定义文件中。 B. 您正在使用路径 ($apiPrefix).
识别 apim 个端点
$apiPrefix="my-path"
$rgName="RG_NAME"
$apimS="APIM_SVC_NAME"
$apiDefinitionLocalPath="PATH_TO_APIM_DEFINITION_JSON"
$allAPIs= az apim api list --resource-group $rgName --service-name $apimS
$allAPIsJson= $allAPIs | ConvertFrom-Json
$apiWithMatchingPath=$allAPIsJson | Where-Object {$_.path -eq $apiPrefix }
if($apiWithMatchingPath){
#it only requires the ID. using $apiWithMatchingPath.id will return the
#fully qualified ID... which is not required.
az apim api import --api-id $apiWithMatchingPath.name --resource-group `
$rgName --service-name $apimS --path $apiPrefix --api-type http --protocols`
https --specification-format OpenApi --specification-path `
$apiDefinitionLocalPath
}else{
#IMPORT definition w/o name
az apim api import --resource-group $rgName --service-name $apimS --path `
$apiPrefix --api-type http --protocols https --specification-format `
OpenApi --specification-path $apiDefinitionLocalPath
}
在我的 azure devops 管道中,我有一个任务 AzureCLI@2,它将 api 部署到 apim。我如何使用 az apim api 来更新 api?我知道有一个操作可以做到这一点,但文档没有显示如何操作,我也没有找到任何示例。我正在使用在管道中生成的打开的 api 文件来创建,我想用它来更新 api。
您可以使用 this method and delete it using this 方法在 APIM 中创建一个 API。
在azure devops管道中,我们可以这样设置AzureCLI任务:
我们需要前往 Azure 门户并找到我们的 api ID,然后更新 api 信息。这是我的测试结果:
再次使用az apim api import
即可。它将用新的 API 替换现有的 API,保留使用相同模板的操作策略。 --path
和 --api-id
参数必须与现有的 API 相同。提供 url/path 到 swagger/openapi 和正确的规范格式。示例:
az apim api import --path "/myapi" --api-id "myapiid" --resource-group "test-rg" --service-name "test-apim" --specification-url "https://petstore.swagger.io/v2/swagger.json" --specification-format Swagger
如果您想添加修订而不是更新现有版本,请添加额外的 --api-revision
参数
az apim api update
适用于更新单个属性或字段,如描述、api 类型等。
请使用以下脚本在 APIM 中使用 az cli create/update API。 我假设
一个。您的 api 定义在打开 API 定义文件中。 B. 您正在使用路径 ($apiPrefix).
识别 apim 个端点$apiPrefix="my-path"
$rgName="RG_NAME"
$apimS="APIM_SVC_NAME"
$apiDefinitionLocalPath="PATH_TO_APIM_DEFINITION_JSON"
$allAPIs= az apim api list --resource-group $rgName --service-name $apimS
$allAPIsJson= $allAPIs | ConvertFrom-Json
$apiWithMatchingPath=$allAPIsJson | Where-Object {$_.path -eq $apiPrefix }
if($apiWithMatchingPath){
#it only requires the ID. using $apiWithMatchingPath.id will return the
#fully qualified ID... which is not required.
az apim api import --api-id $apiWithMatchingPath.name --resource-group `
$rgName --service-name $apimS --path $apiPrefix --api-type http --protocols`
https --specification-format OpenApi --specification-path `
$apiDefinitionLocalPath
}else{
#IMPORT definition w/o name
az apim api import --resource-group $rgName --service-name $apimS --path `
$apiPrefix --api-type http --protocols https --specification-format `
OpenApi --specification-path $apiDefinitionLocalPath
}