System.UnauthorizedAccessException:Azure Functions Windows容器中拒绝对路径“ C:\ runtime \ Secrets \ host.json”的访问

时间:2018-12-08 13:33:36

标签: dockerfile azure-functions azure-functions-runtime windows-container

基于this Dockerfile 我正在Windows容器中运行Azure Functions运行时。

我想带上我自己的秘密。因此,我将自己的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 :(得分:2)

该容器以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的成员。