Время выполнения ElasticBeanstalk истекло при настройке LogStreaming - PullRequest
1 голос
/ 23 октября 2019

У меня ошибка, с которой я никогда не сталкивался. У меня есть набор из нескольких регионов, который создает приложение ElasticBeanstalk в двух регионах (us-east-1 и eu-west-1). Конфигурации точно такие же, за исключением определенных конфигураций VPC, таких как подсети.

После перестройки обеих сред eb моя среда us-east-1 не смогла успешно развернуться.

Журналы показывают, что однаиз крючков не заканчиваются. Этот хук -

/ opt / эластичный стебель / аддоны / потоковая передача / hooks / config / 10-config.sh

Содержимое хука выглядит как

#!/bin/bash -e
#==============================================================================
# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Amazon Software License (the "License"). You may not use
# this file except in compliance with the License. A copy of the License is
# located at
#
#       http://aws.amazon.com/asl/
#
# or in the "license" file accompanying this file. This file is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or
# implied. See the License for the specific language governing permissions
# and limitations under the License.
#==============================================================================

source /opt/elasticbeanstalk/lib/ruby/profile.sh

BASEDIR=$(dirname $0)
ruby $BASEDIR/../logstreaming_config.rb

Здесь ничего особенного не происходит, кроме установки некоторых распространенных ruby ​​env vars в profile.sh и последующего вызова logstreaming_config.rb. После этого файла содержимое -

#!/opt/elasticbeanstalk/lib/ruby/bin/ruby

#==============================================================================
# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Amazon Software License (the "License"). You may not use
# this file except in compliance with the License. A copy of the License is
# located at
#
#       https://aws.amazon.com/asl/
#
# or in the "license" file accompanying this file. This file is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or
# implied. See the License for the specific language governing permissions
# and limitations under the License.
#==============================================================================
require 'elasticbeanstalk/log-streaming-config-manager'

if __FILE__ == $0
  begin
    log_streaming_config_manager = ElasticBeanstalk::LogStreamingConfigManager.new
    log_streaming_config_manager.config_cwl_agent
  rescue Exception => ex
    puts ex.message
    exit(1)
  end
end

Тревожная строка - это та, где вызывается config_cwl_agent. Код для этого можно найти на /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.2.0/gems/beanstalk-core-2.12/lib/elasticbeanstalk/log-streaming-config-manager.rb на поле AWS. Это довольно большой файл, поэтому я не буду добавлять его здесь.

Добавляя логирование повсеместно, я сужаю его до -

cloudwatch_logs.create_log_stream({
  log_group_name: "#{log_group_name}",
  log_stream_name: "#{instance_id}"
})

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

срок выполнения истек

Через ~ 60 с.

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

1 Ответ

0 голосов
/ 01 ноября 2019

Мы обнаружили, что проблема связана с конечными точками VPC и использованием частного DNS. Мы отключили частный DNS на конечной точке журналов в регионе и решили проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...