全部產品
Search
文件中心

CloudOps Orchestration Service:常見問題

更新時間:Sep 05, 2025

本文匯總了使用OOS的常見問題及對應的解決方案。

RAM使用者操作報錯:User has no permission to do the action: (ListTemplates)

  • 可能原因:RAM使用者權限不夠,不能執行OOS的指定API。

  • 解決方案:以管理員或者阿里雲帳號(主帳號)身份,登入RAM控制台,對報錯的RAM使用者進行適當授權,授權範圍可以是相關API,也可是所有API,下面範例"Action": "oos:*"則是對所有API授權,詳情請參見賬戶存取控制

    {
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "oos:*",
              "Resource": "*"
          }
      ],
      "Version": "1"
    }

RAM使用者操作報錯:User has no permission to do the action: (PassRole)

  • 可能原因:RAM使用者沒有PassRole許可權,不能以指定的Role執行CloudOps Orchestration Service

  • 解決方案:以管理員或者阿里雲帳號身份,在RAM控制台,對RAM使用者做適當的PassRole授權,參見賬戶存取控制

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ram:PassRole",
          "Resource": "*"
        }
      ]
    }

執行模板報錯: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角色並授權

    1. 登入RAM控制台,在角色中輸入OOSServiceName進行搜尋。

    2. 單擊信任策略

    3. 修改信任策略。

      將信任策略修改為如下內容:

      {
        "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

臨時頻寬升級報錯: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

  • 可能原因:臨時寬頻升級頻寬不能低於已有頻寬。

  • 解決方案

    1. OOS概覽頁使用ECS執行個體ID查看是否有其他重複的自動升級頻寬任務。image

    2. 如果有重複任務請手動取消。

    3. 如果未查詢到重複執行,請在ECS執行個體操作記錄中查看頻寬升級的日誌。image

臨時頻寬升級報錯: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。

  • 解決方案:通過查看任務執行詳情中子執行的輸出和日誌來排查執行命令失敗的原因。image

感覺有執行操作資源但是找不到執行

  • 可能原因:在其他地區存在任務。

  • 解決方案:通過概覽頁能看到所有地區的執行。image

執行命令常見錯誤

解決方案:更多資訊,請參見查看執行結果及修複常見問題

從Git代碼倉庫構建和部署應用時失敗

  • 可能原因:例如代碼錯誤、依賴項安裝失敗等,您可以通過查看日誌擷取應用構建和部署失敗的具體原因。

  • 解決方案

    • 構建應用失敗

      說明

      從Git代碼倉庫構建應用失敗時不會建立Elastic Compute Service,也不會產生其他費用。

      1. 查看日誌擷取構建失敗的錯誤資訊。

        查看日誌

      2. 修改代碼或增加設定檔。

        根據您的代碼倉庫的程式設計語言,修改代碼或增加設定檔,並提交到代碼倉庫。更多資訊,請參見基於特定程式設計語言的應用配置

      3. 刪除構建失敗的應用分組,重新建立新應用分組。

    • 部署應用失敗

      1. 查看日誌擷取部署失敗的錯誤資訊。

      2. 修複問題後繼續部署應用。

        重新部署

    • 部署應用成功但無法訪問應用服務

      1. 排除應用啟動延遲因素。

        應用部署成功後請稍等片刻再次訪問應用。如果非啟動延遲原因導致訪問失敗,繼續執行下一步。

      2. 登入雲端服務器後執行以下命令,查看應用服務是否正常啟動。

        sudo systemctl status aliyun-applicationmanager
        • 正常啟動:繼續執行下一步。

        • 未正常啟動:根據系統服務日誌,排查docker run命令失敗的原因。

      3. 查看容器日誌。

        # 尋找docker容器
        sudo docker ps -a | grep applicationmanager
        # 查看容器日誌
        sudo docker logs applicationmanager

        如果Docker容器未啟動,根據代碼倉庫的程式設計語言,修改代碼或增加設定檔,並提交至代碼倉庫。更多資訊,請參見基於特定程式設計語言的應用配置

      4. 在應用概覽頁簽下的快捷操作地區,單擊更新應用程式,使用更新後的代碼重新部署應用。

    • 其他情境

      • 為了快速且成功地構建和部署應用,建議您在本地進行Buildpacks構建的調試。具體操作,請參見本地調試Buildpacks構建

      • 通過以上方法還是無法自行解決問題,請提交工單,或加入應用管理支援DingTalk群(10880003624)反饋問題。

DescribeInstances介面報錯SDK.UnknownServerError或InvaliParameter

  • 報錯原因:DescribeInstances介面傳入執行個體數量大於100會報錯InvaliParameter或SDK.UnknownServerError(414 Request-URI Too Large)。

  • 解決方案

      推薦使用selectTargets (將代碼塊1改為代碼塊2)

    •   - 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

執行的指令碼中的內容和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下載下來再執行即可