このトピックでは、CloudOps Orchestration Service (OOS) の使用に関するよくある質問 (FAQ) への回答を提供します。
DescribeInstances API 操作エラー: SDK.UnknownServerError または InvalidParameter
スクリプトコンテンツが OOS パラメーター定義フォーマットと一致する場合に、「table {{.Name}}\t{{.MemUsage}}」というコンテンツをそのまま出力するためのソリューション
RAM ユーザーの操作エラー: User has no permission to do the action: (ListTemplates)
考えられる原因:RAM ユーザーに操作を呼び出す権限がありません。
解決策: 管理者または Alibaba Cloud アカウントを使用して RAM コンソールにログインします。エラーを報告した RAM ユーザーに必要な権限を付与します。特定の API 操作またはすべての API 操作に対する権限を付与できます。たとえば、
"Action": "oos:*"は、すべての OOS API 操作に対する権限を付与します。詳細については、「アクセスコントロール」をご参照ください。{ "Statement": [ { "Effect": "Allow", "Action": "oos:*", "Resource": "*" } ], "Version": "1" }
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 サービスが Alibaba Cloud リソースにアクセスするためのデフォルトの RAM ロールを作成していません。
解決策:Alibaba Cloud アカウントまたは管理者アカウントで RAM コンソール にログオンします。OOS サービスのデフォルトの RAM ロール OOSServiceRole を作成します。詳細については、「OOS に RAM 権限を付与する」をご参照ください。
テンプレート実行エラー: ロールの引き受けに失敗しました。コード: NoPermission、メッセージ: この操作を実行する権限がありません。RAM による承認が必要です。
考えられる原因:OOS サービスの RAM ロール OOSServiceRole に必要な信頼ポリシーをアタッチしていません。
解決策: Alibaba Cloud アカウントまたは管理者アカウントを使用して RAM コンソールにログインし、OOSServiceRole RAM ロールを追加します。詳細については、「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 ロールに、指定されたリソースにアクセスするための権限がありません。
解決策:RAM ユーザーまたは RAM ロールに必要な権限を付与します。詳細については、「テンプレートの実行に必要な 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 コンソールの [概要] ページで、Elastic Compute Service(ECS)インスタンス ID に基づいて一時的な帯域幅のアップグレードタスクを検索します。重複したアップグレードタスクが存在するかどうかを確認します。

重複したアップグレードタスクが存在する場合は、そのタスクを削除します。
このような重複したスペックアップタスクが存在しない場合は、ECS コンソールに移動します。左側のナビゲーションウィンドウで、インスタンスをクリックします。インスタンスページで、クエリするインスタンスの名前または ID をクリックします。[操作履歴] タブでスペックアップログを表示します。
一時的な帯域幅のスペックアップエラー: code: OperationDenied.UnpaidOrder message: The specified instance has unpaid order
考えられる原因:管理する ECS インスタンスに 1 つ以上の未払い請求があります。
解決策:注文の支払いを完了します。
一般的なコマンド実行エラー: runCommand loop task fail because failures exceeded MaxErrors -> runCommand execution failed, checkInvocationResult Invocation.InvocationResults.InvocationResult[].ExitCode expect in [0] but is 1
考えられる原因:クラウドアシスタントコマンドの終了コードが 0 ではありません。
解決策:サブ実行の出力とログを表示して、エラーのトラブルシューティングを行います。詳細については、「実行の詳細を表示する」をご参照ください。

実行を作成したのに見つからない場合はどうすればよいですか?
考えられる原因:実行が別のリージョンにあります。
解決策:概要 ページですべてのリージョンにおける実行を表示します。

コマンドエラーのトラブルシューティング方法は?
解決策:「実行結果を確認し、一般的な問題のトラブルシューティングを行う」をご参照ください。
Git コードリポジトリからアプリケーションのビルドとデプロイに失敗した場合、どうすればよいですか?
考えられる原因:コードエラーと依存関係のインストールの失敗。ログを表示して、アプリケーションのビルドとデプロイの失敗の原因を確認できます。
解決策:
ビルドの失敗
説明Git コードリポジトリからアプリケーションをビルドできない場合、ECS インスタンスは作成されず、課金もされません。
ログを表示して、ビルドの失敗に関するエラーメッセージを取得します。

コードを変更するか、構成ファイルを追加します。
コードリポジトリのプログラミング言語に基づいてコードを変更するか、構成ファイルを追加し、コードリポジトリに送信します。詳細については、「特定のプログラミング言語に基づいてアプリケーションを構成する」をご参照ください。
ビルドに失敗したアプリケーショングループを削除し、新しいアプリケーショングループを作成します。
デプロイの失敗
ログを表示して、デプロイの失敗に関するエラーメッセージを取得します。
問題を修正し、アプリケーションを再度デプロイします。

アプリケーションのデプロイが成功した後、サービスにアクセスできない
アプリケーションの起動遅延を除外します。
アプリケーションがデプロイされた後、しばらく待ってからアプリケーションに再度アクセスします。それでもサービスにアクセスできない場合は、次の手順に進みます。
ECS インスタンスにログオンし、次のコマンドを実行して、アプリケーションサービスが開始されているかどうかを確認します。
sudo systemctl status aliyun-applicationmanagerサービスが開始されている場合は、次の手順に進みます。
サービスが正常に開始されていない場合は、システムサービスログを確認して
docker runコマンドの失敗の原因を特定します。
コンテナログを表示する
# Docker コンテナを検索します。 sudo docker ps -a | grep applicationmanager # コンテナログを表示します。 sudo docker logs applicationmanagerDocker コンテナが開始されていない場合は、コードリポジトリのプログラミング言語に基づいてコードを変更するか、構成ファイルを追加し、コードをコードリポジトリに送信します。詳細については、「特定のプログラミング言語に基づいてアプリケーションを構成する」をご参照ください。
[概要] タブの [クイックアクション] セクションで、[アプリケーションの更新] をクリックします。次に、更新されたコードを使用してアプリケーションを再度デプロイします。
一般的なシナリオ
アプリケーションを迅速かつ正常にビルドおよびデプロイするには、オンプレミスマシンで Buildpacks ビルドをデバッグすることをお勧めします。詳細については、「Buildpacks のデバッグ」をご参照ください。
これらの方法で問題を解決できない場合は、チケットを送信するか、アプリケーション管理サポートの DingTalk グループ (ID:
10880003624) に参加してフィードバックを提供してください。
DescribeInstances API 操作エラー: SDK.UnknownServerError または InvalidParameter
原因: DescribeInstances API 操作に 100 を超えるインスタンス ID を渡すと、InvalidParameter または SDK.UnknownServerError (414 Request-URI Too Large) エラーが報告されます。
解決策:
- Name: getInstanceDescribe Action: ACS::ExecuteAPI Description: en: インスタンスタイプをクエリします 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: 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 でエンコードされた後のクラウドアシスタントコマンドの最大長は 24 KB です。
詳細については、「RunCommand - クラウドアシスタントコマンドの作成と実行」をご参照ください。
解決策: コマンドを Object Storage Service (OSS) オブジェクトに配置します。次に、ossutil を使用してオブジェクトをダウンロードして実行します。