Получение функциональной клавиши в шаблоне ARM - периодически прерывается - PullRequest
0 голосов
/ 28 февраля 2019

Привет! Я получаю функциональную клавишу и URL-адрес триггера в качестве вывода в нашем шаблоне охраны, используя следующий код.

>     "outputs": {
>     "Key": {
>       "type": "string",
>       "value": "[listsecrets(resourceId('Microsoft.Web/sites/functions',
> variables('funcName'),
> parameters('NameOfService')),'2015-08-01').key]"
>     },
>     "functionUrl": {
>       "type": "string",
>       "value": "[listsecrets(resourceId('Microsoft.Web/sites/functions',
> variables('funcName'),
> parameters('NameOfService')),'2015-08-01').trigger_url]"
>     }   }

У нас для параметра 'AzureWebJobsSecretStorageType' установлено значение 'Файлы' в настройках приложения какон не работает без него в Functions v2, когда мы выполняем шаблон ARM, он иногда работает, но иногда выдает следующую ошибку, не зная, в чем его проблема, шаблон ARM действителен, поскольку он работает, и я вижуФункция также успешно развернута на портале Azure, поэтому не знаете, почему именно она не работает, какие-либо подсказки?

[error] BadRequest: {"error": {"code": "BadRequest",«message»: «System.FormatException: не удалось расшифровать CfDJ8AAAAAAAAAAAAAAAAAAAAAB93sc99M4b_klhBWrLMfQYRpSN9, ключ недействителен или неверно задан ---> System.Security.Cryptography.Cryp..CbcAuthenticatedEncryptor.DecryptImpl (Byte * pbCiphertext, UInt32 cbCiphertext, Byte * pbAdditionalAuthenticatedData, UInt32 (cbAdditionalAuthenticatedData) \ r \ n в Microsoft.AspNetCore.DataProtection.Cng.Internal.] protectedData, логическое allowOperationsOnRevokedKeys, UnprotectStatus & status) \ r \ n в Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.DangerousUnprotect (Byte [] protectedData, логическое игнорируемое_каталоговое_окружение_категория_обозначения_объявления с ошибками)«) в C: \ Kudu Files \ Private \ src \ master \ Kudu.Core \ Infrastructure \ SecurityUtility.cs: строка 40 \ r \ n --- Конец внутренней трассировки стека исключений --- \ r \ n в Kudu.Core.Infrastructure.SecurityUtility.DecryptSecretString (содержимое строки) в C: \ Kudu Files \ Private \ src \ master \Kudu.Core \ Infrastructure \ SecurityUtility.cs: строка 45 \ r \ n в Kudu.Core.Functions.FunctionManager.d__9 1.MoveNext() in C:\\Kudu Files\\Private\\src\\master\\Kudu.Core\\Functions\\FunctionManager.cs:line 203\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Kudu.Core.Functions.FunctionManager.<GetFunctionSecretsAsync>d__12.MoveNext() in C:\\Kudu Files\\Private\\src\\master\\Kudu.Core\\Functions\\FunctionManager.cs:line 220\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Kudu.Services.Functions.FunctionController.<GetSecrets>d__12.MoveNext() in C:\\Kudu Files\\Private\\src\\master\\Kudu.Services\\Functions\\FunctionController.cs:line 141\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__3 1.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего местоположения, где исключениебыл брошен --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в System.W.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача)\ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) \ r \ n в System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext () \ r \ n --- Конец трассировки стека отпрочевидное место, где было сгенерировано исключение --- \ r \ n в System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение ---\ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) \ r \ n в System.WebilThttp..d__0.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего расположения, в котором было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task) \ r \ n atSystem.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) \ r \ n в System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext () \ r \ n ---Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- \ r \ n в System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего местоположения, где исключениебыл брошен --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в System.W.Http.Filters.ActionFilterAttribute.d__0.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача)\ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) \ r \ n в System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext () \ r \ n --- Конец трассировки стека отпредыдущее местоположение, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) \ r \ n в System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext () "}

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Я обнаружил, что это вызвало, это происходило только при новом развертывании функции, т. Е. Когда я удалял приложение функции и затем пытался развернуть, я столкнулся с этой проблемой, причина была в том, что я просто удалял приложение функции, а не учетную запись храненияЭто связано с тем, что старая учетная запись хранения хранила некоторую информацию об удаленном приложении-функции (я полагаю), и все стало беспорядочно, в тот момент, когда я начал удалять учетную запись хранения с помощью приложения-функции, проблема исчезла.Просто добавьте, что учетная запись хранилища предназначена для этого приложения-функции и больше не используется.

0 голосов
/ 06 марта 2019

Исходя из вашего сообщения об ошибке, я предполагаю, что функциональная клавиша выглядит как CfDJ8AAAAAAAAAAAAAAAAAAAAAB93sc99M4b_klhBWrLMfQYRpSN9.Однако этот формат ключа не имеет смысла.Я попадал в ту же ситуацию несколько раз.Ключ выглядел точно так же, как ваш.

В этом случае сам ключ поврежден.Это иногда случается.Поэтому единственное решение для этого - обновить ключ.Тогда он будет выглядеть как обычный кодированный в base-64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...