es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible obtener Aws Rds DbInstances por etiquetas?

Entonces, estoy usando la API de Java: AWS SDK – 2.17 (v2)

API_DescribeDBInstances

Hay un par de filtros predeterminados, pero quiero usar mi propio filtro creado por TAG.

Por ejemplo, puedo usar Filtro por etiqueta para recuperar las instancias EC2, pero no entiendo cómo hacerlo para DbInstances.

Esto no funciona

  Filter filter = Filter.builder().name("TAG_NAME").values("TAG_VALUE").build();
  DescribeDbInstancesRequest request = DescribeDbInstancesRequest.builder()
          .filters(filter)
          .build();
  DescribeDbInstancesResponse response = amazonRDS.describeDBInstances(request);

Pero el código muy similar funciona para las instancias de EC2 (API v1)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para filtrar las instancias de la base de datos en Amazon RDS utilizando etiquetas, puedes utilizar la API DescribeDBInstances con un filtro que especifique el nombre y el valor de la etiqueta. Aquí tienes un ejemplo en Java utilizando la versión 2.17 del AWS SDK:

    import software.amazon.awssdk.services.rds.RdsClient;
    import software.amazon.awssdk.services.rds.model.*;
    
    public class FilterDbInstancesWithTags {
    
        public static void main(String[] args) {
    
            RdsClient rdsClient = RdsClient.create();
    
            Filter filter = Filter.builder()
                    .name("tag:Environment")
                    .values("Production")
                    .build();
    
            DescribeDbInstancesRequest request = DescribeDbInstancesRequest.builder()
                    .filters(filter)
                    .build();
    
            DescribeDbInstancesResponse response = rdsClient.describeDBInstances(request);
    
            for (DBInstance instance : response.dbInstances()) {
                System.out.printf("Instancia: %s (%s)%n", instance.dbInstanceIdentifier(), instance.dbInstanceClass());
            }
    
            rdsClient.close();
        }
    }
    

    En este ejemplo, creamos un objeto de filtro con el nombre “tag:Environment” y el valor “Production”, lo que significa que estamos filtrando por la etiqueta “Environment” con el valor “Production”. Puedes reemplazar estos valores con el nombre y el valor de tu propia etiqueta.

    Luego creamos un objeto de solicitud con el filtro y llamamos al método describeDBInstances() en el cliente de Amazon RDS, que devuelve un objeto de respuesta con todas las instancias de la base de datos que coinciden con el filtro.

    Finalmente, iteramos sobre la lista de instancias de la base de datos e imprimimos sus identificadores y clases.

    Ten en cuenta que necesitas tener permiso para llamar a la API rds:DescribeDBInstances y acceder a las instancias de la base de datos que coinciden con el filtro.

Comments are closed.