Suspeito que seja outra aplicação que adiciona a mensagem na fila SQS. Se for isso mesmo, vc precisa criar um worker customizado que consome essa fila. Quando uma nova mensagem chegar, vc converte o payload vindo da fila, instância o job que vc que executar passando o payload convertido, o resto é fluxo padrão do laravel/lumen.
Quanto ao envio para outra api, vc pode criar um service com a implementação para essa api e no job, depois de executar sua lógica, chama sua a implementação.
observando seu código o mais indicado seria criar um controller sim. Caso o trigger da execução seja externo ao servidor você deve fazer uma rota e chamar um controller, mas se você for o cara que irá chamar o consumo da fila então o melhor seria deixar em um command que possa ser chamado pelo worker, mas em ambos os casos recomendo deixar o processamento do contexto em um job.
PS: No caso de usar um controller eu faria uma única rota como: “endpoint/marketplace/catalogs/products/{context}” e no controller identificaria o contexto e iniciaria o job conforme demanda. Se precisar que o cara que chama a rota seja liberado na hora pode no controler retornar um http code 204 e chamar um evento que por sua ves estaria relacionado ao job que pode ou não ser processado no mesmo momento.
Espero ter ajudado. Abs.