¿Cómo puedo solucionar el error «Creation of service was not idempotent» que se produce al crear un nuevo servicio de Amazon ECS?

3 minutos de lectura
0

Cuando creo un nuevo servicio de Amazon Elastic Container Service (Amazon ECS), recibo el siguiente error: «Creation of service was not idempotent.»

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas de AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

El error nor idempotent se produce cuando se crea un servicio que tiene el mismo nombre que un servicio existente en la base de datos de Amazon ECS. Para solucionar este problema, tome las siguientes medidas.

Asegúrese de no usar un nombre de clúster existente

Si intenta crear un clúster con el mismo nombre que uno existente, se produce uno de los siguientes errores:

«InvalidParameterException: Creation of service was not idempotent.»

Alternativa:

«Invalid request provided: CreateService error: Create service is not idempotent.»

Para resolver el error, asegúrese de que no exista ningún servicio con el mismo nombre. Si ha eliminado recientemente un servicio que tenía el mismo nombre, compruebe que el estado del servicio sea ELIMINADO.

Nota: El error not idempotent puede producirse incluso si se elimina el clúster existente, ya que es posible que el clúster aún esté en la fase de eliminación.

Si el servicio está en estado de DESAPROVISIONAMIENTO, compruebe si alguna de las tareas del servicio está bloqueada en el desaprovisionamiento. Para ver el estado de todas las tareas del clúster, ejecute la API DescribeTasks API. O bien, siga estos pasos:

  1. Abra la consola de Amazon ECS.
  2. En el panel de navegación, seleccione Clústeres.
  3. Seleccione su clúster.
  4. Seleccione la pestaña Tareas.

Compruebe la llamada a la API UpdateService del servicio eliminado para comprobar si el servicio sigue activo. Además, consulte la llamada a la API Delete Service para ver el motivo «El servicio contiene instancias registradas; elimine las instancias antes de eliminar el servicio». Si la API Delete Service contiene este motivo, elimine la instancia.

Volver a crear el rol de IAM eliminado

Si utiliza un rol de AWS Identity and Access Management (IAM) para una tarea, primero debe eliminar la tarea antes de eliminar el rol. El rol de IAM debe estar disponible durante todo el ciclo de vida de la tarea. Esto incluye el desaprovisionamiento de recursos.

Si ha eliminado primero el rol de IAM, siga estos pasos para volver a crear el rol:

  1. Para obtener el nombre de rol de IAM anterior, ejecute el siguiente comando describe-services:
    aws ecs describe-services --cluster clustername --services servicename
    Nota: Sustituya clustername por el nombre del clúster y servicename por el nombre del servicio.
  2. Vuelva a crear el rol de IAM con el mismo nombre. Para obtener información sobre los permisos necesarios, consulte Permisos de roles vinculados a servicios de Amazon ECS.

Nota: Para obtener información sobre el usuario que eliminó el rol, consulte el evento DeleteRole de AWS CloudTrail.

Creación de un nuevo servicio con otro nombre

Si sigue sin poder crear un servicio con el mismo nombre que el servicio eliminado, cree uno nuevo con otro nombre.

Información relacionada

CreateService

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un mes