es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enviar mensaje entre cuentas de AWS desde Lambda a SQS

Quiero enviar un mensaje a la cola SQS en otra cuenta (Ohio) desde una función lambda en la cuenta de Virginia del Norte. ¿Cómo puedo lograr esto?

Cosas que he intentado hasta ahora:

  1. Creé una cola en Ohio y asigné el ARN del rol lambda a la cola.
  2. Envié un mensaje desde la función lambda en Virginia del Norte y obtuve el siguiente error:

“errorMessage”: “Se produjo un error (AWS.SimpleQueueService.NonExistentQueue) al llamar a la operación SendMessage.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para enviar con éxito un mensaje desde una función Lambda en la cuenta de North Virginia a una cola SQS en la cuenta de Ohio, debes seguir estos pasos:

    1. Crea una cola en Ohio y toma nota de su URL, que debería tener este aspecto: `https://sqs.us-east-2.amazonaws.com/ACCOUNT-ID/QUEUE-NAME`
    2. Asegúrate de que el rol adjunto a la función Lambda en North Virginia tenga permisos para enviar mensajes a la cola SQS en Ohio. Esto se puede lograr agregando una declaración de política al rol que permita la acción sqs:SendMessage para el ARN de la cola de Ohio. La declaración de política debería tener este aspecto:

      {
      "Effect": "Allow",
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:us-east-2:TARGET-ACCOUNT-ID:QUEUE-NAME"
      }
      

    3. En el código de la función Lambda, utiliza el SDK de AWS para Python (Boto3) para enviar un mensaje a la cola SQS de Ohio. Aquí tienes un ejemplo de código:
      import boto3
      
      sqs_client = boto3.client('sqs', region_name='us-east-2')
      
      queue_url = 'https://sqs.us-east-2.amazonaws.com/TARGET-ACCOUNT-ID/QUEUE-NAME'
      
      response = sqs_client.send_message(
        QueueUrl=queue_url,
        MessageBody='¡Hola desde Lambda en North Virginia!'
      )
      

      Reemplaza TARGET-ACCOUNT-ID y QUEUE-NAME con los valores reales de la cola de Ohio.

    4. Al ejecutar la función Lambda, asegúrate de que tenga los permisos IAM necesarios y de que el rol de ejecución de la función esté autorizado para enviar mensajes a la cola SQS de Ohio.

    Si has seguido estos pasos y aún encuentras errores, verifica que la URL de la cola y el ID de la cuenta sean correctos, y que la cola de Ohio esté configurada para aceptar mensajes de la cuenta de North Virginia.

Comments are closed.