gpt4 book ai didi

azure - 使用具有托管标识的 Azure Web App for Containers

转载 作者:行者123 更新时间:2023-12-02 06:15:44 36 4
gpt4 key购买 nike

使用自定义镜像(来自 Centos 7 基础镜像)部署了适用于容器的 Azure 应用服务。基于以下documentation有一个环境变量应由 Azure 设置并用于创建 REST API 请求以获取访问 token :

  • IDENTITY_ENDPOINT - 本地 token 服务的 URL。

但是,在检查容器内部时,未设置此变量:

[root@f22dfd74be31 ~]# echo $IDENTITY_ENDPOINT
(empty result here)

我还尝试调用 az cli,但也失败了:

[root@f22dfd74be31 ~]# az login -i
AzureConnectionError: Failed to connect to MSI. Please make sure MSI is configured correctly
and check the network connection.
Error detail: HTTPConnectionPool(host='169.254.169.254', port=80): Max retries exceeded with
url: /metadata/identity/oauth2/token?resource=https%3
A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01 (Caused by
NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f9e0c4
c72e8>: Failed to establish a new connection: [Errno 110] Connection timed out',))

我已成功将托管身份与虚拟机和应用服务(代码部署而非容器)结合使用,容器应用服务和自定义容器是否支持它?

最佳答案

使用容器的应用服务时,“平台”环境变量(包括托管标识和应用设置)仅在容器初始化时可用。为了使这些变量可以从容器访问,必须将以下行合并到容器启动脚本中(从 Dockerfile ENTRYPOINT 调用):

eval $(printenv | sed -n "s/^\([^=]\+\)=\(.*\)$/export \1=\2/p" | sed 's/"/\\\"/g' | sed '/=/s//="/' | sed 's/$/"/' >> /etc/profile)

关于azure - 使用具有托管标识的 Azure Web App for Containers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65451162/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com