Estoy usando AWS Javascript SDK para crear un clúster y registrar la instancia del contenedor para la tarea de ECS. Me llamó la atención proporcionar el valor del documento de identidad de la instancia para los parámetros de la solicitud. Estoy tratando de registrar mi instancia EC2 en ejecución como instancia de contenedor. Obtuve el documento de identidad de la instancia ejecutando el siguiente comando curl .
curl http://169.254.169.254/latest/dynamic/instance-identity/document/
Producción:
{ "accountId" : "01234567891", "architecture" : "x86_64", "availabilityZone" : "us-east-11", "billingProducts" : null, "devpayProductCodes" : null, "marketplaceProductCodes" : null, "imageId" : "ami-123456789012d", "instanceId" : "i-12345678901", "instanceType" : "t2.micro", "kernelId" : null, "pendingTime" : "2020-07-12T15:57:19Z", "privateIp" : "172.31.33.40", "ramdiskId" : null, "region" : "us-east-1", "version" : "2017-09-30" }He convertido la salida en una cadena, pero recibo un error en el código de NodeJS.
{ InvalidParameterException: An identity document was provided, but not valid.
message: 'The identity document and identity document signature were not valid.', code: 'InvalidParameterException', time: 2020-07-14T07:30:59.782Z, requestId: '7bca816f-8c8f-4e6e-8e77-04c93b45c17e', statusCode: 400, retryable: false, retryDelay: 68.57527460306602 } 'InvalidParameterException: The identity document and identity document signature were not valid.\n ¿Tenemos que ejecutar la API registerContainerInstances desde una instancia EC2?
Por favor guía!!!
He solucionado el problema. Utilice EC2 SDK para lanzar una instancia con ECS AMI Image y agregue el siguiente script en los datos del usuario.
#!/bin/bash echo "ECS_CLUSTER=YOUR_CLUSTER_NAME" >> /etc/ecs/ecs.config El código anterior se registrará en el clúster de ECS especificado. No es necesario utilizar la API de registerContainerInstances . Sería genial si AWS elimina esta API de la referencia de la API.