zjw-foundation.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. # 1、HTTPS
  2. import json
  3. import boto3
  4. def lambda_handler(event, context):
  5. print (event)
  6. dynamodb = boto3.resource('dynamodb')
  7. table = dynamodb.Table('message')
  8. body=json.loads(event['body'])
  9. mykey = body['MessageAttributes']['mykey']['Value']
  10. seq = body['MessageAttributes']['order']['Value']
  11. https = body['Message']
  12. response = table.get_item(
  13. Key={
  14. 'mykey': mykey
  15. }
  16. )
  17. item = {'mykey': {'S': mykey},
  18. 'seq': {'S': seq},
  19. 'https': {'S': https}
  20. }
  21. if response:
  22. table.update_item(
  23. Key={
  24. 'mykey': mykey
  25. },
  26. UpdateExpression='SET https = :https',
  27. ExpressionAttributeValues={
  28. ':https': https
  29. }
  30. )
  31. table.update_item(
  32. Key={
  33. 'mykey': mykey
  34. },
  35. UpdateExpression='SET seq = :seq',
  36. ExpressionAttributeValues={
  37. ':seq': seq
  38. }
  39. )
  40. else:
  41. table.put_item(Item = item)
  42. # 2、lambda
  43. import json
  44. import boto3
  45. def lambda_handler(event, context):
  46. dynamodb = boto3.resource('dynamodb')
  47. table = dynamodb.Table('message')
  48. body=event['Records'][0]['Sns']
  49. mykey = body['MessageAttributes']['mykey']['Value']
  50. seq = body['MessageAttributes']['order']['Value']
  51. lamb = body['Message']
  52. response = table.get_item(
  53. Key={
  54. 'mykey': mykey
  55. }
  56. )
  57. item = { 'mykey': {'S': mykey},
  58. 'seq': {'S': seq},
  59. 'lamb': {'S': lamb}
  60. }
  61. if response:
  62. table.update_item(
  63. Key={
  64. 'mykey': mykey
  65. },
  66. UpdateExpression='SET lamb = :lamb',
  67. ExpressionAttributeValues={
  68. ':lamb': lamb
  69. }
  70. )
  71. else:
  72. table.put_item(Item = item)
  73. # 3、 SQS
  74. import json
  75. import boto3
  76. def lambda_handler(event, context):
  77. dynamodb = boto3.resource('dynamodb')
  78. table = dynamodb.Table('message')
  79. print (event)
  80. body=json.loads(event['Records'][0]['body'])
  81. mykey = body['MessageAttributes']['mykey']['Value']
  82. seq = body['MessageAttributes']['order']['Value']
  83. sqs = body['Message']
  84. response = table.get_item(
  85. Key={
  86. 'mykey': mykey
  87. }
  88. )
  89. item = { 'mykey': {'S': mykey},
  90. 'seq': {'S': seq},
  91. 'sqs': {'S': sqs}
  92. }
  93. if response:
  94. table.update_item(
  95. Key={
  96. 'mykey': mykey
  97. },
  98. UpdateExpression='SET sqs = :sqs',
  99. ExpressionAttributeValues={
  100. ':sqs': sqs
  101. }
  102. )
  103. else:
  104. table.put_item(Item = item)
  105. # 4、 pymysql
  106. import json
  107. import boto3
  108. import pymysql
  109. def lambda_handler(event, context):
  110. dynamodb = boto3.resource('dynamodb')
  111. table = dynamodb.Table('message')
  112. print(event)
  113. mykey = event['Records'][0]['dynamodb']['Keys']['mykey']['S']
  114. #order = event['Records'][0]['dynamodb']['NewImage']['order']['S']
  115. #sqs = event['Records'][0]['dynamodb']['NewImage']['sqs']['S']
  116. #https = event['Records'][0]['dynamodb']['NewImage']['https']['S']
  117. #lamb = event['Records'][0]['dynamodb']['NewImage']['lambda']['S']
  118. response = table.get_item(
  119. Key={
  120. 'mykey': mykey
  121. }
  122. )
  123. if 'Item' in response:
  124. item = response['Item']
  125. if 'sqs' in item and 'lamb' in item and 'https' in item and 'seq' in item:
  126. seq = item['seq']
  127. sqs = item['sqs']
  128. lamb = item['lamb']
  129. https = item['https']
  130. else:
  131. return
  132. else:
  133. return
  134. message = ''
  135. seqs = seq.split()
  136. print(seqs)
  137. for iterator in seqs:
  138. result = iterator.split(':')
  139. #print('result:'+result)
  140. if result[1] == '0':
  141. if result[0] == 'SQS':
  142. message = sqs
  143. elif result[0] == 'HTTPS':
  144. message = https
  145. elif result[0] == 'LAMBDA':
  146. message = lamb
  147. for iterator in seqs:
  148. result = iterator.split(':')
  149. if result[1] == '1':
  150. if result[0] == 'SQS':
  151. message += sqs
  152. elif result[0] == 'HTTPS':
  153. message += https
  154. elif result[0] == 'LAMBDA':
  155. message += lamb
  156. for iterator in seqs:
  157. result = iterator.split(':')
  158. if result[1] == '2':
  159. if result[0] == 'SQS':
  160. message += sqs
  161. elif result[0] == 'HTTPS':
  162. message += https
  163. elif result[0] == 'LAMBDA':
  164. message += lamb
  165. print (message)
  166. db = pymysql.connect("mydbinst.cf6cb5zflfqe.rds.cn-northwest-1.amazonaws.com.cn","admin","12345678","mydb" )
  167. cursor = db.cursor()
  168. sql = "insert into kv(mykey, myvalue) values( %s, %s)"
  169. val = (mykey, message)
  170. #try:
  171. cursor.execute(sql, val)
  172. db.commit()
  173. #except:
  174. # db.rollback()
  175. db.close()