System.UnauthorizedAccessException: доступ к пути 'C: \ runtime \ Secrets \ host.json' запрещен в контейнере Windows функций Azure - PullRequest
0 голосов
/ 08 декабря 2018

На основании этого 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 Ответ

0 голосов
/ 08 декабря 2018

Контейнер работает как 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.

...