def get_free_replica_number()

in functions/source/UpdateDnsRecord/handler.py [0:0]


def get_free_replica_number():
  response = ec2.describe_instances(
    Filters=[
      { 'Name': 'instance-state-name', 'Values': [ 'running' ] },
      { 'Name': f'tag:{ENVIRONMENT_TAG_NAME}', 'Values': [ ENVIRONMENT_NAME ] },
      { 'Name': 'tag-key', 'Values': [ REPLICA_TAG_NAME ] }
    ]
  )

  reservations = response['Reservations']
  running_replicas = { get_replica_number(instance) for r in reservations for instance in r['Instances'] }
  print(f'running replicas: {running_replicas}')
  free_replicas =  ALL_REPLICAS.difference(running_replicas)
  print(f'free replicas: {free_replicas}')

  return next(iter(free_replicas))