【Azure 應用服務】App Service 開啟了私有終結點(Private Endpoint)模式後,如何來實現公網Git部署呢?
- 2022 年 6 月 20 日
- 筆記
- 【Azure Developer】, 【Azure 應用服務】, 【Azure 環境】, App Service, Azure Developer, Azure 環境, Local Git 外網部署App Gateway保護的App Service源代碼
問題描述
因為中國區的App Service對外(公網訪問)需要進行ICP備案,所以很多情況下,Web應用部署到App Service後,都是通過Application Gateway(應用程序網關)來對外網暴露,提供公網訪問。
上圖列出了使用Application Gateway後,外網訪問App Service的示意圖。 如果直接訪問,則會出現403的錯誤頁面。
那麼,在這樣的情況下,我們如何來實現通過公網暴露Git的URI,實現外網成功部署App Service的代碼呢?
問題解答
當然,可以通過Application Gateway 來暴露 App Service默認的GIT Repository 地址 ://<appservicename>.scm.chinacloudsites.cn:443/<appservicename>.git
如何配置Application Gateway 與App Service的服務,參考官方文檔:使用應用程序網關配置應用服務(//docs.azure.cn/zh-cn/application-gateway/configure-web-app?tabs=customdomain%2Cazure-portal)
在配置的過程中,必須注意以下三點:
第一點:為Application Gateway 配置自定義域名 (本次實驗中只是短暫使用,所以使用公網IP地址進行解析)
第二點:App Gateway 的後端池(Backend Pool) 不能直接選擇App Service,需要選擇 IP Address or FQDN,並輸入SCM的域名。 如: <appservicename>.scm.chinacloudsites.cn
第三點:為App Gateway配置自定義健康探測(Health Probes), Host 為SCM域名(<appservicename>.scm.chinacloudsites.cn), Path 可以指向 /<appservicename>.git 或者是SCM的跟目錄 / 。
由於SCM站點的訪問時需要認證的,App Gateway發出的探測結果都是401 – Unauthorized 。所以就必須接受401是一個正確的探測結果才行。
以上三點配置完成後,可以回到Application Gateway的Backend Health頁面,查看後端池的健康狀態,只有當後端池狀態為Health時,才能成功訪問到後端,否則這會得到502頁面。
如果第三步中沒有配置 401為一個匹配的返回狀態,則 Backend Health的結果顯示為:
Received invalid status code: 401 in the backend server』s HTTP response. As per the health probe configuration, 200-399 is the acceptable status code. Either modify probe configuration or resolve backend issues.
當Application Gateway設置完成後,開始Local Git的部署驗證:
首先,複製出App Service Local Git Repository 的地址,把 HTTPS 改為 HTTP, 並用 Application Gateway的IP地址代替域名
然後,使用 git clone //<ip address>/<appservicename>.git,獲取原始庫中代碼
最後,使用 git commit / git push / git remote -v
Clone/Push截圖:
參考資料
使用應用程序網關配置應用服務://docs.azure.cn/zh-cn/application-gateway/configure-web-app?tabs=customdomain%2Cazure-portal
[END]