从cli交换Azure应用程序服务时如何获取交换配置预览?

从cli交换Azure应用程序服务时如何获取交换配置预览?,azure,azure-web-app-service,azure-cloud-shell,Azure,Azure Web App Service,Azure Cloud Shell,当通过门户将生产插槽与Azure应用程序服务的暂存插槽交换时,如果插槽之间的配置不同,您会收到一点警告 当我从命令行交换时(例如,在bash中使用az),我希望得到相同的警告,这可能吗?如果可能,怎么做?在使用完成交换之前,似乎没有任何方法获得确认 如果需要确认对话框,则需要单独编写脚本,例如 read -r -p "Are you sure? [y/N] " response if [[ "$response" =~ ^([yY][eE][sS]|[yY])+$ ]] then az

当通过门户将生产插槽与Azure应用程序服务的暂存插槽交换时,如果插槽之间的配置不同,您会收到一点警告


当我从命令行交换时(例如,在bash中使用az),我希望得到相同的警告,这可能吗?如果可能,怎么做?

在使用完成交换之前,似乎没有任何方法获得确认

如果需要确认对话框,则需要单独编写脚本,例如

read -r -p "Are you sure? [y/N] " response
if [[ "$response" =~ ^([yY][eE][sS]|[yY])+$ ]]
then
    az webapp deployment slot swap  -g MyResourceGroup -n MyUniqueApp --slot staging --target-slot production
fi
工具书类
  • 有关使用cli交换插槽的更多信息,请参见第页
  • 和第页,了解bash中有条件执行语句的详细信息

    • 使用Azure CLI和
      jq
      (先安装它)成功地做到了这一点。这与Azure门户在进行预览时所做的调用相同。因此,我添加了Azure CLI任务,然后:

      echo Phase One changes
      az rest -m post -u https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/<your_rg>/providers/Microsoft.Web/sites/<your_webapp_name>/slots/<slot_name>/slotsdiffs?api-version=2016-08-01 --body {\"targetSlot\":\"production\"} | jq -r "[.value[].properties | select(.diffRule == \"SlotSettingsMissing\") | .description ] | join(\";\")" 
      
      echo Phase Two changes
      az rest -m post -u https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/<your_rg>/providers/Microsoft.Web/sites/<your_webapp_name>/slots/<slot_name>/slotsdiffs?api-version=2016-08-01 --body {\"targetSlot\":\"production\"} | jq -r "[.value[].properties | select(.diffRule != \"SlotSettingsMissing\") | .description ] | join(\";\")" 
      
      echo第一阶段的变化
      az rest-m post-uhttps://management.azure.com/subscriptions/{subscriptionId}/resourceGroups//providers/Microsoft.Web/sites//slots//slotsdiffs?api version=2016-08-01--body{“targetSlot\:\“production\”}jq-r“[.value[].properties | select(.diffRule==“SlotSettingsMissing\”))。description];join(\“;”)
      回声二期变化
      az rest-m post-uhttps://management.azure.com/subscriptions/{subscriptionId}/resourceGroups//providers/Microsoft.Web/sites//slots//slotsdiffs?api version=2016-08-01--body{“targetSlot\:\“production\”}jq-r“[.value[].properties | select(.diverule!=“SlotSettingsMissing\”)。description]|连接(\“;”)
      

      注意,
      {subscriptionId}
      将被替换,因此无需手动执行。无论如何,应该提供
      中的其他参数。

      最后,我对az cli进行了扩展,用于比较和区分配置。这毕竟不是很难做到,同时我可以稍微扩展一下它的功能,使它能够在不同的web应用程序之间进行不同的配置,例如,当相同的服务部署在多个区域时,这很有用


      (该扩展目前在任何地方都不公开,但如果有兴趣,可能会公开)

      您对如何单独编写此类警告有何建议?对不起,可能我不清楚。我所说的警告是显示插槽之间不匹配的任何配置值的警告。