Я запускаю полностью управляемое 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 со следующим предоставленным доступом:
- полный доступ S3
- полный доступ SES
- полный доступ Cloud Formation
Внутри пакетного задания выполняются следующие шаги:
- Извлечение объекта и метаданных из корзины S3
- Изменение метаданных и копирование объекта обратно в S3
- Отправка электронной почты с указанием статуса вышеуказанных шагов
Проблема, с которой я сталкиваюсь, заключается в том, что работа непоследовательно застревает либо в шаг 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