Функции Azure: мы не можем получить главный ключ среды выполнения

Ошибка функций Azure. Я получаю ошибку на портале

Error:

We are not able to retrieve the runtime master key. Please try again later.
Session Id: d13fceebd4ea4cb1b7fb3d3829dd1406

Timestamp: 2017-08-24T20:04:23.555Z

Я пробовал все предложения здесь: https://blogs.msdn.microsoft.com/jpsanders/2017/05/09/function-app-error-we-are-not-able-to-retrieve-the-runtime-master-key/

Я использую исполняемую версию 1.0.10917, но попробовал ~1 и получил тот же результат.

Кажется, это происходит, когда я удаляю функцию с портала, а затем воссоздаю ее. Это последовательно происходит после этого для каждой функции, которая у нас есть. В первый раз, когда функция создается, кажется, что она работает.


person Jeff    schedule 24.08.2017    source источник
comment
поделитесь своим идентификатором сеанса и отметкой времени. Также github или форумы могут быть более подходящими для этого вопроса github.com/Azure/Azure-Functions/ проблемы   -  person ahmelsayed    schedule 24.08.2017
comment
Как мне это получить? Конечно, это вопрос программирования, так что отрицательный голос выглядит довольно глупо.   -  person Jeff    schedule 24.08.2017
comment
идентификатор сеанса является частью сообщения об ошибке, в котором говорится "We are not able to retrieve the runtime master key"   -  person ahmelsayed    schedule 24.08.2017
comment
я обновил вопрос   -  person Jeff    schedule 24.08.2017
comment
это действительно странно. Я не могу найти никаких журналов для этого идентификатора сеанса за последнюю неделю ... Я попробовал вчера и просто подумал, что это задержка журнала, но я все еще не вижу их. Можете ли вы попробовать получить другой идентификатор сеанса или поделиться именем приложения напрямую или косвенно   -  person ahmelsayed    schedule 25.08.2017
comment
Это вызов functionsbtests2-dev, а вот еще один идентификатор / временная метка - Session Id: 8c1fc5a0207b45e191185e605f7cfc51 Timestamp: 2017-08-31T02: 50: 23.504Z   -  person Jeff    schedule 31.08.2017
comment
да, я нашел это. Я предполагаю, что вы используете какой-то блокировщик рекламы :) Я использую Application Insights для отслеживания исключений, и блокировщики рекламы обычно блокируют это, что может объяснить, почему я не могу найти никаких следов ваших сессий. в любом случае я пишу ответ, дай мне минутку   -  person ahmelsayed    schedule 01.09.2017


Ответы (3)


Это исключение, с которым вы сталкиваетесь

System.Security.Cryptography.CryptographicException : The payload was invalid.
   at Microsoft.AspNetCore.DataProtection.Cng.CbcAuthenticatedEncryptor.DecryptImpl(Byte* pbCiphertext,UInt32 cbCiphertext,Byte* pbAdditionalAuthenticatedData,UInt32 cbAdditionalAuthenticatedData)
   at Microsoft.AspNetCore.DataProtection.Cng.Internal.CngAuthenticatedEncryptorBase.Decrypt(ArraySegment`1 ciphertext,ArraySegment`1 additionalAuthenticatedData)
   at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.UnprotectCore(Byte[] protectedData,Boolean allowOperationsOnRevokedKeys,UnprotectStatus& status)
   at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.DangerousUnprotect(Byte[] protectedData,Boolean ignoreRevocationErrors,Boolean& requiresMigration,Boolean& wasRevoked)
   at Microsoft.Azure.WebJobs.Script.WebHost.DataProtectionKeyValueConverter.Unprotect(Key key) at C:\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\Security\DataProtectionKeyValueConverter.cs : 43
   at Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.ReadHostSecrets(HostSecrets hostSecrets) at C:\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\Security\SecretManager.cs : 383
   at async Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.GetHostSecretsAsync() at C:\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\Security\SecretManager.cs : 83
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.WebHost.WebJobsSdkExtensionHookProvider.GetOrCreateExtensionKey(String extensionName) at C:\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\WebHooks\WebJobsSdkExtensionHookProvider.cs : 71
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.Azure.WebJobs.Script.WebHost.WebJobsSdkExtensionHookProvider.GetExtensionWebHookRoute(String extensionName) at C:\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\WebHooks\WebJobsSdkExtensionHookProvider.cs : 64
   at Microsoft.Azure.WebJobs.Extensions.EventGrid.EventGridExtensionConfig.Initialize(ExtensionConfigContext context)
   at Microsoft.Azure.WebJobs.Host.Executors.JobHostConfigurationExtensions.InvokeExtensionConfigProviders(ExtensionConfigContext context)
   at Microsoft.Azure.WebJobs.Host.Executors.JobHostConfigurationExtensions.CreateStaticServices(JobHostConfiguration config)
   at Microsoft.Azure.WebJobs.JobHost.PopulateStaticServices()
   at Microsoft.Azure.WebJobs.Script.Utility.CreateMetadataProvider(JobHost host) at C:\azure-webjobs-sdk-script\src\WebJobs.Script\Utility.cs : 362
   at Microsoft.Azure.WebJobs.Script.ScriptHost.LoadCustomExtensions() at C:\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHost.cs : 670
   at Microsoft.Azure.WebJobs.Script.ScriptHost.Initialize() at C:\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHost.cs : 510
   at Microsoft.Azure.WebJobs.Script.ScriptHost.Create(IScriptHostEnvironment environment,IScriptEventManager eventManager,ScriptHostConfiguration scriptConfig,ScriptSettingsManager settingsManager) at C:\azure-webjobs-sdk-script\src\WebJobs.Script\Host\ScriptHost.cs : 937

Пользователям очень сложно обнаружить эти ошибки для своего приложения, потому что среда выполнения не регистрирует их в любом месте, где UX может запросить.

Эта проблема отслеживает исключение: https://github.com/Azure/azure-webjobs-sdk-script/issues/1832

Мы до сих пор не совсем уверены, почему это происходит. Вы случайно не опубликовали ключи из другого приложения? (отредактируйте: или удалите и воссоздайте приложение с тем же именем) эти ключи зашифрованы специальным ключом приложения-функции и не будут работать вне этого контекста.

fix: скопировано из Fabio Cavalcante

вы можете удалить (или переименовать) файл host.json в d: \ home \ data \ Functions \ secrets \ и повторить попытку? Это заставит среду выполнения воссоздать эти секреты для этой среды. Имейте в виду, что это также изменит ваш главный ключ и ключ по умолчанию.

person ahmelsayed    schedule 01.09.2017
comment
Из-за ошибок в механизме развертывания функций Azure (случайные ошибки, связанные с заблокированными файлами и условиями гонки), иногда необходимо удалить и воссоздать приложение-функцию, а не просто обновлять его. - person Jeff; 02.09.2017

Переключение учетной записи хранения функций Azure на новую учетную запись хранения может вызвать аналогичную проблему.

Ошибка: мы не можем получить ключ swaggerdocumentationkey.
Проверьте журналы выполнения на наличие ошибок или повторите попытку позже.

Вероятно, это связано с тем, что учетная запись хранения не инициализирована на новом сайте. Я не могу подтвердить поведение, но кажется, что при переключении учетных записей хранения новая учетная запись не инициализирует новый сайт и вызовет аналогичные проблемы.

person nelak    schedule 19.09.2017

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

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

person Karthikeyan VK    schedule 19.10.2017