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.

Lista de tipos de instancias disponibles de AWS RDS con go SDK.

Estoy tratando de listar todos los tipos de instancias disponibles que puedo crear para un motor de base de datos dado (postgres/mysql). Esto actualmente es posible utilizando el cli de aws con el siguiente comando:

aws rds describe-orderable-db-instance-options --engine mysql

Se pueden ver más opciones en esta página de documentación: describe-orderable-db-instance-options

Sin embargo, cuando intento lograr lo mismo con el aws go-sdk, no puedo encontrar ninguna función similar que pueda brindarme la lista de instancias disponibles. La documentación se puede consultar aquí: https://pkg.go.dev/github.com/aws/aws-sdk-go/service/rds

No me interesa intentar listar las instancias provisionadas y examinar sus tipos de instancia. En cambio, esto se supone que es un paso previo a la provisión que me permite elegir los tipos de instancia disponibles.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para listar todos los tipos de instancia disponibles para un motor de base de datos determinado utilizando la biblioteca aws-sdk-go, puedes utilizar la estructura DescribeOrderableDBInstanceOptionsInput y la función DescribeOrderableDBInstanceOptions del paquete rds. Aquí tienes un ejemplo de código para listar los tipos de instancia disponibles para el motor MySQL:

    paquete principal
    
    import (
        "fmt"
        "log"
    
        "github.com/aws/aws-sdk-go/aws"
        "github.com/aws/aws-sdk-go/aws/session"
        "github.com/aws/aws-sdk-go/service/rds"
    )
    
    func main() {
        // Crear una nueva sesión de AWS
        sess, err := session.NewSession(&aws.Config{
            Región: aws.String("us-east-1"),
        })
        if err != nil {
            log.Fatal(err)
        }
    
        // Crear un nuevo cliente de servicio RDS
        svc := rds.New(sess)
    
        // Especificar los parámetros de entrada de DescribeOrderableDBInstanceOptionsInput
        input := &rds.DescribeOrderableDBInstanceOptionsInput{
            Moteur: aws.String("mysql"),
        }
    
        // Llamar a la función DescribeOrderableDBInstanceOptions para obtener los tipos de instancia disponibles
        resp, err := svc.DescribeOrderableDBInstanceOptions(input)
        if err != nil {
            log.Fatal(err)
        }
    
        // Imprimir los tipos de instancia disponibles
        for _, opt := range resp.OrderableDBInstanceOptions {
            fmt.Println(*opt.Moteur, *opt.DBInstanceClass)
        }
    }
    

    En el código anterior, primero creamos una nueva sesión de AWS y un cliente de servicio RDS. Luego creamos una estructura DescribeOrderableDBInstanceOptionsInput y especificamos el parámetro Engine como mysql. Luego llamamos a la función DescribeOrderableDBInstanceOptions con la estructura de entrada y obtenemos la respuesta, que contiene una lista de estructuras OrderableDBInstanceOption, cada una representando un tipo de instancia disponible para el motor de base de datos especificado. Luego recorremos la lista e imprimimos los campos Engine y DBInstanceClass de cada OrderableDBInstanceOption.

Comments are closed.