azure-pipelines-tasks-azurermdeploycommon 3.219.0 → 3.221.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/Strings/resources.resjson/de-DE/resources.resjson +69 -69
  2. package/Strings/resources.resjson/es-ES/resources.resjson +58 -58
  3. package/Strings/resources.resjson/fr-FR/resources.resjson +84 -84
  4. package/Strings/resources.resjson/it-IT/resources.resjson +36 -36
  5. package/Strings/resources.resjson/ja-JP/resources.resjson +32 -32
  6. package/Strings/resources.resjson/ko-KR/resources.resjson +25 -25
  7. package/Strings/resources.resjson/ru-RU/resources.resjson +52 -52
  8. package/Strings/resources.resjson/zh-CN/resources.resjson +1 -1
  9. package/Strings/resources.resjson/zh-TW/resources.resjson +28 -28
  10. package/Tests/azure-arm-app-service-kudu-tests.js +35 -35
  11. package/Tests/azure-arm-app-service-kudu-tests.ts +35 -35
  12. package/azure-arm-rest/Strings/resources.resjson/de-DE/resources.resjson +61 -61
  13. package/azure-arm-rest/Strings/resources.resjson/es-ES/resources.resjson +49 -49
  14. package/azure-arm-rest/Strings/resources.resjson/fr-FR/resources.resjson +80 -80
  15. package/azure-arm-rest/Strings/resources.resjson/it-IT/resources.resjson +33 -33
  16. package/azure-arm-rest/Strings/resources.resjson/ja-JP/resources.resjson +31 -31
  17. package/azure-arm-rest/Strings/resources.resjson/ko-KR/resources.resjson +23 -23
  18. package/azure-arm-rest/Strings/resources.resjson/ru-RU/resources.resjson +51 -51
  19. package/azure-arm-rest/Strings/resources.resjson/zh-CN/resources.resjson +1 -1
  20. package/azure-arm-rest/Strings/resources.resjson/zh-TW/resources.resjson +26 -26
  21. package/azure-arm-rest/azure-arm-app-service-kudu.d.ts +3 -3
  22. package/azure-arm-rest/azure-arm-app-service-kudu.js +5 -6
  23. package/azure-arm-rest/azure-arm-app-service-kudu.ts +6 -7
  24. package/azure-arm-rest/azure-arm-app-service.d.ts +1 -0
  25. package/azure-arm-rest/azure-arm-app-service.js +21 -0
  26. package/azure-arm-rest/azure-arm-app-service.ts +23 -0
  27. package/operations/AzureAppServiceUtility.d.ts +2 -0
  28. package/operations/AzureAppServiceUtility.js +42 -5
  29. package/operations/AzureAppServiceUtility.ts +47 -6
  30. package/package.json +1 -1
@@ -6,45 +6,45 @@
6
6
  "loc.messages.authorityUrlCannotBeEmpty": "Параметр authority должен быть непустой строкой.",
7
7
  "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Не удалось получить маркер доступа для Azure. Код состояния: %s, сообщение о состоянии: %s",
8
8
  "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Не удалось получить маркер доступа для управляемого субъекта-службы. Настройте управляемое удостоверение службы (MSI) для виртуальной машины \"https://aka.ms/azure-msi-docs\". Код состояния: %s; сообщения о состоянии: %s.",
9
- "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "Не удалось получить маркер доступа для управляемого субъекта-службы. Код состояния: %s, сообщение о состоянии: %s.",
10
- "loc.messages.CallbackCannotBeNull": "Обратный вызов не может иметь значение NULL.",
9
+ "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "Не удалось получить маркер доступа для управляемого субъекта-службы. Код состояния: %s, сообщение о состоянии: %s",
10
+ "loc.messages.CallbackCannotBeNull": "Параметр callback не может иметь значение NULL.",
11
11
  "loc.messages.VMNameCannotBeNull": "Параметр vmName не может иметь значение NULL или быть неопределенным. Также он должен быть строковым параметром.",
12
12
  "loc.messages.InvalidValue": "%s не является допустимым значением. Допустимые значения: %s",
13
- "loc.messages.VmExtensionNameCannotBeNull": "Параметр vmExtensionName не может иметь значение NULL или быть неопределенным. Также он должен быть строковым параметром.",
14
- "loc.messages.ExpandShouldBeOfTypeString": "Параметр expand должен быть строковым.",
15
- "loc.messages.ExtensionParametersCannotBeNull": "Параметр extensionParameters не может иметь значение NULL или быть неопределенным.",
16
- "loc.messages.LoadBalancerNameCannotBeNull": "Параметр loadBalancerName не может иметь значение NULL или быть неопределенным. Также он должен быть строковым параметром.",
17
- "loc.messages.ParametersCannotBeNull": "Параметры не могут иметь значение NULL или быть неопределенными.",
18
- "loc.messages.NetworkInterfaceNameCannotBeNull": "Параметр networkInterfaceName не может иметь значение NULL или быть неопределенным. Также он должен быть строковым параметром.",
19
- "loc.messages.NetworkSecurityGroupNameCannotBeNull": "Параметр networkSecurityGroupName не может иметь значение NULL или быть неопределенным. Также он должен быть строковым параметром.",
20
- "loc.messages.SecurityRuleNameCannotBeNull": "Параметр securityRuleName не может иметь значение NULL или быть неопределенным. Также он должен быть строковым параметром.",
21
- "loc.messages.SecurityRuleParametersCannotBeNull": "Параметр securityRuleParameters не может иметь значение NULL или быть неопределенным.",
22
- "loc.messages.DeploymentNameCannotBeNull": "Параметр deploymentName не может иметь значение NULL или быть неопределенным. Также он должен быть строковым параметром.",
13
+ "loc.messages.VmExtensionNameCannotBeNull": "Параметр vmExtensionName не может иметь значение NULL или отсутствовать. Он должен иметь строковый тип.",
14
+ "loc.messages.ExpandShouldBeOfTypeString": "Значение параметра expand должно быть строкового типа.",
15
+ "loc.messages.ExtensionParametersCannotBeNull": "Параметр extensionParameters не может иметь значение NULL или отсутствовать.",
16
+ "loc.messages.LoadBalancerNameCannotBeNull": "Параметр loadBalancerName не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
17
+ "loc.messages.ParametersCannotBeNull": "Параметры не могут иметь значение NULL или отсутствовать.",
18
+ "loc.messages.NetworkInterfaceNameCannotBeNull": "Параметр networkInterfaceName не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
19
+ "loc.messages.NetworkSecurityGroupNameCannotBeNull": "Параметр networkSecurityGroupName не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
20
+ "loc.messages.SecurityRuleNameCannotBeNull": "Параметр securityRuleName не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
21
+ "loc.messages.SecurityRuleParametersCannotBeNull": "Параметр securityRuleParameters не может иметь значение NULL или отсутствовать.",
22
+ "loc.messages.DeploymentNameCannotBeNull": "Параметр deploymentName не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
23
23
  "loc.messages.CredentialsCannotBeNull": "Параметр credentials не может иметь значение NULL.",
