繁体   English   中英

如何在 2 个 EC2 实例之间发送数据

[英]How to send data between 2 EC2 instances

我有两个 AWS EC2 实例,一个运行 a.py 和 b.py。 这两个程序使用另一个程序生成的数据来完成任务,a.py 等待 b.py 创建一些数据,它用来创建一些数据,a.py 将使用这些数据来创建 b.py 将....基本上,他们会一直来回传递数据,直到满足条件。

我一直无法找到具体定义如何执行此操作的地方。 最理想的是,我想以最小的时间延迟来做到这一点。

由于您已经在使用 AWS,因此 SQS 队列是解决此类问题的原生解决方案。 要完成该任务,您需要创建两个 SQS 队列:

  • SQS-队列-App-A
  • SQS-队列-应用-B

然后制作一个.py,沿着这些方向:

import boto3

# Create SQS client
sqs = boto3.client('sqs')

queue_a_url = 'SQS_QUEUE_URL'
queue_b_url = 'SQS_QUEUE_URL'

while (1):
  messages = sqs.receive_messages(
        MaxNumberOfMessages=10,
        WaitTimeSeconds=10,
        QueueUrl=queue_a_url,
    )
  for msg in messages:
    logger.info("Received: %s: %s", msg.message_id, msg.body)
    #Do whatever you need to do with the message 
    
    response = sqs.send_message(
      QueueUrl=queue_b_url,

      MessageBody=(
        'something to process by script B'
      )
    )

您可以将它们创建为 FIFO 队列,以确保消息按顺序排列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM