Como uso o AWS Batch como destino para minha regra do EventBridge?

Data da última atualização: 19/01/2022

Quero usar o AWS Batch como destino para minha regra do Amazon EventBridge.

Resolução

O exemplo a seguir mostra como configurar o Amazon EventBridge para enviar um trabalho do AWS Batch quando um novo bucket do Amazon Simple Storage Service (Amazon S3) é criado.

Crie uma definição de trabalho

1.    Abra o console do AWS Batch.

2.    Na barra de navegação, selecione sua região da AWS.

3.    No painel de navegação, escolha Definições de trabalho e, em seguida, Criar.

4.    Para Nome da definição do trabalho, insira um nome exclusivo para a definição do trabalho.

Observação: você pode usar até 128 letras (maiúsculas e minúsculas), números, hifens e sublinhados em seu nome exclusivo.

5.    Para Imagem do contêiner, insira amazonlinux.

6.    Para Comando, insira o seguinte:

echo Ref::S3bucket

7.    Para vCPUs, insira 2.

8.    Para Memória (MiB), insira 500.

9.    Escolha Avançar e, em seguida, escolha Criar.

Obtenha o ARN da fila de trabalho e da definição de tarefas

1.    Abra o console do AWS Batch.

2.    No painel de navegação, escolha Filas de trabalho.

3.    Escolha sua fila de trabalho.

4.    Na seção Detalhes da fila de trabalhos, copie o ARN da fila e salve-o para mais tarde.

5.    No painel de navegação, escolha Definições de trabalho e, em seguida, escolha a definição de trabalho que você criou anteriormente.

6.    Na seção Detalhes da definição do trabalho, copie o ARN da definição de trabalho e salve-o para mais tarde.

Habilitar o registro de eventos de dados do CloudTrail para objetos em um bucket do S3

Para acionar trabalhos do AWS Batch em operações de nível de objeto do Amazon S3 (por exemplo, quando um novo objeto é carregado em um bucket existente), consulte Habilitar o registro de eventos do CloudTrail para buckets e objetos do S3.

Crie a regra EventBridge

1.    Abra o console do EventBridge.

2.    Selecione Create rule (Criar regra).

3.    Insira um Nome para sua regra. Opcionalmente, você pode inserir uma Descrição.

4.    Em Define pattern (Definir padrão), selecione Event pattern (Padrão de evento).

5.    Selecione Padrão predefinido por serviço.

6.    Em Provedor de serviços, escolha AWS.

7.    Para Nome do serviço, escolha Simple Storage Service (S3).

8.    Para Tipo de evento, escolha Chamada de API no nível do bucket via CloudTrail.

9.    Escolha Qualquer operação.

10.    Na seção Selecionar destinos, escolha Fila de trabalhos em lote na lista suspensa Destino.

11.    Para Fila de trabalho, cole o ARN da fila de trabalho que você copiou anteriormente.

12.    Para Definição de trabalho, cole o ARN de definição de trabalho que você copiou anteriormente.

13.    Em Nome do trabalho, insira um nome para o trabalho do AWS Batch.

14.    Na seção Configurar entrada, escolha Transformador de entrada.

15.    Na primeira caixa de entrada, insira os valores do bucket do S3 a serem enviados quando o evento for acionado:

{"S3BucketNameValue":"$.detail.requestParameters.bucketName"}

Nota: substitua S3BucketNameValue pelo seu próprio valor.

16.    Na segunda caixa de entrada, insira a estrutura Parâmetros a ser passada para o trabalho em lote:

{"Parameters" : {"S3bucket": S3BucketNameValue}}

Nota: substitua S3BucketNameValue pelo seu próprio valor. Substitua S3bucket pelo nome do parâmetro que você deseja definir em seu trabalho do AWS Batch.

17.    Escolha Criar uma nova função para esse recurso específico ou Usar função existente.

Nota: se você escolher uma função existente, essa função deverá ter uma política do AWS Identity and Access Management (IAM) que permita a ação batch:submitJob.

18.    Selecione Criar.

Teste a nova regra que você criou

1.    Abra o console do Amazon S3.

2.    Escolha Criar bucket.

3.    No campo Nome do bucket, digite um nome único e compatível com o DNS para o seu novo bucket.

4.    Para Região, escolha a mesma região em que você criou a regra EventBridge.

5.    Escolha Criar.

Verifique seus registros

1.    Abra o console do AWS Batch.

2.    No painel de navegação, escolha Trabalhos.

3.    Escolha seu trabalho com um status de BEM-SUCEDIDO.

4.    Na página Detalhes do trabalho, na seção Tentativas, escolha Exibir registros. O registro exibe o nome do bucket no console do CloudWatch.