我有个简单的问题我需要配置我的应用程序服务,以便能够连接到本地Artifactory。
在AppService中,我将部署中心设置为屏幕截图(URL和图像名称已更改)
Deployment Center settings
此外,我启用了VNet集成到VNet,它可以访问本地环境。例如,同一子网中的VM可以从Artifactory中拉取Docker镜像,但App Service不能。下面是错误日志。023-08-07T07:35:20.683Z INFO - Attempting to pull image *URL_ARTIFACTORY_ONPREMIES/IMAGE_NAME*:latest from VNET. 2023-08-07T07:35:52.219Z ERROR - Image pull for *URL_ARTIFACTORY_ONPREMIES/IMAGE_NAME*:latest failed. UnexpectedFaliure 2023-08-07T07:35:52.221Z ERROR - Pulling docker image *URL_ARTIFACTORY_ONPREMIES/IMAGE_NAME*:latest over VNET failed. 2023-08-07T07:35:52.222Z WARN - Image pull failed. Defaulting to local copy if present. 2023-08-07T07:35:52.906Z ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)
我将WEBSITE_PULL_IMAGE_OVER_VNET设置为True。
我的问题是:默认情况下,应用程序服务尝试通过公共ip地址连接?(出站流量)
Networking tab
请提供任何提示或建议。谢谢.
3条答案
按热度按时间dpiehjr41#
默认情况下,应用程序服务尝试通过公共ip地址连接?(出站流量)
Azure应用服务示例启动出站请求时,它使用分配给Azure区域的出站网络基础结构的公共IP地址。
2023-08- 07 T07:35:52.906Z错误-图像提取失败:验证docker镜像配置和凭据(如果使用私有存储库)
选择私有注册表时使用以下格式模板:
WEBSITE_PULL_IMAGE_OVER_VNET
应用程序设置设置为True
,因此默认情况下Azure App Service将公共IP地址用于出站流量。检查您是否已如上所述选择了网络安全组,并在应用程序服务中转到设置<身份<系统分配应该是“开”。
yk9xbfzb2#
是的,我认为App Service默认会尝试通过公共网络。您可以从App Service -> Development Tools -> Advanced Tools转到App Service Kudu调试控制台,并尝试
nslookup repositoryurlorendpoint
命令(如果您正在部署到Linux App Service)。在我们的例子中,这个错误(*'UnexpectedFaliure'**)发生是因为它解析到了应用服务内部的公共IP(从Kudu中可以看到),而不是虚拟网络IP(例如10.x.x.x)。即DNS设置不正确(需要自定义DNS服务器,而不是vnet设置中的 Default(Azure提供的))
j2datikz3#
通过全球CA为Artifactory(内部部署)颁发证书,解决了该问题。