24
24
  "loc.messages.SubscriptionIdCannotBeNull": "Параметр \"subscriptionId\" не может иметь значение NULL.",
25
25
  "loc.messages.InvalidResponseLongRunningOperation": "На запрос о получении состояния длительной операции получен недопустимый ответ.",
26
- "loc.messages.TimeoutWhileWaiting": "Превышено время ожидания.",
27
- "loc.messages.ResourceGroupCannotBeNull": "Параметр resourceGroupName не может иметь значение NULL или быть неопределенным. Также он должен быть строковым параметром.",
28
- "loc.messages.ResourceGroupExceededLength": "Параметр \"resourceGroupName\" должен удовлетворять ограничению — \"MaxLength\": 90",
29
- "loc.messages.ResourceGroupDeceededLength": "Параметр \"resourceGroupName\" должен удовлетворять ограничению — \"MinLength\": 1",
30
- "loc.messages.ResourceGroupDoesntMatchPattern": "Параметр \"resourceGroupName\" должен удовлетворять ограничению — \"Шаблон\": /^[-\\w\\._\\(\\)]+$/",
31
- "loc.messages.VMSSNameCannotBeNull": "Имя VMSS не может иметь значение NULL или быть неопределенным. Оно должно иметь строковый тип.",
26
+ "loc.messages.TimeoutWhileWaiting": "Превышено время ожидания",
27
+ "loc.messages.ResourceGroupCannotBeNull": "Параметр resourceGroupName не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
28
+ "loc.messages.ResourceGroupExceededLength": "Параметр resourceGroupName должен удовлетворять ограничению \"MaxLength\": 90",
29
+ "loc.messages.ResourceGroupDeceededLength": "Параметр resourceGroupName должен удовлетворять ограничению \"MinLength\": 1",
30
+ "loc.messages.ResourceGroupDoesntMatchPattern": "Параметр resourceGroupName должен удовлетворять ограничению \"Шаблон\": /^[-\\w\\._\\(\\)]+$/",
31
+ "loc.messages.VMSSNameCannotBeNull": "Имя VMSS не может иметь значение NULL или отсутствовать. Оно должно иметь строковый тип.",
32
32
  "loc.messages.GetVMSSFailed": "Не удалось получить сведения о VMSS с группой ресурсов %s и именем %s. Ошибка: %s",
33
- "loc.messages.VMSSDoesNotHaveCustomImage": "Невозможно обновить VMSS %s, так как в нем используется образ платформы. Для обновления доступны только VMSS с пользовательскими образами.",
33
+ "loc.messages.VMSSDoesNotHaveCustomImage": "Невозможно обновить VMSS %s, так как в нем используется образ платформы. Обновить можно только VMSS с пользовательскими образами.",
34
34
  "loc.messages.VMSSImageUrlCannotBeNull": "URL-адрес образа должен быть непустой строкой.",
35
35
  "loc.messages.VMSSImageAlreadyUptoDate": "Образ %s уже обновлен. Обновление образа пропущено.",
36
36
  "loc.messages.NewVMSSImageUrl": "URL-адрес нового образа VMSS: %s.",
37
- "loc.messages.VMSSUpdateImage": "Перевод VMSS %s на новый образ...",
38
- "loc.messages.ResourceNameCannotBeNull": "Имя ресурса не может иметь значение null.",
37
+ "loc.messages.VMSSUpdateImage": "Перевод масштабируемого набора виртуальных машин %s на новый образ…",
38
+ "loc.messages.ResourceNameCannotBeNull": "Имя ресурса не может иметь значение NULL.",
39
39
  "loc.messages.activeDirectoryResourceIdUrlCannotBeEmpty": "URL-адрес ресурса Active Directory не может быть пустым.",
40
- "loc.messages.StorageAccountCannotBeNull": "Параметр accountName хранилища не может иметь значение NULL или быть неопределенным. Он должен иметь строковый тип.",
41
- "loc.messages.AppNameCannotBeNull": "Имя приложения не может быть равно NULL или не определено. Оно должно иметь строковый тип.",
42
- "loc.messages.SlotNameCannotBeNull": "Имя слота не может быть равно NULL или не определено. Оно должно иметь строковый тип.",
43
- "loc.messages.SourceSlotNameCannotBeNull": "Имя исходного слота не может быть равно NULL или не определено. Оно должно иметь строковый тип.",
44
- "loc.messages.DestinationSlotNameCannotBeNull": "Имя слота назначения не может быть равно NULL или не определено. Оно должно иметь строковый тип.",
45
- "loc.messages.SourceAndTargetSlotCannotBeSame": "Исходный слот и слот назначения не могут быть одинаковыми.",
40
+ "loc.messages.StorageAccountCannotBeNull": "Параметр accountName хранилища не может иметь значение NULL или отсутствовать. Он должен иметь строковый тип.",
41
+ "loc.messages.AppNameCannotBeNull": "Имя приложения не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
42
+ "loc.messages.SlotNameCannotBeNull": "Имя слота не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
43
+ "loc.messages.SourceSlotNameCannotBeNull": "Имя исходного слота не может быть равно NULL или отсутствовать. Оно должно иметь строковый тип.",
44
+ "loc.messages.DestinationSlotNameCannotBeNull": "Имя слота назначения не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
45
+ "loc.messages.SourceAndTargetSlotCannotBeSame": "Исходный и целевой слоты не могут совпадать",
46
46
  "loc.messages.ResourceGroupNotFound": "Группа ресурсов для службы приложений \"%s\" не найдена.",
47
- "loc.messages.ResourceTypeCannotBeNull": "Тип ресурса не может быть равен NULL или не определен. Он должен иметь строковый тип.",
47
+ "loc.messages.ResourceTypeCannotBeNull": "Тип ресурса не может иметь значение NULL или отсутствовать. Значение должно быть строкового типа.",
48
48
  "loc.messages.StartingAppService": "Запускается служба приложений: %s",
49
49
  "loc.messages.StartingAppServiceSlot": "Запускается служба приложений: %s-%s",
50
50
  "loc.messages.StartedAppService": "Служба приложений \"%s\" успешно запущена.",
@@ -54,18 +54,18 @@
54
54
  "loc.messages.StoppingAppService": "Останавливается служба приложений: %s",
55
55
  "loc.messages.StoppingAppServiceSlot": "Останавливается служба приложений: %s-%s",
56
56
  "loc.messages.StoppedAppService": "Служба приложений \"%s\" успешно остановлена.",
57
- "loc.messages.StoppedAppServiceSlot": "Служба приложений \"%s-%s\" успешно остановлена.",
57
+ "loc.messages.StoppedAppServiceSlot": "Служба приложений \"%s-%s\" остановлена.",
58
58
  "loc.messages.FailedToStopAppService": "Не удалось запустить службу приложений \"%s\". Ошибка: %s",
