System.UnauthorizedAccessException: доступ к пути 'C:\runtime\Secrets\host.json' запрещен в контейнере Windows функций Azure
На основе этого Dockerfile я запускаю среду выполнения функций Azure внутри контейнера Windows.
Я хочу принести свои секреты. Поэтому я добавляю свой собственный host.json в runtime\secrets
папку и установите тип хранения files
:
host_secret.json:
{
"masterKey": {
"name": "master",
"value": "***fancy-code-for-host-admin-and-keys-api***",
"encrypted": false
},
"functionKeys": [
{
"name": "default",
"value": "***fancy-code-for-functions***",
"encrypted": false
}
]
}
Dockerfile:
....
ADD host_secret.json C:\\runtime\\Secrets\\host.json
ENV AzureWebJobsSecretStorageType=files
....
При запуске контейнера и приложения-функции оно не отвечает и показывает
Функция хоста не работает.
проверяя логи, которые я нахожу
System.UnauthorizedAccessException: доступ к пути 'C:\runtime\Secrets\host.json' запрещен
1 ответ
Решение
Контейнер работает как ContainerUser
и, следовательно, этому пользователю нужен доступ к этому файлу.
ADD host_secret.json C:\\runtime\\Secrets\\host.json
USER ContainerAdministrator
RUN icacls "c:\runtime\secrets" /t /grant Users:M
USER ContainerUser
ENV AzureWebJobsSecretStorageType=files
Это дает возможность изменять права доступа пользователям внутри контейнера - группы. ContainerUser
является членом.