Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

756
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda