Как получить идентификатор экземпляра из ec2 экземпляра?

1111 Я сделал это, думая об обратном. Вместо того чтобы генерировать элементы div сверху вниз, я генерировал их один за другим в одной строке с соответствующим содержимым, переключаясь на новую строку, когда это необходимо. Код должен работать для любого количества строк, которое вы хотите.

Я использовал трюк с CSS-свойством clear (как clear: both). Свойство clear определяет, по каким сторонам элемента плавающие элементы не могут плавать, поэтому это своего рода «сброс». Этот сброс происходит, когда j = 0, иначе мы генерируем первый элемент в этой строке. i + divider * j + 1 дает вам индекс текущего элемента (вы можете сделать математику с ручкой и бумагой, чтобы увидеть, что он работает соответственно).

class TodoApp extends React.Component {
  constructor(props) {
    super(props);
  }
  
    renderLogic() {
      let items = [0,1,2,3,4,5,6,7,8,9,10,11,12,13];
      let divider = 5;
      let boxes = [];
      
      for (let i = 0; i < divider; ++i) { 
          for (let j = 0; j < items.length / divider + 1; ++j) {
          
              if (i + divider * j >= items.length)
                  continue;
                  
              if (j == 0) {
                   boxes.push((
                    
{i + divider * j + 1}
)) } else { boxes.push((
{i + divider * j + 1}
)) } } } return boxes; } render() { return (
{this.renderLogic()}
); } } ReactDOM.render(, document.querySelector("#app"))
.sample-container {
  background-color: green;
}

.box {
  background-color: green;
  border: 1px solid black;
  float: left;
  margin: 5px;
  width: 50px;
  height: 50px;
}

.newline {
  clear: both;
}



Примечание. Я использовал + 1 в {i + divider * j + 1} только для отображения. Надеюсь, что это соответствует вашим потребностям. Ура!

358
задан PrasadK 14 February 2018 в 13:45
поделиться

2 ответа

См. документация EC2 относительно предмета .

Выполнение:

wget -q -O - http://169.254.169.254/latest/meta-data/instance-id

, Если Вам нужен программный доступ к идентификатору экземпляра из сценария,

die() { status=$1; shift; echo "FATAL: $*"; exit $status; }
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"

пример более усовершенствованного использования (получают идентификатор экземпляра, а также зону доступности и регион, и т.д.):

EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
test -n "$EC2_INSTANCE_ID" || die 'cannot obtain instance-id'
EC2_AVAIL_ZONE="`wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || die \"wget availability-zone has failed: $?\"`"
test -n "$EC2_AVAIL_ZONE" || die 'cannot obtain availability-zone'
EC2_REGION="`echo \"$EC2_AVAIL_ZONE\" | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:'`"

можно также использовать curl вместо wget, в зависимости от того, что установлено на платформе.

505
ответ дан lyjackal 23 November 2019 в 00:19
поделиться

См. , это сообщение - отмечает, что IP-адрес в данном URL является постоянным (который смутил меня сначала), но возвращенные данные характерны для Вашего экземпляра.

12
ответ дан gareth_bowles 23 November 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: