對搭配共用 AWS Cloud Map 命名空間使用 Amazon ECS Service Connect 的問題進行疑難排解
使用下列資訊,對共用 AWS Cloud Map 命名空間與 Service Connect 的相關問題進行疑難排解。如需有關尋找錯誤訊息的詳細資訊,請參閱 Amazon ECS 疑難排解。
因缺少許可或撤銷命名空間存取權,会顯示與許可問題相關的錯誤訊息。
重要
必須使用 AWSRAMPermissionCloudMapECSFullPermission 受管許可來共用命名空間,Service Connect 才能在命名空間正常運作。
錯誤訊息會以下列其中一種格式顯示:
An error occurred (ClientException) when calling the <OperationName> operation: User: arn:aws:iam::<account-id>:user/<user-name> is not authorized to perform: <ActionName> on resource: <ResourceArn> because no resource-based policy allows the <ActionName> action
下列案例可能會導致此格式的錯誤訊息:
- 叢集建立或更新失敗
-
當 Amazon ECS 操作 (例如
CreateCluster或UpdateCluster) 因缺少 AWS Cloud Map 許可而失敗時,會出現這些問題。這些操作需要下列 AWS Cloud Map 動作的許可:-
servicediscovery:GetNamespace
確保取用者帳戶已接受資源共用邀請,且在 Service Connect 組態中使用了正確的命名空間 ARN。
-
- 服務建立或更新失敗
-
當 Amazon ECS 操作 (例如
CreateService或UpdateService) 因缺少 AWS Cloud Map 許可而失敗時,會出現這些問題。這些操作需要下列 AWS Cloud Map 動作的許可:-
servicediscovery:CreateService -
servicediscovery:GetNamespace -
servicediscovery:GetOperation(用於建立新的 AWS Cloud Map 服務) -
servicediscovery:GetService(用於 AWS Cloud Map 服務已存在時)
確保取用者帳戶已接受資源共用邀請,且在 Service Connect 組態中使用了正確的命名空間 ARN。
-
ListServicesByNamespace操作失敗-
當 Amazon ECS
ListServicesByNamespace操作失敗時,會發生此問題。此操作需要下列 AWS Cloud Map 動作的許可:-
servicediscovery:GetNamespace
若要解決此問題:
-
確認取用者帳戶具有
servicediscovery:GetNamespace許可。 -
呼叫 API 時使用命名空間 ARN,而不是名稱。
-
確保資源共用處於作用中狀態,且已接受邀請。
-
User: <iam-user> is not authorized to perform: <ActionName> on resource: <ResourceArn> with an explicit deny in an identity-based policy.
下列案例可能會導致此格式的錯誤訊息:
- 服務刪除失敗並停滯在
DRAINING狀態 -
當 Amazon ECS
DeleteService操作因撤銷命名空間存取權而缺少servicediscovery:DeleteService許可時,會發生此問題。服務最初可能看起來已成功刪除,但會停滯在DRAINING狀態。錯誤訊息會顯示為 Amazon ECS 服務事件。若要解決此問題,命名空間擁有者必須與取用者帳戶共用命名空間,才能完成服務刪除。
- 服務中的任務執行失敗
-
當任務因缺少許可而啟動失敗時,會發生此問題。錯誤訊息會顯示為已停止的任務錯誤。如需更多詳細資訊,請參閱 解決 Amazon ECS 已停止任務錯誤。
執行任務需要執行下列 AWS Cloud Map 動作:
-
servicediscovery:GetOperation -
servicediscovery:RegisterInstance
確保取用者帳戶具有所需許可,並且可以存取共用命名空間。
-
- 任務無法完全停止或停滯在
DEACTIVATING或DEPROVISIONING狀態 -
當任務在關閉期間因缺少許可而無法從 AWS Cloud Map 服務取消註冊時,會發生此問題。錯誤會在任務附件中顯示為
statusReason,可使用DescribeTasksAPI 擷取附件。如需詳細資訊,請參閱 Amazon Elastic Container Service API Reference 中的 DescribeTasks。停止任務需要執行下列 AWS Cloud Map 動作:
-
servicediscovery:DeregisterInstance -
servicediscovery:GetOperation
如果撤銷共用命名空間存取權,任務可能會保持
DEACTIVATING或DEPROVISIONING狀態,直到命名空間存取權還原。需請求命名空間擁有者還原命名空間的存取權。 -