AWS (SQS e S3)
Use os gatilhos da AWS quando o bot deve reagir a eventos na sua conta AWS: uma nova mensagem em uma fila SQS ou um arquivo enviado para um bucket S3. O Sinfonia monitora o recurso configurado e dispara o bot a cada evento.

Existem 2 tipos de gatilhos AWS:
- SQS: Monitora uma fila SQS específica e dispara o bot quando uma nova mensagem é recebida.
- S3: Monitora um bucket S3 para eventos como upload de arquivos e dispara o bot em resposta a esses eventos.
Nota
Para utilizar esses gatilhos, é necessário ter uma conta AWS com permissões adequadas para acessar os serviços SQS e S3. Além disso, as credenciais AWS (Access Key e Secret Key) devem ser configuradas como variáveis de ambiente para realizar a seleção durante o processo de configuração dos gatilhos.
SQS
Segue abaixo a descrição dos campos necessários para configurar um gatilho do tipo SQS.

Campos de Configuração
URL da Fila
- Formato esperado:
https://sqs.<queue_region>.amazonaws.com/account_id/queue_name - Descrição: Endereço completo da fila SQS que será monitorada para disparar o gatilho.
AWS Access Key
- Descrição: Chave de acesso AWS com permissões para acessar a fila SQS.
- Exemplo:
AWS_ACCESS_KEY - Importante: Esta chave deve ser previamente configurada como uma variável de ambiente na seção de variáveis do sistema.
AWS Secret Key
- Descrição: Chave secreta AWS correspondente à chave de acesso.
- Exemplo:
AWS_SECRET_KEY - Importante: Esta chave deve ser previamente configurada como uma variável de ambiente na seção de variáveis do sistema.
| Campo | Descrição | Notas |
|---|---|---|
| Bot | Bot que será executado quando o gatilho for disparado. | Deve estar previamente criado e disponível na plataforma para seleção. |
| Versão | Versão específica do bot a ser utilizada. | Aceita X.Y.Z (exemplo: 1.0.0) ou release, que sempre usa a mais recente disponível. |
| Label | Identificador opcional para o gatilho. | Pode ser usado para organização ou filtragem. |
| Agente | Define o agente responsável pela execução do bot. | O agente deve estar ativo e conectado. É possível selecionar múltiplos agentes, evitando gargalos de execução. |
| Parâmetros (JSON) | Parâmetros adicionais enviados ao bot, em formato JSON. | Chegam ao código como variáveis de ambiente. Exemplo: {"arg1": "1366", "arg2": "768"} |
| Descrição | Texto livre para descrever a finalidade do gatilho. | Facilita a identificação em telas de listagem. |
Permissões
Para que o gatilho funcione corretamente, a fila SQS deve ter uma política de permissões que permita que o serviço da plataforma acesse e leia mensagens. A política deve incluir a seguinte declaração:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SQSSpecificQueue",
"Effect": "Allow",
"Action": [
"sqs:CreateQueue",
"sqs:DeleteQueue",
"sqs:TagQueue",
"sqs:ListQueues",
"sqs:SetQueueAttributes",
"sqs:ReceiveMessage",
"sqs:DeleteMessage"
],
"Resource": [
"arn:aws:sqs:${Region}:${Account}:${QueueName}"
]
}
]
}Nota
Substitua ${Region}, ${Account} e ${QueueName} pelos valores reais da fila que você deseja monitorar.
Caso queira monitorar múltiplas filas, utilize "Resource": ["*"], mas esteja ciente dos riscos de segurança associados.
S3
Segue abaixo a descrição dos campos necessários para configurar um gatilho do tipo S3.

Campos de Configuração
Nome do Bucket
- Descrição: Nome exato do bucket S3 que será monitorado para eventos.
AWS Region
- Descrição: Região AWS onde o bucket está localizado (ex:
us-east-1,sa-east-1).
Filtrar objetos por prefixo
- Descrição: Permite acionar o gatilho apenas para objetos cujo nome comece com o prefixo especificado.
Filtrar objetos por sufixo
- Descrição: Permite acionar o gatilho apenas para objetos cujo nome termine com o sufixo especificado (ex:
.csv,.jpg).
AWS Access Key
- Descrição: Chave de acesso AWS com permissões para acessar a fila SQS.
- Exemplo:
AWS_ACCESS_KEY - Importante: Esta chave deve ser previamente configurada como uma variável de ambiente na seção de variáveis do sistema.
AWS Secret Key
- Descrição: Chave secreta AWS correspondente à chave de acesso.
- Exemplo:
AWS_SECRET_KEY - Importante: Esta chave deve ser previamente configurada como uma variável de ambiente na seção de variáveis do sistema.
| Campo | Descrição | Notas |
|---|---|---|
| Bot | Bot que será executado quando o gatilho for disparado. | Deve estar previamente criado e disponível na plataforma para seleção. |
| Versão | Versão específica do bot a ser utilizada. | Aceita X.Y.Z (exemplo: 1.0.0) ou release, que sempre usa a mais recente disponível. |
| Label | Identificador opcional para o gatilho. | Pode ser usado para organização ou filtragem. |
| Agente | Define o agente responsável pela execução do bot. | O agente deve estar ativo e conectado. É possível selecionar múltiplos agentes, evitando gargalos de execução. |
| Parâmetros (JSON) | Parâmetros adicionais enviados ao bot, em formato JSON. | Chegam ao código como variáveis de ambiente. Exemplo: {"arg1": "1366", "arg2": "768"} |
| Descrição | Texto livre para descrever a finalidade do gatilho. | Facilita a identificação em telas de listagem. |
Permissões
Para que o gatilho funcione corretamente, o bucket S3 deve ter uma política de permissões que permita que o serviço da plataforma acesse os eventos do bucket. A política deve incluir a seguinte declaração:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3BucketLevel",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketPolicy",
"s3:GetBucketNotification",
"s3:PutBucketNotification"
],
"Resource": [
"arn:aws:s3:::${BucketName}/${KeyName}"
]
},
{
"Sid": "S3ObjectLevel",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:GetObjectVersion",
"s3:PutObjectAcl",
"s3:PutObjectTagging"
],
"Resource": [
"arn:aws:s3:::${BucketName}/${KeyName}"
]
}
]
}Nota
Substitua ${BucketName} e ${KeyName} pelos valores reais do bucket e prefixo/sufixo que você deseja monitorar.
Política IAM Completa
Crie um usuário IAM com a política abaixo para permitir que o gatilho funcione corretamente com ambos os serviços S3 e SQS.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3BucketLevel",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketPolicy",
"s3:GetBucketNotification",
"s3:PutBucketNotification"
],
"Resource": [
"arn:aws:s3:::${BucketName}/${KeyName}"
]
},
{
"Sid": "S3ObjectLevel",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:GetObjectVersion",
"s3:PutObjectAcl",
"s3:PutObjectTagging"
],
"Resource": [
"arn:aws:s3:::${BucketName}/${KeyName}"
]
},
{
"Sid": "SQSSpecificQueue",
"Effect": "Allow",
"Action": [
"sqs:CreateQueue",
"sqs:DeleteQueue",
"sqs:TagQueue",
"sqs:ListQueues",
"sqs:SetQueueAttributes",
"sqs:ReceiveMessage",
"sqs:DeleteMessage"
],
"Resource": [
"*"
]
}
]
}Nota
Substitua ${BucketName} e ${KeyName} pelos valores reais do bucket e prefixo/sufixo que você deseja monitorar.