Usando o polling do AWS Lambda com SQS externo

1

Eu estou principalmente tentando descobrir se o que eu preciso é mesmo possível, se alguém tiver indicações de como, isso seria ainda melhor.

Eu tenho uma chave de acesso / segredo de uma organização com a qual trabalho, que concede acesso a uma fila do AWS SQS (também tenho o ARN para essa fila). Agora gostaria de usar o polling AWS lambda nessa fila para executar uma função lambda nas mensagens recebidas. Eu não consigo descobrir como conectar o SQS externo com a minha função lambda. Eu posso colocar o ARN, mas as permissões estão faltando. Gostaria de saber se posso adicionar a chave de acesso / segredo em algum lugar ou se isso é totalmente impossível e eu tenho que implementar a pesquisa por conta própria?

    
por ChristianM 17.09.2018 / 13:53

1 resposta

1

Entendo corretamente que o SQS está em uma conta da AWS e o seu Lambda está em outra?

Se estiver na mesma conta, você não deve usar acesso estático e chaves secretas para a execução do Lambda. A maneira correta é criar IAM Role com uma Política que permita acesso ao SQS e execute o Lambda com essa função. A Função dará credenciais temporárias toda vez que for executada, essa é uma opção muito mais segura.

Isso também pode ser feito entre contas - a função IAM do Lambda permitirá que assumam uma função de uma conta diferente. Mas isso é um pouco mais envolvido.

No seu caso, se as contas SQS e Lambda forem diferentes, você poderá fornecer as chaves ao abrir uma conexão com o SQS . Se o seu Lambda é escrito em Python, você pode fazer algo assim:

import boto3

s3_client = boto3.client('s3')    # This uses Lambda's IAM Role

sqs_client = boto3.client('sqs',  # This uses the provided SQS credentials
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
)

Com isso, você pode ler a partir do SQS usando as credenciais fornecidas e escrever, por exemplo, para S3 usando o papel Lambda IAM.

Tenho certeza de que outros SDKs (por exemplo, Node.JS) terão uma capacidade semelhante.

Espero que ajude:)

    
por 20.09.2018 / 00:30