System.UnauthorizedAccessException:在 Azure Functions Windows 容器中拒绝访问路径 'C:\runtime\Secrets\host.json'
System.UnauthorizedAccessException : Access to the path 'C:\runtime\Secrets\host.json' is denied in Azure Functions 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
....
启动容器和函数应用时,没有响应显示
Function host is not running.
检查我找到的日志
System.UnauthorizedAccessException : Access to the path 'C:\runtime\Secrets\host.json' is denied
容器 运行 为 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
是其成员。
基于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
....
启动容器和函数应用时,没有响应显示
Function host is not running.
检查我找到的日志
System.UnauthorizedAccessException : Access to the path 'C:\runtime\Secrets\host.json' is denied
容器 运行 为 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
是其成员。