AWS Пакет с SDK-клиентами, работающими некорректно - PullRequest
0 голосов
/ 02 марта 2020

Я запускаю полностью управляемое AWS пакетное задание со следующим конвейером: Уведомление о событиях S3 -----> Lambda ------> AWS Пакетное задание

Инфраструктура

Инфраструктура управляется Amazon CDK. Полный код по этой ссылке .

this.batchJobDefinition = new batch.CfnJobDefinition(
            this, 'VFPBatchJobDefinition', {
                type: 'container',
                containerProperties: {
                    jobRoleArn: batchJobRole.roleArn,
                    image: brazilContainerImageConfig.imageName ,
                    vcpus: 1,
                    memory: 512,
                    environment: [
                    {
                        name: 'AWSRegion',
                        value: this.region
                    },
                    {
                        name: 'REALM',
                        value: props.realm
                    },
                    {
                        name: 'DOMAIN',
                        value: props.domain
                    }],
                    command: ["--inputBucket", "Ref::inputBucket", "--objectKey", "Ref::objectKey"]
                },
            });

Разрешения и доступ предоставляются через роли IAM со следующим предоставленным доступом:

  1. полный доступ S3
  2. полный доступ SES
  3. полный доступ Cloud Formation

Внутри пакетного задания выполняются следующие шаги:

  1. Извлечение объекта и метаданных из корзины S3
  2. Изменение метаданных и копирование объекта обратно в S3
  3. Отправка электронной почты с указанием статуса вышеуказанных шагов

Проблема, с которой я сталкиваюсь, заключается в том, что работа непоследовательно застревает либо в шаг 1 или шаг 3, и иногда он бежит к завершению. Обычно наблюдаемый шаблон - 1-й и 2-й запуски после того, как развертывание застряло, а последующие запуски обычно работают нормально. Обычно сбои происходят, когда клиент проверяет личность или во время SSL рукопожатия. Я добавил несколько журналов для ошибки:

13:57:28 Unable to load configuration from com.amazonaws.monitoring.EnvironmentVariableCsmConfigurationProvider@54336c81: Unable to load Client Side Monitoring configurations from environment variables!
13:57:28 Unable to load configuration from com.amazonaws.monitoring.SystemPropertyCsmConfigurationProvider@1556f2dd: Unable to load Client Side Monitoring configurations from system properties variables!
13:57:28 Unable to load configuration from com.amazonaws.monitoring.ProfileCsmConfigurationProvider@49bd54f7: Unable to load config file
13:57:29 Unable to load configuration from com.amazonaws.monitoring.EnvironmentVariableCsmConfigurationProvider@54336c81: Unable to load Client Side Monitoring configurations from environment variables!
13:57:29 Unable to load configuration from com.amazonaws.monitoring.SystemPropertyCsmConfigurationProvider@1556f2dd: Unable to load Client Side Monitoring configurations from system properties variables!
13:57:29 Unable to load configuration from com.amazonaws.monitoring.ProfileCsmConfigurationProvider@49bd54f7: Unable to load config file
14:02:56 /opt/amazon/bin/entry_point.sh: line 37: 6 Killed /opt/amazon/bin/bones_run_apollo_shim.sh --script bin/run-service.sh
13:24:55 Caused by: java.net.SocketException: Broken pipe (Write failed)
13:24:55 at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:1.8.0_242]
13:24:55 at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) ~[?:1.8.0_242]
13:24:55 at java.net.SocketOutputStream.write(SocketOutputStream.java:155) ~[?:1.8.0_242]
12:41:10 socket.getSupportedProtocols(): [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2], socket.getEnabledProtocols(): [TLSv1, TLSv1.1, TLSv1.2]
12:41:11 TLS protocol enabled for SSL handshake: [TLSv1.2, TLSv1.1, TLSv1]
12:41:12 Starting handshake
12:41:26 /opt/amazon/bin/entry_point.sh: line 37: 6 Killed /opt/amazon/bin/bones_run_apollo_shim.sh --script bin/run-service.sh
...