こちらでPythonのLambdaファンクションとしてSQSにエンキューするコードを
"API Gateway → Lambda → SQS"でJSONデータをエンキューする
こちらでデキュー(Recieve & Delete)するコードを書きました。
SQSのメッセージをLambdaで5分おきに処理する(Scheduled Event)
その時は、下記のようにClientを使っていたのですが、

  client = boto3.client('sqs')

次のService Resourceというものを使う方法もあり

  sqs = boto3.resource('sqs')

こちらの方が筋が良さそうだったので、上述のLambdaファンクションを
Service Resourceを使った形に書き換えてみました。

SQSにエンキューするLambdaファンクション

import json
port boto3
iimport logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

queueName = 'test'

def lambda_handler(event, context):

    try:
        logger.info(event)
        response = boto3.resource('sqs').get_queue_by_name
            QueueName = queueName
        ).send_message(
            MessageBody = json.dumps(event)
        )
        logger.info(response)
        return response

    except Exception as e:
        logger.error(e)
        raise e

SQSにデキューするLambdaファンクション

import boto3
import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

queueName = 'test'
maxNumberOfMessages = 10

def lambda_handler(event, context):

   try:
     logger.info(event)

     queue = boto3.resource('sqs').get_queue_by_name(
       QueueName = queueName
     )

     messages = queue.receive_messages(
        MaxNumberOfMessages = maxNumberOfMessages
     )

     entries = []
     for message in messages:
              entries.append({
                  "Id": message.message_id,
                  "ReceiptHandle": message.receipt_handle
              })

              response = {}
              if len(entries) != 0:
                   response = queue.delete_messages(
                       Entries = entries
              )

              logger.info(response)
              return response

  except Exception as e:
      logger.error(e)
      raise e

以前よりもスッキリしたんじゃないでしょうか?

元記事はこちら

Boto3(Python)で”Service Resource”を使ってみた(Lambda)