59
59
  "loc.messages.FailedToStopAppServiceSlot": "Не удалось запустить службу приложений \"%s-%s\". Ошибка: %s",
60
60
  "loc.messages.RestartingAppService": "Перезапуск службы приложений: %s",
61
61
  "loc.messages.RestartingAppServiceSlot": "Перезапуск службы приложений: %s-%s",
62
- "loc.messages.RestartedAppService": "Служба приложений \"%s\" успешно перезапущена.",
63
- "loc.messages.RestartedAppServiceSlot": "Служба приложений \"%s-%s\" успешно перезапущена.",
62
+ "loc.messages.RestartedAppService": "Служба приложений \"%s\" перезапущена.",
63
+ "loc.messages.RestartedAppServiceSlot": "Служба приложений \"%s-%s\" перезапущена.",
64
64
  "loc.messages.FailedToRestartAppService": "Не удалось перезапустить службу приложений \"%s\". Ошибка: %s",
65
65
  "loc.messages.FailedToRestartAppServiceSlot": "Не удалось перезапустить службу приложений \"%s-%s\". Ошибка: %s",
66
66
  "loc.messages.FailedToGetAppServiceDetails": "Не удалось получить сведения о службе приложений \"%s\". Ошибка: %s",
67
67
  "loc.messages.AppServiceState": "Служба приложений находится в состоянии \"%s\".",
68
- "loc.messages.InvalidMonitorAppState": "Указано недопустимое состояние \"%s\" для мониторинга состояния приложений",
68
+ "loc.messages.InvalidMonitorAppState": "Указано недопустимое состояние \"%s\" для приложения мониторинга",
69
69
  "loc.messages.FailedToGetAppServicePublishingProfile": "Не удалось получить профиль публикации для службы приложений \"%s\". Ошибка: %s",
70
70
  "loc.messages.FailedToSwapAppServiceSlotWithProduction": "Не удалось переключить слоты \"production\" и \"%s\" службы приложений \"%s\". Ошибка: %s",
71
71
  "loc.messages.FailedToSwapAppServiceSlotSlots": "Не удалось переключить слоты \"%s\" и \"%s\" службы приложений \"%s\". Ошибка: %s",
@@ -75,18 +75,18 @@
75
75
  "loc.messages.SwappedAppServiceSlotSlots": "Слоты \"%s\" и \"%s\" службы приложений \"%s\" успешно переключены",
76
76
  "loc.messages.FailedToGetAppServicePublishingCredentials": "Не удалось получить учетные данные публикации для службы приложений \"%s\". Ошибка: %s",
77
77
  "loc.messages.WarmingUpSlots": "Подготовка слотов",
78
- "loc.messages.DeploymentIDCannotBeNull": "Идентификатор развертывания не может быть равен NULL или не определен.",
79
- "loc.messages.DeploymentDataEntityCannotBeNull": "Объект данных развертывания не может быть равен NULL или не определен.",
78
+ "loc.messages.DeploymentIDCannotBeNull": "Идентификатор развертывания не может иметь значение NULL или быть пустым.",
79
+ "loc.messages.DeploymentDataEntityCannotBeNull": "Объект данных развертывания не может иметь значение NULL или отсутствовать.",
80
80
  "loc.messages.SiteExtensionInstalled": "Расширение сайта \"%s\" установлено.",
81
81
  "loc.messages.FailedToInstallSiteExtension": "Не удалось установить расширение сайта \"%s\". Ошибка: %s",
82
- "loc.messages.JobNameCannotBeNull": "Имя задания не может быть равно NULL или не определено.",
83
- "loc.messages.SiteExtensionCannotBeNull": "Имя расширения сайта не может быть пусто или равно NULL.",
84
- "loc.messages.TestNameCannotBeNull": "Имя теста не может быть равно NULL или не определено. Оно должно иметь строковый тип.",
85
- "loc.messages.TestDefinitionCannotBeNull": "Определение тега не может быть равно NULL или не определено.",
86
- "loc.messages.AppInsightsPropertiesCannotBeNullOrEmpty": "Свойства Application Insights не могут быть равны NULL или не определены.",
87
- "loc.messages.SpecifiedAzureRmEndpointIsInvalid": "Указанная конечная точка AzureRM недопустима: %s",
82
+ "loc.messages.JobNameCannotBeNull": "Имя задания не может иметь значение NULL или быть пустым.",
83
+ "loc.messages.SiteExtensionCannotBeNull": "Имя расширения сайта не может иметь значение NULL или быть пустым.",
84
+ "loc.messages.TestNameCannotBeNull": "Имя теста не может быть равно NULL или отсутствовать. Оно должно иметь строковый тип.",
85
+ "loc.messages.TestDefinitionCannotBeNull": "Определение теста не может отсутствовать или иметь значение NULL.",
86
+ "loc.messages.AppInsightsPropertiesCannotBeNullOrEmpty": "Свойства Application Insights не могут иметь значение NULL или отсутствовать.",
87
+ "loc.messages.SpecifiedAzureRmEndpointIsInvalid": "Указанная конечная точка AzureRM является недопустимой: %s",
88
88
  "loc.messages.FailedToFetchAzureStackDependencyData": "Не удалось получить данные о зависимостях Azure Stack. Код состояния: %s",
89
- "loc.messages.FailedToGetApplicationInsightsResource": "Не удалось получить ресурс \"%s\" Application Insights. Ошибка: %s",
89
+ "loc.messages.FailedToGetApplicationInsightsResource": "Не удалось получить ресурс Application Insights \"%s\". Ошибка: %s",
90
90
  "loc.messages.FailedToUpdateApplicationInsightsResource": "Не удалось обновить ресурс Application Insights \"%s\". Ошибка: %s",
91
91
  "loc.messages.FailedToGetApplicationInsightsWebTestsForResourceGroup": "Не удалось получить веб-тесты для группы ресурсов \"%s\" Application Insights. Ошибка: %s",
92
92
  "loc.messages.FailedToCreateWebTests": "Не удалось создать веб-тест. Ошибка: %s",
@@ -95,12 +95,12 @@
95
95
  "loc.messages.FailedToUpdateAppServiceConfiguration": "Не удалось обновить конфигурацию службы приложений \"%s\". Ошибка: %s",
96
96
  "loc.messages.FailedToGetAppServiceApplicationSettings": "Не удалось получить параметры приложения для службы приложений \"%s\". Ошибка: %s",
97
97
  "loc.messages.FailedToUpdateAppServiceApplicationSettings": "Не удалось обновить параметры приложения для службы приложений \"%s\". Ошибка: %s",
98
- "loc.messages.KuduSCMDetailsAreEmpty": "Сведения о KUDU SCM пусты",
98
+ "loc.messages.KuduSCMDetailsAreEmpty": "Сведения о SCM KUDU отсутствуют",
99
99
  "loc.messages.FailedToGetContinuousWebJobs": "Не удалось получить непрерывные веб-задания. Ошибка: %s",
