本文介紹使用Serverless應用中心部署應用過程中,可能遇到的問題及解決方案。
環境運行狀態異常
可以查看運行狀態來定位環境失敗原因,通常情況下都是許可權問題或者配額不足導致。
流水線構建階段逾時
部署流水線失敗時,您可以通過查看日誌資訊來排查具體問題。如果遇到Error:Function timed out after 600 seconds
,通常是由於部署過程中下載依賴過慢導致的逾時。
預設流水線支援中國內地和海外兩個構建環境,其中Gitee、Codeup、GitLab的構建環境在華東1(杭州),GitHub的構建環境在新加坡。構建逾時時間是10分鐘,如果在中國內地構建環境,但是安裝依賴訪問海外Registry時下載速度會比較慢導致逾時。此時,有兩種方式可以解決逾時問題。
方式一:
安裝依賴時使用中國內地源或代理,例如:
使用清華源安裝Python依賴
pip install some-package -i https://pypi.tuna.tsinghua.edu.cn/simple
使用淘寶源安裝Node.js依賴
npm install some-package --registry https://registry.npmmirror.com
使用七牛代理安裝Golang
GOPROXY=https://goproxy.cn
方式二:
採用自訂流水線,將構建環境部署在中國香港,或者自訂構建逾時時間。使用自訂流水線會產生函數調用費用,具體資訊,請參見計費概述。
代碼提交後未觸發流水線執行
查看代碼倉庫的Webhook執行歷史,如果遇到500錯誤,請加入DingTalk使用者群(DingTalk群號:64970014484),聯絡Function Compute工程師即時溝通處理。
多個環境關聯同一個代碼分支,代碼提交後只有一個環境流水線執行
多個環境關聯同一個代碼分支時,由於使用相同代碼版本部署多個環境可能會導致不同環境的函數相互覆蓋,因此應用中心只允許一個環境的流水線被執行。如果您在使用中確實需要同時觸發多個環境,請加入DingTalk使用者群(DingTalk群號:64970014484)擷取支援人員。
為什麼每次應用中心的應用部署之後,對應函數的配置都變更了?
部署應用時,會按照程式碼程式庫裡的s.yaml檔案配置來更新函數,因此,應用部署完成後您在控制台上修改的配置均會被覆蓋。
為了避免您的函數配置被覆蓋,建議在程式碼程式庫的s.yaml檔案中修改配置。具體操作,請參見Service欄位。
為了更方便地使用,您還可以在通過控制台修改完函數配置後,在函數詳情頁的右上方,單擊匯出函數,然後選擇匯出配置匯出s.yaml檔案。您可以以此s.yaml檔案為參考,更新程式碼程式庫中的s.yaml檔案。
為什麼我的應用程式不能通過網域名稱訪問了?
****.devsapp.net
網域名稱是CNCF Sandbox專案Serverless Devs社區所提供,僅供學習和測試使用,不可用於任何生產使用。社區會對該網域名稱進行不定期地撥測,並在網域名稱下發30天后進行回收,建議您綁定自訂網域名以獲得更好的使用體驗。