Maven:
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>config2</artifactId>
<version>2.17.64</version>
</dependency>
Gradle:
groovy
implementation 'software.amazon.awssdk:config2:2.17.64'
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.config.ConfigClient;
import software.amazon.awssdk.services.config.model.*;
public class ConfigConnector {
private ConfigClient configClient;
public ConfigConnector() {
configClient = ConfigClient.builder()
.credentialsProvider(DefaultCredentialsProvider.create())
.region(REGION)
.build();
}
public void connect() {
GetDiscoveredResourceCountsResponse resourceCountsResponse = configClient.getDiscoveredResourceCounts();
}
}
GetResourceConfigHistoryRequest configHistoryRequest = GetResourceConfigHistoryRequest.builder()
.resourceType(ResourceType.EC2_INSTANCE)
.build();
GetResourceConfigHistoryResponse configHistoryResponse = configClient.getResourceConfigHistory(configHistoryRequest);
PutConfigRuleRequest configRuleRequest = PutConfigRuleRequest.builder()
.configRuleName("MyCustomRule")
.source(Source.builder()
.owner(Owner.CUSTOM_LAMBDA)
.sourceIdentifier("arn:aws:lambda:us-east-1:<account-id>:function:MyLambdaFunction")
.build())
.build();
configClient.putConfigRule(configRuleRequest);
ConfiguredRuleNames ruleNames = ConfiguredRuleNames.builder()
.configRuleName("MyCustomRule")
.build();
SelectAggregateResourceConfigRequest resourceConfigRequest = SelectAggregateResourceConfigRequest.builder()
.expression("SELECT * WHERE resourceType = 'AWS::EC2::Instance'")
.configurationAggregatorName("MyConfigAggregator")
.build();
SelectAggregateResourceConfigResponse resourceConfigResponse = configClient.selectAggregateResourceConfig(resourceConfigRequest);