/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のサポートについて調べます。




  • «** 前へ