Como a operação em questão está executando scripts de banco de dados, resolvi isso adicionando uma consulta adicional que INSERT o ID de implantação (uma variável de ambiente disponível) em uma tabela de log de implantação. A tabela impõe a exclusividade na coluna de ID de implementação e o script não fará nada se a inserção falhar.
Isso tem um bom efeito colateral de gerar um histórico de implantação dentro do aplicativo.
Além disso, não há risco de o "bloqueio" ser lançado cedo demais - é um bloqueio permanente para cada implantação. Estou assumindo que o CodeDeploy sempre fornecerá IDs de implantação exclusivos.
UPDATE: revisitei isso mais tarde para evitar que o escalonamento automático execute novamente os scripts do banco de dados desnecessariamente (eles implantam a mesma revisão, mas com diferentes IDs de implantação). Agora eu uso o aws cli tools () para solicitar as informações de revisão da API do CodeDeploy e inseri-las na minha tabela de banco de dados, em vez do ID de implantação.