本文匯總了使用OOS的常見問題及對應的解決方案。
RAM使用者操作報錯:User has no permission to do the action: (ListTemplates)
RAM使用者操作報錯:User has no permission to do the action: (PassRole)
臨時頻寬升級報錯:code: OperationDenied.UnpaidOrder message: The specified instance has unpaid order
執行的指令碼中的內容和OOS參數定義格式相同,需要原樣輸出"table {{.Name}}\t{{.MemUsage}}"的內容解決方案
RAM使用者操作報錯:User has no permission to do the action: (ListTemplates)
RAM使用者操作報錯:User has no permission to do the action: (PassRole)
執行模板報錯:Assumes role failed. Code: EntityNotExist.Role, msg: The role not exists: acs:ram::111111:role/OOSServiceRole
可能原因:沒有為OOS服務建立預設的RAM角色。
解決方案:阿里雲帳號或者管理員登入RAM控制台>的RAM存取控制,增加對應的RAM角色OOSServiceRole。具體操作,請參見為OOS服務設定RAM角色並授權。
執行模板報錯:Assumes role failed. Code: NoPermission, msg: You are not authorized to do this action. You should be authorized by RAM
可能原因: 對應的RAM角色沒有給OOS服務配置信任策略。
解決方案:阿里雲帳號或者管理員登入RAM控制台的RAM存取控制,增加對應的RAM角色OOSServiceRole,具體操作,請參見為OOS服務設定RAM角色並授權。
登入RAM控制台,在角色中輸入
OOSServiceName進行搜尋。
單擊信任策略。

修改信任策略。

將信任策略修改為如下內容:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "oos.aliyuncs.com" ] } } ], "Version": "1" }
執行模板報錯:Code: Forbidden.RAM, Message: User not authorized to operate on the specified resource, or this API doesn't support RAM
可能原因:RAM使用者或RAM角色沒有操作對應資源的許可權。
臨時頻寬升級報錯:code: InvalidAccountStatus.NotEnoughBalance message: Your account does not have enough balance
可能原因:賬戶餘額不足,導致新訂單無法完成交易。
解決方案:為帳號儲值後重試。
臨時頻寬升級報錯:code: InvalidBandwidth.ValueNotSupported message: Instance upgrade bandwidth of temporary not allow less then existed
可能原因:臨時寬頻升級頻寬不能低於已有頻寬。
解決方案:
在OOS概覽頁使用ECS執行個體ID查看是否有其他重複的自動升級頻寬任務。

如果有重複任務請手動取消。
如果未查詢到重複執行,請在ECS執行個體操作記錄中查看頻寬升級的日誌。

臨時頻寬升級報錯:code: OperationDenied.UnpaidOrder message: The specified instance has unpaid order
可能原因:目標ECS執行個體有未支付的訂單。
解決方案:支付ECS的訂單。
執行命令常見錯誤:runCommand loop task fail because failures exceeded MaxErrors -> runCommand execution failed, checkInvocationResult Invocation.InvocationResults.InvocationResult[].ExitCode expect in [0] but is 1
可能原因:執行雲助手命令的exitcode非0。
解決方案:通過查看任務執行詳情中子執行的輸出和日誌來排查執行命令失敗的原因。

感覺有執行操作資源但是找不到執行
可能原因:在其他地區存在任務。
解決方案:通過概覽頁能看到所有地區的執行。

執行命令常見錯誤
解決方案:更多資訊,請參見查看執行結果及修複常見問題。
從Git代碼倉庫構建和部署應用時失敗
可能原因:例如代碼錯誤、依賴項安裝失敗等,您可以通過查看日誌擷取應用構建和部署失敗的具體原因。
解決方案:
構建應用失敗
說明從Git代碼倉庫構建應用失敗時不會建立Elastic Compute Service,也不會產生其他費用。
查看日誌擷取構建失敗的錯誤資訊。

修改代碼或增加設定檔。
根據您的代碼倉庫的程式設計語言,修改代碼或增加設定檔,並提交到代碼倉庫。更多資訊,請參見基於特定程式設計語言的應用配置。
刪除構建失敗的應用分組,重新建立新應用分組。
部署應用失敗
查看日誌擷取部署失敗的錯誤資訊。
修複問題後繼續部署應用。

部署應用成功但無法訪問應用服務
排除應用啟動延遲因素。
應用部署成功後請稍等片刻再次訪問應用。如果非啟動延遲原因導致訪問失敗,繼續執行下一步。
登入雲端服務器後執行以下命令,查看應用服務是否正常啟動。
sudo systemctl status aliyun-applicationmanager正常啟動:繼續執行下一步。
未正常啟動:根據系統服務日誌,排查
docker run命令失敗的原因。
查看容器日誌。
# 尋找docker容器 sudo docker ps -a | grep applicationmanager # 查看容器日誌 sudo docker logs applicationmanager如果Docker容器未啟動,根據代碼倉庫的程式設計語言,修改代碼或增加設定檔,並提交至代碼倉庫。更多資訊,請參見基於特定程式設計語言的應用配置。
在應用概覽頁簽下的快捷操作地區,單擊更新應用程式,使用更新後的代碼重新部署應用。
其他情境
為了快速且成功地構建和部署應用,建議您在本地進行Buildpacks構建的調試。具體操作,請參見本地調試Buildpacks構建。
通過以上方法還是無法自行解決問題,請提交工單,或加入應用管理支援DingTalk群(
10880003624)反饋問題。
DescribeInstances介面報錯SDK.UnknownServerError或InvaliParameter
報錯原因:DescribeInstances介面傳入執行個體數量大於100會報錯InvaliParameter或SDK.UnknownServerError(414 Request-URI Too Large)。
解決方案:
- Name: getInstanceDescribe Action: ACS::ExecuteAPI Description: en: Query instance type zh-cn: 擷取執行個體規格資訊 Properties: Service: ECS API: DescribeInstances Parameters: InstanceIds: Fn::Jq: - All - .[].InstanceId - '{{ getInstance.instanceIds }}' Outputs: instanceIds: Type: List ValueSelector: Instances.Instance[].InstanceId- Name: getInstanceDescribe Description: en: Views the ECS instances. zh-cn: 擷取ECS執行個體詳情 Action: ACS::SelectTargets Properties: ResourceType: ALIYUN::ECS::Instance Filters: - Type: ResourceIds ResourceIds: Fn::Jq: - All - .[].InstanceId - '{{ getInstance.instanceIds }}' Outputs: instanceIds: Type: List ValueSelector: Instances.Instance[].InstanceId
推薦使用selectTargets (將代碼塊1改為代碼塊2)
執行的指令碼中的內容和OOS參數定義格式相同,需要原樣輸出"table {{.Name}}\t{{.MemUsage}}"的內容解決方案
如您想在命令中原樣執行
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}" | sort -k2 -hr | head -n 6
其中"table {{.Name}}\t{{.MemUsage}}", {{}} 這種格式模板會認為是變數,然後作為變數解析導致問題
解決方案:可以將命令修改為
left="{{" right="}}" docker stats --no-stream --format "table ${left}.Name${right} ${left}.MemUsage${right}" | sort -k2 -hr | head -n 6
執行雲助手命令報錯414 Request-URI Too Large文本超長解決方案
造成原因:是因為命令太長了,雲助手命令最長Base64編碼後不能超過24KB
解決方案:可以把命令放到oss 裡,然後ossutil下載下來再執行即可