問題現象
當我在本地使用Windows作業系統或是macOS作業系統開發函數時,可執行檔在本地測試正常,但當我將函數部署到Function Compute運行時,出現permission denied報錯。
可能原因
由於在開發函數的過程中需要打包代碼,在打包代碼時,Windows作業系統和macOS作業系統中有些壓縮公用程式在打包檔案時可能會丟失檔案或檔案夾的屬性。由於檔案或檔案夾的屬性已丟失,檔案已不具備可執行許可權,代碼再次在Function Compute的運行環境(Linux)中解壓部署運行時,就會遇到permission denied報錯。
解決方案
請確保您的壓縮公用程式保留了檔案或檔案夾的Others許可權,例如755許可權。當您的檔案或檔案夾不具備該類似許可權時,您可以選擇以下方法解決:
- 在Function Compute的運行環境(Linux)中執行
chmod +x 檔案名稱命令賦予許可權。 - 在本地開發函數時,使用Linux作業系統開發。