«В предыдущей статье мы сосредоточились на S3; теперь мы сосредоточимся на эластичном вычислительном облаке, широко известном как EC2.

1. Доступ к метаданным EC2

Класс AWS EC2MetadataUtils предоставляет статические методы для доступа к метаданным экземпляра, таким как идентификатор AMI и тип экземпляра. С помощью 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 также поддерживает внедрение пользовательских тегов. Мы можем включить это, определив атрибут user-tags-map в context-instance-data, используя следующую конфигурацию XML:

<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. Заключение

Это было краткое и точное введение в доступ к данным EC2d с помощью Spring Cloud AWS.

В следующей статье серии мы рассмотрим поддержку RDS.

Как обычно, примеры доступны на GitHub.

Next »

Spring Cloud AWS – RDS

« Previous

Spring Cloud AWS – S3