100
100
  "loc.messages.FailedToStartContinuousWebJob": "Не удалось запустить непрерывное веб-задание \"%s\". Ошибка: %s",
101
101
  "loc.messages.FailedToStopContinuousWebJob": "Не удалось остановить непрерывное веб-задание \"%s\". Ошибка: %s",
102
102
  "loc.messages.FailedToGetSiteExtensions": "Не удалось получить расширения сайта. Ошибка: %s",
103
- "loc.messages.FailedToGetAllSiteExtensions": "Не удалось получить канал расширения. Ошибка: %s.",
103
+ "loc.messages.FailedToGetAllSiteExtensions": "Не удалось получить канал расширения. Ошибка: %s",
104
104
  "loc.messages.ExtensionAlreadyInstalled": "Расширение \"%s\" уже установлено.",
105
105
  "loc.messages.InstallingSiteExtension": "Установка расширения сайта \"%s\"",
106
106
  "loc.messages.FailedToGetResourceID": "Не удалось получить идентификатор ресурса для ресурса с типом \"%s\" и именем \"%s\". Ошибка: %s",
@@ -127,15 +127,15 @@
127
127
  "loc.messages.Failedtodeploywebapppackageusingkuduservice": "Не удалось развернуть веб-пакет. Ошибка: %s",
128
128
  "loc.messages.FailedToCreatePath": "Не удалось создать путь \"%s\" из Kudu. Ошибка: %s",
129
129
  "loc.messages.FailedToDeleteFile": "Не удалось удалить файл \"%s/%s\" из Kudu. Ошибка: %s",
130
- "loc.messages.FailedToDeleteFolder": "Не удалось удалить папку \"%s\" из Kudu. Ошибка: %s.",
131
- "loc.messages.FailedToUploadFile": "Не удалось отправить файл \"%s/%s из Kudu. Ошибка: %s",
130
+ "loc.messages.FailedToDeleteFolder": "Не удалось удалить папку \"%s\" из Kudu. Ошибка: %s",
131
+ "loc.messages.FailedToUploadFile": "Не удалось отправить файл \"%s/%s\" из Kudu. Ошибка: %s",
132
132
  "loc.messages.FailedToGetFileContent": "Не удалось получить содержимое файла \"%s/%s\" из Kudu. Ошибка: %s",
133
133
  "loc.messages.FailedToListPath": "Не удалось получить список элементов для пути \"%s\". Ошибка: %s",
134
134
  "loc.messages.FailedToGetDeploymentLogs": "Не удалось получить журналы развертывания. Ошибка: %s",
135
- "loc.messages.ARG_RedirectResponseInvalidStatusCode": "Код ответа HTTP \"%s\" не является допустимым кодом состояния перенаправления.",
136
- "loc.messages.ARG_RedirectResponseLocationHeaderIsNull": "Заголовок расположения равен NULL у ответа HTTP с кодом состояния %s.",
137
- "loc.messages.ASE_SSLIssueRecommendation": "Чтобы использовать сертификат в службе приложений, сертификат должен быть подписан доверенным центром сертификации. Если в веб-приложении появляются ошибки проверки серитфиката, возможно, вы используете самозаверяющий сертификат, и для устранения этих ошибок необходимо установить значение true для переменной VSTS_ARM_REST_IGNORE_SSL_ERRORS в определении сборки или выпуска.",
138
- "loc.messages.FailedToGetAzureMetricAlerts": "Не удалось получить метрики оповещений Azure: %s. Ошибка: %s.",
139
- "loc.messages.FailedToUpdateAzureMetricAlerts": "Не удалось обновить правило генерации оповещений метрики Azure для ресурса \"%s\". Ошибка: %s.",
140
- "loc.messages.ResponseNotValid": "Ответ имеет недопустимый формат."
135
+ "loc.messages.ARG_RedirectResponseInvalidStatusCode": "Код отклика HTTP \"%s\" не является допустимым кодом состояния перенаправления.",
136
+ "loc.messages.ARG_RedirectResponseLocationHeaderIsNull": "Заголовок расположения равен NULL для отклика HTTP с кодом состояния %s",
137
+ "loc.messages.ASE_SSLIssueRecommendation": "Чтобы использовать сертификат в службе приложений, он должен быть подписан доверенным центром сертификации. Если в веб-приложении возникают ошибки проверки сертификата, возможно, вы используете самозаверяющий сертификат, и для устранения этих ошибок необходимо установить значение true для переменной VSTS_ARM_REST_IGNORE_SSL_ERRORS в определении сборки или выпуска",
138
+ "loc.messages.FailedToGetAzureMetricAlerts": "Не удалось получить оповещения метрик Azure: %s. Ошибка: %s",
139
+ "loc.messages.FailedToUpdateAzureMetricAlerts": "Не удалось обновить правило генерации оповещений метрик Azure для ресурса \"%s\". Ошибка: %s",
140
+ "loc.messages.ResponseNotValid": "Недопустимый формат ответа"
141
141
  }
@@ -27,7 +27,7 @@
27
27
  "loc.messages.ResourceGroupCannotBeNull": "resourceGroupName 不能为 NULL 或未定义,且必须为类型字符串。",
28
28
  "loc.messages.ResourceGroupExceededLength": "\"resourceGroupName\" 应满足约束 - \"MaxLength\": 90",
29
29
  "loc.messages.ResourceGroupDeceededLength": "\"resourceGroupName\" 应满足约束 - \"MinLength\": 1",
30
- "loc.messages.ResourceGroupDoesntMatchPattern": "\"resourceGroupName\" 应满足约束 -“模式”: /^[-\\w\\._\\(\\)]+$/",
30
+ "loc.messages.ResourceGroupDoesntMatchPattern": "\"resourceGroupName\" 应满足约束 - \"Pattern\": /^[-\\w\\._\\(\\)]+$/",
31
31
  "loc.messages.VMSSNameCannotBeNull": "VMSS 名称不能为 NULL 或未定义,且必须为类型字符串。",
32
32
  "loc.messages.GetVMSSFailed": "无法获取资源组为 %s、名称为 %s 的 VMSS 的详细信息。错误: %s",
33
33
  "loc.messages.VMSSDoesNotHaveCustomImage": "不能更新 VMSS %s,因为它使用平台映像。只能更新当前使用自定义映像的 VMSS。",
@@ -2,42 +2,42 @@
2
2
  "loc.messages.ClientIdCannotBeEmpty": "clientId 不得為空字串。",
3
3
  "loc.messages.DomainCannotBeEmpty": "domain 不得為空字串。",
4
4
  "loc.messages.SecretCannotBeEmpty": "secret 不得為空字串。",
