Spring Cloud AWS – EC2
/spring-cloud-aws-s3[前の記事]のリンクでは、S3に焦点を当てています。今度はElastic Compute Cloudに焦点を当てます。これは一般にEC2として知られています。
1 EC2メタデータアクセス
AWS
EC2MetadataUtils
クラスは、AMI IDやインスタンスタイプなどのインスタンスメタデータにアクセスするための静的メソッドを提供します。
Spring Cloud AWSでは、
@ Value
アノテーションを使用してこのメタデータを直接注入できます
。
これは、任意の設定クラスに
@ EnableContextInstanceData
アノテーションを追加することで有効にできます。
@Configuration
@EnableContextInstanceData
public class EC2EnableMetadata {
//}
-
Spring Boot環境では、インスタンスメタデータはデフォルトで有効になっています。つまり、この設定は不要です。
それから、値を注入することができます。
@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. カスタムタグ
さらに、Springはユーザー定義のhttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using__Tags.html[tags]の挿入もサポートしています。
これを有効にするには、次のXML構成を使用して
context-instance-data
に属性
user-tags-map
を定義します。
<beans...>
<aws-context:context-instance-data user-tags-map="instanceData"/>
</beans>
それでは、Springの式構文を使用してユーザー定義タグを挿入しましょう。
@Value("#{instanceData.myTagKey}")
private String myTagValue;
2 EC2クライアント
さらに、インスタンス用に設定されたユーザータグがある場合、Springは
AmazonEC2
クライアントを作成し、これを
@ Autowired
を使用してコードに挿入できます。
@Autowired
private AmazonEC2 amazonEc2;
これらの機能は、アプリがEC2インスタンスで実行されている場合にのみ機能します。
3結論
これは、Spring Cloud AWSを使用してEC2dデータにアクセスするための迅速かつポイントツーポイントの紹介です。
リンク:/spring-cloud-aws-rds[シリーズの次の記事]では、RDSのサポートについて調べます。
次
”
-
«** 前へ