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.