1
resposta

[Dúvida] erro com o metodo .engine no rds

estou com problemas ao tentar criar uma instancia de banco de dados por conta de um erro no codigo que apesar de pesquisar bastante não consegui achar uma solução, a mensagem que erro que aparece sob o metodo .engine é Cannot resolve method 'engine' in 'Builder, estava com o mesmo erro com o instance identifier até que troquei para dbinstance name, então imagino que para o engine haja uma solução semelhante mas não consegui encontrar.

package com.myorg;

import software.amazon.awscdk.SecretValue;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awscdk.services.docdb.DatabaseInstance;
import software.amazon.awscdk.services.ec2.*;

import software.amazon.awscdk.services.ec2.InstanceType;

import software.amazon.awscdk.services.rds.*;
import software.amazon.awscdk.services.ssm.CfnParameter;
import software.constructs.Construct;


import java.util.Collections;

// import software.amazon.awscdk.Duration;
// import software.amazon.awscdk.services.sqs.Queue;

public class AluraRdsStack extends Stack {
    public AluraRdsStack(final Construct scope, final String id, final Vpc vpc) {
        this(scope, id, null, vpc);
    }

    public AluraRdsStack(final Construct scope, final String id, final StackProps props, final Vpc vpc) {
        super(scope, id, props);

        CfnParameter senha = CfnParameter.Builder.create ( this,  "senha")
        .type("String")
                .description("Senha do database pedidos-ms")
                .build();

        ISecurityGroup iSecurityGroup = SecurityGroup.fromSecurityGroupId( this, id, vpc.getVpcDefaultSecurityGroup());
        iSecurityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp( 3306));

        

        DatabaseInstance database = DatabaseInstance.Builder
                .create( this,  "Rds-pedidos")
                .dbInstanceName("alura-aws-pedido-db")
                .engine(DatabaseInstanceEngine.mysql(MySqlInstanceEngineProps.builder()
                        .version(MysqlEngineVersion.VER_8_0)
                        .build()))
                .vpc(vpc)
                .credentials(Credentials.fromUsername("admin",
                CredentialsFromUsernameOptions.builder()
                        .password(SecretValue.unsafePlainText(senha.getValueAsString()))
                        .build()))
                .instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.MICRO))
                .multiAz(false)
                .allocatedStorage(10)
                .securityGroups(Collections.singletonList(iSecurityGroup))
                .vpcSubnets(SubnetSelection.builder()
                        .subnets(vpc.getPrivateSubnets())
                        .build())
                .build();
    }
}
1 resposta

Oi, Rommel, tudo bem?

Esse erro pode estar ocorrendo por diversos motivos, mas uma possível solução seria verificar se a classe Builder está importada corretamente e se o método "engine" realmente existe na classe AluraRdsStack.

Caso o problema persista, pode ser necessário verificar se as versões das dependências do projeto estão conforme as utilizada no curso.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!