502 при запуске теста SQS с использованием локального стека - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь запустить некоторые тесты с SQS, используя localstack. Тем не менее, я продолжаю получать 502. Это работает для коллег, но это не работает на моей локальной машине, на нашем конвейере или на докере. Ошибка везде одинаковая, поэтому я отправляю версию докера, так как, вероятно, проще показать, что установлено.

Обычно я создаю образ докера, который устанавливает java, python и выполняет сборку gradle из папки / repo, выполняя интеграционные тесты.

FROM openjdk:11.0.2-jdk-oraclelinux7

RUN ["yum", "install", "-y", "python", "python-pip"]
RUN ["pip", "install", "--upgrade", "pip"]
RUN ["pip", "install", "virtualenv"]

VOLUME ["/repo"]

ARG sourceDir

COPY ["${sourceDir}", "/repo"]
WORKDIR "/repo"

ENTRYPOINT ["/repo/gradlew", "clean", "integrationTest"]

Мой тестовый код выглядит так:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@RunWith(LocalstackTestRunner.class)
public class TimeoutQueueTest {

    private AmazonSQS client;
    private static final String QUEUE_NAME = "my queue";

   @LocalServerPort
    private int port;

   @ClassRule
    public static final SpringClassRule springClassRule = new SpringClassRule();

    @Rule
    public final SpringMethodRule springMethodRule = new SpringMethodRule();

   @Before
    public void setup() {
        Map<String, String> attributeMap = new HashMap<>();
        attributeMap.put("DelaySeconds", "0");
        attributeMap.put("MaximumMessageSize", "262144");
        attributeMap.put("MessageRetentionPeriod", "1209600");
        attributeMap.put("ReceiveMessageWaitTimeSeconds", "20");
        attributeMap.put("VisibilityTimeout", "30");

        client = TestUtils.getClientSQS();
        CreateQueueRequest createQueueRequest = new CreateQueueRequest(QUEUE_NAME).withAttributes(attributeMap);
        //FAILS IN THE LINE BELOW!!!!!!!!!!!!!!!!!!
        String standardQueueUrl = client.createQueue(createQueueRequest).getQueueUrl();

        RestAssured.port = port;
    }

(...)
}

Не удается с:

com.amazonaws.services.sqs.model.AmazonSQSException: null (Сервис: AmazonSQS; Код состояния: 502; Код ошибки: 502 Bad Gateway; Идентификатор запроса: null)

на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.handleErrorResponse (AmazonHttpClient.java:1660) на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.executeOneRequest (AmazonHttpClient.java:1324) на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.executeHelper (AmazonHttpClient.java:1074) на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.doExecute (AmazonHttpClient.java:745) на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.executeWithTimer (AmazonHttpClient.java:719) на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.execute (AmazonHttpClient.java:701) на com.amazonaws.http.AmazonHttpClient $ RequestExecutor.access $ 500 (AmazonHttpClient.java:669) на com.amazonaws.http.AmazonHttpClient $ RequestExecutionBuilderImpl.execute (AmazonHttpClient.java:651) на com.amazonaws.http.AmazonHttpClient.execute (AmazonHttpClient.java:515) на com.amazonaws.services.sqs.AmazonSQSClient.doInvoke (AmazonSQSClient.java:2147) на com.amazonaws.services.sqs.AmazonSQSClient.invoke (AmazonSQSClient.java:2116) на com.amazonaws.services.sqs.AmazonSQSClient.invoke (AmazonSQSClient.java:2105) на com.amazonaws.services.sqs.AmazonSQSClient.executeCreateQueue (AmazonSQSClient.java:756) на com.amazonaws.services.sqs.AmazonSQSClient.createQueue (AmazonSQSClient.java:728) на uk.co.sainsburys.giftcardservice.TimeoutQueueTest.setup (TimeoutQueueTest.java:76) в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.base / java.lang.reflect.Method.invoke (Method.java:566) в org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:50) в org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:12) в org.junit.runners.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java:47) в org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores.java:24) в org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate (RunBeforeTestMethodCallbacks.java:75) в org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate (RunAfterTestMethodCallbacks.java:86) в org.springframework.test.context.junit4.statements.RunPrepareTestInstanceCallbacks.evaluate (RunPrepareTestInstanceCallbacks.java:64) в org.springframework.test.context.junit4.statements.SpringRepeat.evaluate (SpringRepeat.java:84) в org.springframework.test.context.junit4.statements.SpringFailOnTimeout.evaluate (SpringFailOnTimeout.java:87) в org.springframework.test.context.junit4.statements.ProfileValueChecker.evaluate (ProfileValueChecker.java:103) на com.github.tomakehurst.wiremock.junit.WireMockRule $ 1.evaluate (WireMockRule.java:73) на org.junit.rules.RunRules.evaluate (RunRules.java:20) в org.junit.runners.ParentRunner.runLeaf (ParentRunner.java:325) в org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:78)в org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:57) в org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:290) в org.junit.runners.Rarent.Rarent: 71) в org.junit.runners.ParentRunner.runChildren (ParentRunner.java:288) в org.junit.runners.ParentRunner.access $ 000 000 (ParentRunner.java:58) в org.junit.runners.ParentRunner $ 2.eateateParentRunner.70) в org.springframework.test.context.junit4.statements.ProfileValueChecker.evaluate (ProfileValueChecker.java:103) в org.springframework.test.context.junit4.rules.SpringClassRule $ TestContevate.lej.eche.Core.Ru.UnagerCacheerв org.junit.rules.RunRules.evaluate (RunRules.java:20) в org.junit.runners.ParentRunner.run (ParentRunner.java:363) по адресу cloud.localstack.LocalstackTestRunner.run (LocalstackTestRunner.java:25) по адресу org.junit.runner.JUnitCore.run (JUnitCore.java:137) в com.intendjUj.startRunnerWithArgs (JUnit4IdeaTestRunner.java:68) в com.intellij.rt.execution.junit.IdeaTestRunner $ Repeater.startRunnerWithArgs (IdeaTestRunner.java:47) в com.intellij.rjart: 242) at com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter.java:70)

Есть идеи?Что мне не хватает?Код, кажется, работает, так как он работает для моего коллеги (видел это своими глазами).Он не помнит, чтобы что-то отличалось от меня с точки зрения настройки.

Мы оба используем python 2.7.10, кстати (если это имеет значение).

...