Spring Cloud AWS - EC2

Frühlingswolke AWS - EC2

Inprevious article konzentrieren wir uns auf S3; Jetzt konzentrieren wir uns auf die Elastic Compute Cloud - allgemein bekannt als EC2.

1. EC2-Metadatenzugriff

Die Klasse von AWSEC2MetadataUtilsbietet statische Methoden für den Zugriff auf Instanzmetadaten wie AMI-ID und Instanztyp. With Spring Cloud AWS we can inject this metadata directly using the @Value annotation.

Dies kann aktiviert werden, indem die Annotation@EnableContextInstanceDataüber eine der Konfigurationsklassen hinzugefügt wird:

@Configuration
@EnableContextInstanceData
public class EC2EnableMetadata {
    //
}

In a Spring Boot environment, instance metadata is enabled by default which means this configuration is not required.

Dann können wir die Werte injizieren:

@Value("${ami-id}")
private String amiId;

@Value("${hostname}")
private String hostname;

@Value("${instance-type}")
private String instanceType;

@Value("${services/domain}")
private String serviceDomain;

1.1. Benutzerdefinierte Tags

Darüber hinaus unterstützt Spring auch die Injektion von benutzerdefiniertentags. Wir können dies aktivieren, indem wir ein Attributuser-tags-map incontext-instance-data mit der folgenden XML-Konfiguration definieren:


    

Fügen wir nun die benutzerdefinierten Tags mithilfe der Spring-Ausdruckssyntax ein:

@Value("#{instanceData.myTagKey}")
private String myTagValue;

2. EC2-Client

Wenn für die Instanz Benutzer-Tags konfiguriert sind, erstellt Spring außerdem einenAmazonEC2-Client, den wir mit@Autowired in unseren Code einfügen können:

@Autowired
private AmazonEC2 amazonEc2;

Bitte beachten Sie, dass diese Funktionen nur funktionieren, wenn die App auf einer EC2-Instanz ausgeführt wird.

3. Fazit

Dies war eine schnelle und präzise Einführung in den Zugriff auf EC2d-Daten mit Spring Cloud AWS.

Innext article of the series werden wir die RDS-Unterstützung untersuchen.

Wie üblich sind die Beispiele inover on GitHub verfügbar.