5
- "loc.messages.armUrlCannotBeEmpty": "arm Url 不得為空字串。",
5
+ "loc.messages.armUrlCannotBeEmpty": "ARM URL 不得為空字串。",
6
6
  "loc.messages.authorityUrlCannotBeEmpty": "authority 不得為空字串。",
7
7
  "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "無法擷取 Azure 的存取權杖。狀態碼: %s,狀態訊息: %s",
8
8
  "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "無法擷取受控服務主體的存取權杖。請設定虛擬機器的受控服務識別 (MSI) (https://aka.ms/azure-msi-docs)。狀態碼: %s,狀態訊息: %s",
9
9
  "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "無法擷取受控服務主體的存取權杖。狀態碼: %s,狀態訊息: %s",
10
10
  "loc.messages.CallbackCannotBeNull": "回撥不得為 null。",
11
- "loc.messages.VMNameCannotBeNull": "vmName 不得為 null 或未定義。其必須是 type 字串。",
11
+ "loc.messages.VMNameCannotBeNull": "vmName 不得為 null 或未定義,且其必須是字串類型。",
12
12
  "loc.messages.InvalidValue": "%s 不是有效的值。有效值: %s",
13
- "loc.messages.VmExtensionNameCannotBeNull": "vmExtensionName 不得為 null 或未定義。其必須是 type 字串。",
14
- "loc.messages.ExpandShouldBeOfTypeString": "expand 必須是 type 字串。",
13
+ "loc.messages.VmExtensionNameCannotBeNull": "vmExtensionName 不得為 null 或未定義。其必須是字串類型。",
14
+ "loc.messages.ExpandShouldBeOfTypeString": "expand 必須是類型字串。",
15
15
  "loc.messages.ExtensionParametersCannotBeNull": "extensionParameters 不得為 null 或未定義。",
16
- "loc.messages.LoadBalancerNameCannotBeNull": "'loadBalancerName 不得為 null 或未定義。其必須是 type 字串。'",
16
+ "loc.messages.LoadBalancerNameCannotBeNull": "'loadBalancerName 不得為 null 或未定義。其必須是字串類型。'",
17
17
  "loc.messages.ParametersCannotBeNull": "parameters 不得為 null 或未定義。",
18
- "loc.messages.NetworkInterfaceNameCannotBeNull": "networkInterfaceName 不得為 null 或未定義。其必須是 type 字串。",
19
- "loc.messages.NetworkSecurityGroupNameCannotBeNull": "networkSecurityGroupName 不得為 null 或未定義。其必須是 type 字串。",
20
- "loc.messages.SecurityRuleNameCannotBeNull": "securityRuleName 不得為 null 或未定義。其必須是 type 字串。",
18
+ "loc.messages.NetworkInterfaceNameCannotBeNull": "networkInterfaceName 不得為 null 或未定義。其必須是字串類型。",
19
+ "loc.messages.NetworkSecurityGroupNameCannotBeNull": "networkSecurityGroupName 不得為 null 或未定義,且其必須是字串類型。",
20
+ "loc.messages.SecurityRuleNameCannotBeNull": "securityRuleName 不得為 null 或未定義,且其必須是字串類型。",
21
21
  "loc.messages.SecurityRuleParametersCannotBeNull": "securityRuleParameters 不得為 null 或未定義。",
22
- "loc.messages.DeploymentNameCannotBeNull": "deploymentName 不得為 null 或未定義。其必須是 type 字串。",
22
+ "loc.messages.DeploymentNameCannotBeNull": "deploymentName 不得為 null 或未定義。其必須是字串類型。",
23
23
  "loc.messages.CredentialsCannotBeNull": "'credentials' 不得為 null。",
24
24
  "loc.messages.SubscriptionIdCannotBeNull": "'subscriptionId' 不得為 null。",
25
25
  "loc.messages.InvalidResponseLongRunningOperation": "擷取執行時間長之作業的狀態時,收到無效的回應。",
26
26
  "loc.messages.TimeoutWhileWaiting": "等候時發生逾時",
27
- "loc.messages.ResourceGroupCannotBeNull": "resourceGroupName 不得為 null 或未定義。其必須是 type 字串。",
28
- "loc.messages.ResourceGroupExceededLength": "\"resourceGroupName\" 必須滿足條件約束 - \"MaxLength\": 90",
29
- "loc.messages.ResourceGroupDeceededLength": "\"resourceGroupName\" 必須滿足條件約束 - \"MinLength\": 1",
30
- "loc.messages.ResourceGroupDoesntMatchPattern": "\"resourceGroupName\" 必須滿足限制式 -「模式」: /^[-\\w\\._\\(\\)]+$/",
31
- "loc.messages.VMSSNameCannotBeNull": "VMSS 名稱不得為 null 或未定義,而必須是字串類型。",
27
+ "loc.messages.ResourceGroupCannotBeNull": "resourceGroupName 不得為 null 或未定義,且其必須是字串類型。",
28
+ "loc.messages.ResourceGroupExceededLength": "\"resourceGroupName\" 必須滿足限制式 - \"MaxLength\": 90",
29
+ "loc.messages.ResourceGroupDeceededLength": "\"resourceGroupName\" 必須滿足限制式 - \"MinLength\": 1",
30
+ "loc.messages.ResourceGroupDoesntMatchPattern": "\"resourceGroupName\" 必須滿足限制式 - \"Pattern\": /^[-\\w\\._\\(\\)]+$/",
31
+ "loc.messages.VMSSNameCannotBeNull": "VMSS 名稱不得為 null 或未定義,且必須是字串類型。",
32
32
  "loc.messages.GetVMSSFailed": "無法取得資源群組為 %s 且名稱為 %s 的 VMSS 詳細資料。錯誤: %s",
33
33
  "loc.messages.VMSSDoesNotHaveCustomImage": "因為 VMSS %s 使用平台映像,所以無法更新。只能更新目前使用自訂映像的 VMSS。",
34
34
  "loc.messages.VMSSImageUrlCannotBeNull": "映像 URL 必須是非空白字串。",
35
- "loc.messages.VMSSImageAlreadyUptoDate": "%s 的映像已在最新狀態,因此會跳過映像更新。",
35
+ "loc.messages.VMSSImageAlreadyUptoDate": "%s 的映像已在最新狀態。正在跳過映像更新。",
36
36
  "loc.messages.NewVMSSImageUrl": "新 VMSS 映像的 URL: %s。",
37
37
  "loc.messages.VMSSUpdateImage": "正在將 VMSS %s 更新為使用新映像...",
38
38
  "loc.messages.ResourceNameCannotBeNull": "資源名稱不可為 Null。",
39
- "loc.messages.activeDirectoryResourceIdUrlCannotBeEmpty": "Active Directory 資源 URL 不能是空的。",
40
- "loc.messages.StorageAccountCannotBeNull": "儲存體 accountName 不得為 null 或未定義,而必須是字串類型。",
39
+ "loc.messages.activeDirectoryResourceIdUrlCannotBeEmpty": "Active Directory 資源 URL 不可空白。",
40
+ "loc.messages.StorageAccountCannotBeNull": "儲存體 accountName 不得為 null 或未定義,且必須是字串類型。",
41
41
  "loc.messages.AppNameCannotBeNull": "應用程式名稱不可為 null 或未定義,且必須是字串類型。",
42
42
  "loc.messages.SlotNameCannotBeNull": "位置名稱不可為 null 或未定義,且必須是字串類型。",
43
43
  "loc.messages.SourceSlotNameCannotBeNull": "來源位置名稱不可為 null 或未定義,且必須是字串類型。",
@@ -66,7 +66,7 @@
66
66
  "loc.messages.FailedToGetAppServiceDetails": "無法擷取 App Service '%s' 詳細資料。錯誤: %s",
67
67
  "loc.messages.AppServiceState": "App Service 的狀態為 '%s'。",
68
68
  "loc.messages.InvalidMonitorAppState": "為監視應用程式狀態提供的狀態 '%s' 無效",
69
- "loc.messages.FailedToGetAppServicePublishingProfile": "無法擷取 App Service '%s' 發佈設定檔。錯誤: %s",
69
+ "loc.messages.FailedToGetAppServicePublishingProfile": "無法擷取 App Service '%s' 發行設定檔。錯誤: %s",
70
70
  "loc.messages.FailedToSwapAppServiceSlotWithProduction": "無法交換 App Service '%s' 位置 - 'production' 和 '%s'。錯誤: %s",
71
71
  "loc.messages.FailedToSwapAppServiceSlotSlots": "無法交換 App Service '%s' 位置 - '%s' 和 '%s'。錯誤: %s",
72
72
  "loc.messages.SwappingAppServiceSlotWithProduction": "正在交換 App Service '%s' 位置 - 'production' 和 '%s'",
@@ -74,7 +74,7 @@
74
74
  "loc.messages.SwappedAppServiceSlotWithProduction": "已交換 App Service '%s' 位置 - 'production' 和 '%s'",
75
75
  "loc.messages.SwappedAppServiceSlotSlots": "已交換 App Service '%s' 位置 - '%s' 和 '%s'",
76
76
  "loc.messages.FailedToGetAppServicePublishingCredentials": "無法擷取 App Service '%s' 發佈認證。錯誤: %s",
77
- "loc.messages.WarmingUpSlots": "正在準備交換位置",
77
+ "loc.messages.WarmingUpSlots": "正在準備位置",
78
78
  "loc.messages.DeploymentIDCannotBeNull": "部署識別碼不可為 null 或空白。",
79
79
  "loc.messages.DeploymentDataEntityCannotBeNull": "部署資料實體不可為 null 或未定義。",
80
80
  "loc.messages.SiteExtensionInstalled": "網站延伸模組 '%s' 已安裝。",
@@ -90,7 +90,7 @@
90
90
  "loc.messages.FailedToUpdateApplicationInsightsResource": "無法更新 Application Insights '%s' 資源。錯誤: %s",
91
91
  "loc.messages.FailedToGetApplicationInsightsWebTestsForResourceGroup": "無法取得 Application Insights Web TestsFor 資源群組 '%s'。錯誤: %s",
92
92
  "loc.messages.FailedToCreateWebTests": "無法建立 Web 測試。錯誤: %s",
93
- "loc.messages.WebTestAlreadyConfigured": "已設定 URL %s 的 Web 測試",
93
+ "loc.messages.WebTestAlreadyConfigured": "已設定 URL 的 Web 測試: %s",
94
94
  "loc.messages.FailedToGetAppServiceConfiguration": "無法取得 App Service '%s' 組態。錯誤: %s",
95
95
  "loc.messages.FailedToUpdateAppServiceConfiguration": "無法更新 App Service '%s' 組態。錯誤: %s",
96
96
  "loc.messages.FailedToGetAppServiceApplicationSettings": "無法取得 App Service '%s' 應用程式設定。錯誤: %s",
@@ -106,7 +106,7 @@
106
106
  "loc.messages.FailedToGetResourceID": "無法取得資源類型 '%s' 和資源名稱 '%s' 的資源識別碼。錯誤: %s",
107
107
  "loc.messages.ContinousMonitoringEnabled": "已為 App Service '%s' 啟用持續監視。",
108
108
  "loc.messages.MultipleResourceGroupFoundForAppService": "找到 App Service '%s' 的多個資源群組。",
109
- "loc.messages.StartingContinousWebJobsinAppService": "正在 App Service 中啟用持續 WebJob '%s'",
109
+ "loc.messages.StartingContinousWebJobsinAppService": "正在 App Service 中啟動持續 WebJob '%s'",
110
110
  "loc.messages.StartedContinousWebJobsinAppService": "已在 App Service 中啟用持續 WebJob '%s'",
111
111
  "loc.messages.StoppingContinousWebJobsinAppService": "正在停止 App Service '%s' 中的持續 WebJob",
112
112
  "loc.messages.StoppedContinousWebJobsinAppService": "已停止 App Service 中的持續 WebJob '%s'",
@@ -123,8 +123,8 @@
123
123
  "loc.messages.RestartedKuduService": "Kudu 服務已重新啟動",
124
124
  "loc.messages.FailedToRestartKuduService": "無法重新啟動 Kudu 服務。%s。",
125
125
  "loc.messages.FailedToFetchKuduAppSettings": "無法擷取 Kudu 應用程式設定。錯誤: %s",
126
- "loc.messages.Successfullydeployedpackageusingkuduserviceat": "已成功使用 Kudu 服務部署套件 %s %s ",
127
- "loc.messages.Failedtodeploywebapppackageusingkuduservice": "無法部署網頁套件。錯誤: %s",
126
+ "loc.messages.Successfullydeployedpackageusingkuduserviceat": "已成功使用 Kudu 服務於 %s 部署套件 %s",
127
+ "loc.messages.Failedtodeploywebapppackageusingkuduservice": "無法部署 Web p套件。錯誤: %s",
128
128
  "loc.messages.FailedToCreatePath": "無法從 Kudu 建立路徑 '%s'。錯誤: %s",
129
129
  "loc.messages.FailedToDeleteFile": "無法從 Kudu 刪除檔案 '%s/%s'。錯誤: %s",
130
130
  "loc.messages.FailedToDeleteFolder": "無法從 Kudu 刪除資料夾 '%s'。錯誤: %s",
@@ -134,8 +134,8 @@
134
134
  "loc.messages.FailedToGetDeploymentLogs": "無法取得部署記錄。錯誤: %s",
135
135
  "loc.messages.ARG_RedirectResponseInvalidStatusCode": "HTTP 回應碼: '%s' 不是有效的重新導向狀態碼。",
136
136
  "loc.messages.ARG_RedirectResponseLocationHeaderIsNull": "HTTP 回應的位置標頭為 null,狀態碼: %s",
137
- "loc.messages.ASE_SSLIssueRecommendation": "若要在 App Service 中使用憑證,必須是由信任之憑證授權單位簽署的憑證。若您的 Web 應用程式顯示憑證驗證錯誤,有可能您是使用自我簽署的憑證。若要解決這些錯誤,必須將組建或發行定義中的 VSTS_ARM_REST_IGNORE_SSL_ERRORS 變數值設為 true",
138
- "loc.messages.FailedToGetAzureMetricAlerts": "無法取得 Azure 度量警示: %s。錯誤: %s",
139
- "loc.messages.FailedToUpdateAzureMetricAlerts": "無法更新 Azure 度量警示規則 '%s' 資源。錯誤: %s",
137
+ "loc.messages.ASE_SSLIssueRecommendation": "若要在 App Service 中使用憑證,必須是由受信任之憑證授權單位簽署的憑證。若您的 Web 應用程式顯示憑證驗證錯誤,有可能您是使用自我簽署的憑證。若要解決這些錯誤,必須將組建或發行定義中的 VSTS_ARM_REST_IGNORE_SSL_ERRORS 變數值設為 true",
138
+ "loc.messages.FailedToGetAzureMetricAlerts": "無法取得 Azure 計量警示: %s。錯誤: %s",
139
+ "loc.messages.FailedToUpdateAzureMetricAlerts": "無法更新 Azure 計量警示規則 '%s' 資源。錯誤: %s",
140
140
  "loc.messages.ResponseNotValid": "回應的格式無效"
141
141
  }
