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

"

  • «** 前へ