Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

752
Vistas
AWS Fargate: cómo obtener la dirección IP pública de la tarea mediante python boto3

Estoy creando una nueva tarea de Fargate usando la siguiente secuencia de comandos de Python.

 import boto3 import json def handler(): client = boto3.client('ecs') response = client.run_task( cluster='fargate-learning', # name of the cluster launchType = 'FARGATE', taskDefinition='fargate-learning:1', # replace with your task definition name and revision count = 1, platformVersion='LATEST', networkConfiguration={ 'awsvpcConfiguration': { 'subnets': [ 'subnet-0a024d8ac87668b64', # replace with your public subnet or a private with NAT ], 'assignPublicIp': 'ENABLED' } }) print(response) return str(response) if __name__ == '__main__': handler()

Y aquí está la respuesta que recibo de boto3.

https://jsonblob.com/5faf3ae6-bc31-11ea-8cae-53bd90c38587

No puedo ver la dirección IP pública en respuesta, aunque el script asigna la dirección IP pública y puedo verla en el sitio web.

dirección ip de aws fargate

Entonces, ¿cómo puedo obtener esta dirección IP pública usando boto3?

Gracias

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Esto se puede hacer en dos pasos :

  1. Use describe_tasks para obtener la identificación ENI asociada con su interfaz fargate awsvpc . El valor de eni, por ejemplo, eni-0c866df3faf8408d0 , se dará en attachments y los details del resultado de la llamada.

  2. Una vez que tenga el eni, puede usar EC2.NetworkInterface . Por ejemplo:

 eni_id = 'eni-0c866df3faf8408d0' # from step 1 eni = boto3.resource('ec2').NetworkInterface(eni_id) print(eni.association_attribute['PublicIp'])
over 4 years ago · Santiago Trujillo Denunciar

0

Intenté implementar las respuestas de @Marcin como una función. Espero que esto puede ser útil

 def get_service_ips(cluster, tasks): tasks_detail = ecs.describe_tasks( cluster=cluster, tasks=tasks ) # first get the ENIs enis = [] for task in tasks_detail.get("tasks", []): for attachment in task.get("attachments", []): for detail in attachment.get("details", []): if detail.get("name") == "networkInterfaceId": enis.append(detail.get("value")) # now the ips ips = [] for eni in enis: eni_resource = boto3.resource("ec2").NetworkInterface(eni) ips.append(eni_resource.association_attribute.get("PublicIp")) return ips

como esenciaaquí .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda