SNS-SQS-Lambda-HTTPS.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. ##
  2. ## 1、HTTPS
  3. import boto3
  4. import json
  5. client = boto3.client('dynamodb')
  6. table_name = 'haha'
  7. def updata_ddb(client,mykey,order,msg):
  8. response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
  9. if response.get('Item') == None and response.get('Item').get('https') == None:
  10. table.update_item(TableName=table_name,
  11. Key={'mykey': {'S':mykey}},
  12. UpdateExpression='SET https = :https, order = :order',
  13. ExpressionAttributeValues={
  14. ':https': {
  15. 'S': msg},
  16. ':order':{
  17. 'S': order}
  18. })
  19. else:
  20. pass
  21. def lambda_handler(event, context):
  22. message = json.loads(event['body'])['Message']
  23. mykey = json.loads(event['body'])['MessageAttributes']['mykey']['Value']
  24. order_orgain = json.loads(event['body'])['MessageAttributes']['order']['Value']
  25. order = f"{order_orgain.split(' ')[0][-1]}{order_orgain.split(' ')[1][-1]}{order_orgain.split(' ')[2][-1]}"
  26. updata_ddb(client=client,mykey=mykey,order=order,msg=message)
  27. return {
  28. 'statusCode': 200,
  29. 'body': json.dumps('Hello from Lambda!')
  30. }
  31. # sqs
  32. import boto3
  33. import json
  34. client = boto3.client('dynamodb')
  35. table_name = 'haha'
  36. def updata_ddb(client,mykey,msg):
  37. response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
  38. if response.get('Item') == None and response.get('Item').get('sqs') == None:
  39. table.update_item(TableName=table_name,
  40. Key={'mykey': {'S':mykey}},
  41. UpdateExpression='SET sqs = :sqs',
  42. ExpressionAttributeValues={
  43. ':sqs': {
  44. 'S': msg},
  45. })
  46. else:
  47. pass
  48. def lambda_handler(event,context):
  49. # TODO
  50. message = json.loads(event['Records'][0]['body'])['Message']
  51. mykey = json.loads(event['Records'][0]['body'])['MessageAttributes']['mykey']['Value']
  52. updata_ddb(client=client,mykey=mykey,msg=message)
  53. return {
  54. 'statusCode': 200,
  55. 'body': json.dumps('Hello from Lambda!')
  56. }
  57. # lambda
  58. import boto3
  59. import json
  60. import time
  61. client = boto3.client('dynamodb')
  62. table_name = 'haha'
  63. def updata_ddb(client,mykey,msg):
  64. response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
  65. if response.get('Item') == None and response.get('Item').get('lambda') == None:
  66. table.update_item(TableName=table_name,
  67. Key={'mykey': {'S':mykey}},
  68. UpdateExpression='SET lambda = :lambda',
  69. ExpressionAttributeValues={
  70. ':lambda': {
  71. 'S': msg},
  72. })
  73. else:
  74. pass
  75. def exec_sql(mykey,myvalue):
  76. conn2 = pymysql.connect(
  77. host='da.amazonaws.com.cn',
  78. port=3306,
  79. user='admin',
  80. passwd='12345678',
  81. db='cmd',
  82. charset='utf8mb4')
  83. cs2 = conn2.cursor()
  84. ex_sql = f'INSERT INTO kv (mykey, myvalue) VALUES ("{mykey}", "{myvalue}");'
  85. cs2.execute(ex_sql)
  86. conn2.commit()
  87. cs2.close()
  88. conn2.close()
  89. def sorta(num,sqs,https,lambdaa):
  90. if num == '012':
  91. return(f"{sqs}{https}{lambdaa}")
  92. elif num == '021':
  93. return(f"{sqs}{lambdaa}{https}")
  94. elif num == '102':
  95. return(f"{https}{sqs}{lambdaa}")
  96. elif num == '120':
  97. return(f"{lambdaa}{sqs}{https}")
  98. elif num == '201':
  99. return(f"{https}{lambdaa}{sqs}")
  100. elif num == '210':
  101. return(f"{lambdaa}{https}{sqs}")
  102. def lambda_handler(event,context):
  103. mykey = event['Records'][0]['Sns']['MessageAttributes']['mykey']['Value']
  104. message = event['Records'][0]['Sns']['Message']
  105. updata_ddb(client=client,mykey=mykey,msg=message)
  106. time.sleep(0.5)
  107. response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
  108. sqs_code = response.get('Item').get('sqs')
  109. https_code = response.get('Item').get('https')
  110. order_code = response.get('Item').get('order')
  111. lambda_code = response.get('Item').get('lambda')
  112. if sqs_code not None and https_code not None and order_code not None and lambda_code not None:
  113. myvalue = sorta(num=order_code,sqs=sqs_code,https=https_code,lambdaa=lambda_code)
  114. exec_sql(mykey=mykey,myvalue=myvalue)
  115. else:
  116. response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
  117. sqs_code = response.get('Item').get('sqs')
  118. https_code = response.get('Item').get('https')
  119. order_code = response.get('Item').get('order')
  120. lambda_code = response.get('Item').get('lambda')
  121. myvalue = sorta(num=order_code,sqs=sqs_code,https=https_code,lambdaa=lambda_code)
  122. exec_sql(mykey=mykey,myvalue=myvalue)
  123. return {
  124. 'statusCode': 200,
  125. 'body': json.dumps('Hello from Lambda!')
  126. }