Saltar para o conteúdo
🎉 Bem-vindo! Sinfonia by 27Devs é uma plataforma completa de orquestração de robôs, solicite já seu acesso.

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.

AWS Triggers

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.

AWS Triggers

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.
CampoDescriçãoNotas
BotBot que será executado quando o gatilho for disparado.Deve estar previamente criado e disponível na plataforma para seleção.
VersãoVersã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.
LabelIdentificador opcional para o gatilho.Pode ser usado para organização ou filtragem.
AgenteDefine 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çãoTexto 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.

AWS Triggers

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.
CampoDescriçãoNotas
BotBot que será executado quando o gatilho for disparado.Deve estar previamente criado e disponível na plataforma para seleção.
VersãoVersã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.
LabelIdentificador opcional para o gatilho.Pode ser usado para organização ou filtragem.
AgenteDefine 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çãoTexto 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.

Última modificação em