@@ -2,16 +2,16 @@ import webClient = require('./webClient');
2
2
  import { WebJob, SiteExtension } from './azureModels';
3
3
  export declare class KuduServiceManagementClient {
4
4
  private _scmUri;
5
- private _accesssToken;
5
+ private _authHeader;
6
6
  private _cookie;
7
- constructor(scmUri: string, accessToken: string);
7
+ constructor(scmUri: string, authHeader: string);
8
8
  beginRequest(request: webClient.WebRequest, reqOptions?: webClient.WebRequestOptions, contentType?: string): Promise<webClient.WebResponse>;
9
9
  getRequestUri(uriFormat: string, queryParameters?: Array<string>): string;
10
10
  getScmUri(): string;
11
11
  }
12
12
  export declare class Kudu {
13
13
  private _client;
14
- constructor(scmUri: string, username: string, password: string);
14
+ constructor(scmUri: string, authHeader: string);
15
15
  updateDeployment(requestBody: any): Promise<string>;
16
16
  getContinuousJobs(): Promise<Array<WebJob>>;
17
17
  startContinuousWebJob(jobName: string): Promise<WebJob>;
@@ -16,14 +16,14 @@ const util = require("util");
16
16
  const webClient = require("./webClient");
17
17
  const constants_1 = require("./constants");
18
18
  class KuduServiceManagementClient {
19
- constructor(scmUri, accessToken) {
20
- this._accesssToken = accessToken;
19
+ constructor(scmUri, authHeader) {
20
+ this._authHeader = authHeader;
21
21
  this._scmUri = scmUri;
22
22
  }
23
23
  beginRequest(request, reqOptions, contentType) {
24
24
  return __awaiter(this, void 0, void 0, function* () {
25
25
  request.headers = request.headers || {};
26
- request.headers["Authorization"] = "Basic " + this._accesssToken;
26
+ request.headers["Authorization"] = this._authHeader;
27
27
  request.headers['Content-Type'] = contentType || 'application/json; charset=utf-8';
28
28
  if (!!this._cookie) {
29
29
  tl.debug(`setting affinity cookie ${JSON.stringify(this._cookie)}`);
@@ -69,9 +69,8 @@ class KuduServiceManagementClient {
69
69
  }
70
70
  exports.KuduServiceManagementClient = KuduServiceManagementClient;
71
71
  class Kudu {
72
- constructor(scmUri, username, password) {
73
- var base64EncodedCredential = (new Buffer(username + ':' + password).toString('base64'));
74
- this._client = new KuduServiceManagementClient(scmUri, base64EncodedCredential);
72
+ constructor(scmUri, authHeader) {
73
+ this._client = new KuduServiceManagementClient(scmUri, authHeader);
75
74
  }
76
75
  updateDeployment(requestBody) {
77
76
  return __awaiter(this, void 0, void 0, function* () {
@@ -7,17 +7,17 @@ import { KUDU_DEPLOYMENT_CONSTANTS } from './constants';
7
7
 
8
8
  export class KuduServiceManagementClient {
9
9
  private _scmUri;
10
- private _accesssToken: string;
10
+ private _authHeader: string;
11
11
  private _cookie: string[];
12
12
 
13
- constructor(scmUri: string, accessToken: string) {
14
- this._accesssToken = accessToken;
13
+ constructor(scmUri: string, authHeader: string) {
14
+ this._authHeader = authHeader;
15
15
  this._scmUri = scmUri;
16
16
  }
17
17
 
18
18
  public async beginRequest(request: webClient.WebRequest, reqOptions?: webClient.WebRequestOptions, contentType?: string): Promise<webClient.WebResponse> {
19
19
  request.headers = request.headers || {};
20
- request.headers["Authorization"] = "Basic " + this._accesssToken;
20
+ request.headers["Authorization"] = this._authHeader;
21
21
  request.headers['Content-Type'] = contentType || 'application/json; charset=utf-8';
22
22
 
23
23
  if(!!this._cookie) {
@@ -75,9 +75,8 @@ export class KuduServiceManagementClient {
75
75
  export class Kudu {
76
76
  private _client: KuduServiceManagementClient;
77
77
 
78
- constructor(scmUri: string, username: string, password: string) {
79
- var base64EncodedCredential = (new Buffer(username + ':' + password).toString('base64'));
80
- this._client = new KuduServiceManagementClient(scmUri, base64EncodedCredential);
78
+ constructor(scmUri: string, authHeader: string) {
79
+ this._client = new KuduServiceManagementClient(scmUri, authHeader);
81
80
  }
82
81
 
83
82
  public async updateDeployment(requestBody: any): Promise<string> {
@@ -38,6 +38,7 @@ export declare class AzureAppService {
38
38
  updateMetadata(applicationSettings: any): Promise<AzureAppServiceConfigurationDetails>;
39
39
  patchMetadata(properties: any): Promise<void>;
40
40
  getSlot(): string;
41
+ getSitePublishingCredentialPolicies(): Promise<any>;
41
42
  private _getPublishingProfileWithSecrets;
42
43
  private _getApplicationSettings;
43
44
  private _getConnectionStrings;
@@ -515,6 +515,27 @@ class AzureAppService {
515
515
  getSlot() {
516
516
  return this._slot ? this._slot : "production";
517
517
  }
518
+ getSitePublishingCredentialPolicies() {
519
+ return __awaiter(this, void 0, void 0, function* () {
520
+ try {
521
+ var httpRequest = new webClient.WebRequest();
522
+ httpRequest.method = 'GET';
523
+ var slotUrl = !!this._slot ? `/slots/${this._slot}` : '';
524
+ httpRequest.uri = this._client.getRequestUri(`//subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/${slotUrl}/basicPublishingCredentialsPolicies/scm`, {
525
+ '{resourceGroupName}': this._resourceGroup,
526
+ '{name}': this._name,
527
+ }, null, '2022-03-01');
528
+ var response = yield this._client.beginRequest(httpRequest);
529
+ if (response.statusCode != 200) {
530
+ throw AzureServiceClient_1.ToError(response);
531
+ }
532
+ return response.body;
533
+ }
534
+ catch (error) {
535
+ throw Error(`Failed to get SitePublishingCredentialPolicies. Error: ${this._client.getFormattedError(error)}`);
536
+ }
537
+ });
538
+ }
518
539
  _getPublishingProfileWithSecrets() {
519
540
  return __awaiter(this, void 0, void 0, function* () {
520
541
  try {
@@ -555,6 +555,29 @@ export class AzureAppService {
555
555
  return this._slot ? this._slot : "production";
556
556
  }
557
557
 
558
+ public async getSitePublishingCredentialPolicies(): Promise<any> {
559
+ try {
560
+ var httpRequest = new webClient.WebRequest();
561
+ httpRequest.method = 'GET';
562
+ var slotUrl: string = !!this._slot ? `/slots/${this._slot}` : '';
563
+ httpRequest.uri = this._client.getRequestUri(`//subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/${slotUrl}/basicPublishingCredentialsPolicies/scm`,
564
+ {
565
+ '{resourceGroupName}': this._resourceGroup,
566
+ '{name}': this._name,
567
+ }, null, '2022-03-01');
568
+
569
+ var response = await this._client.beginRequest(httpRequest);
570
+ if(response.statusCode != 200) {
571
+ throw ToError(response);
572
+ }
573
+
574
+ return response.body;
575
+ }
576
+ catch(error) {
577
+ throw Error(`Failed to get SitePublishingCredentialPolicies. Error: ${this._client.getFormattedError(error)}`);
578
+ }
579
+ }
580
+
558
581
  private async _getPublishingProfileWithSecrets(): Promise<any> {
559
582
  try {
560
583
  var httpRequest = new webClient.WebRequest();
@@ -9,12 +9,14 @@ export declare class AzureAppServiceUtility {
9
9
  pingApplication(): Promise<void>;
10
10
  static pingApplication(applicationUrl: string): Promise<void>;
11
11
  getKuduService(): Promise<Kudu>;
12
+ private getKuduAuthHeader;
12
13
  getPhysicalPath(virtualApplication: string): Promise<string>;
13
14
  updateConfigurationSettings(properties: any, formatJSON?: boolean): Promise<void>;
14
15
  updateAndMonitorAppSettings(addProperties?: any, deleteProperties?: any, formatJSON?: boolean): Promise<boolean>;
15
16
  updateConnectionStrings(addProperties: any): Promise<boolean>;
16
17
  enableRenameLockedFiles(): Promise<void>;
17
18
  updateStartupCommandAndRuntimeStack(runtimeStack: string, startupCommand?: string): Promise<void>;
19
+ isSitePublishingCredentialsEnabled(): Promise<boolean>;
18
20
  private _getPhysicalToVirtualPathMap;
19
21
  private _getNewMetadata;
20
22
  }
@@ -129,12 +129,29 @@ class AzureAppServiceUtility {
129
129
  }
130
130
  getKuduService() {
131
131
  return __awaiter(this, void 0, void 0, function* () {
132
- var publishingCredentials = yield this._appService.getPublishingCredentials();
133
- if (publishingCredentials.properties["scmUri"]) {
134
- tl.setVariable(`AZURE_APP_SERVICE_KUDU_${this._appService.getSlot()}_PASSWORD`, publishingCredentials.properties["publishingPassword"], true);
135
- return new azure_arm_app_service_kudu_1.Kudu(publishingCredentials.properties["scmUri"], publishingCredentials.properties["publishingUserName"], publishingCredentials.properties["publishingPassword"]);
132
+ const publishingCredentials = yield this._appService.getPublishingCredentials();
133
+ const scmUri = publishingCredentials.properties["scmUri"];
134
+ if (!scmUri) {
135
+ throw Error(tl.loc('KuduSCMDetailsAreEmpty'));
136
136
  }
137
- throw Error(tl.loc('KuduSCMDetailsAreEmpty'));
137
+ const authHeader = yield this.getKuduAuthHeader(publishingCredentials);
138
+ return new azure_arm_app_service_kudu_1.Kudu(publishingCredentials.properties["scmUri"], authHeader);
139
+ });
140
+ }
141
+ getKuduAuthHeader(publishingCredentials) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ const scmPolicyCheck = yield this.isSitePublishingCredentialsEnabled();
144
+ if (!scmPolicyCheck) {
145
+ const accessToken = yield this._appService._client.getCredentials().getToken();
146
+ tl.debug("Kudu: using bearer token.");
147
+ return "Bearer " + accessToken;
148
+ }
149
+ const password = publishingCredentials.properties["publishingPassword"];
150
+ const userName = publishingCredentials.properties["publishingUserName"];
151
+ tl.setVariable(`AZURE_APP_SERVICE_KUDU_${this._appService.getSlot()}_PASSWORD`, password, true);
152
+ tl.debug("Kudu: using basic auth.");
153
+ const auth = (new Buffer(userName + ':' + password).toString('base64'));
154
+ return "Basic " + auth;
138
155
  });
139
156
  }
140
157
  getPhysicalPath(virtualApplication) {
@@ -269,6 +286,26 @@ class AzureAppServiceUtility {
269
286
  }
270
287
  });
271
288
  }
289
+ isSitePublishingCredentialsEnabled() {
290
+ return __awaiter(this, void 0, void 0, function* () {
291
+ try {
292
+ let scmAuthPolicy = yield this._appService.getSitePublishingCredentialPolicies();
293
+ tl.debug(`Site Publishing Policy check: ${JSON.stringify(scmAuthPolicy)}`);
294
+ if (scmAuthPolicy && scmAuthPolicy.properties.allow) {
295
+ tl.debug("Function App does allow SCM access");
296
+ return true;
297
+ }
298
+ else {
299
+ tl.debug("Function App does not allow SCM Access");
300
+ return false;
301
+ }
302
+ }
303
+ catch (error) {
304
+ tl.debug(`Skipping SCM Policy check: ${error}`);
305
+ return null;
306
+ }
307
+ });
308
+ }
272
309
  _getPhysicalToVirtualPathMap(virtualApplication) {
273
310
  return __awaiter(this, void 0, void 0, function* () {
274
311
  // construct URL depending on virtualApplication or root of webapplication