SNS-SQS-Lambda-HTTPS.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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. import pymysql
  62. client = boto3.client('dynamodb')
  63. table_name = 'haha'
  64. def updata_ddb(client,mykey,msg):
  65. response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
  66. if response.get('Item') == None and response.get('Item').get('lambda') == None:
  67. table.update_item(TableName=table_name,
  68. Key={'mykey': {'S':mykey}},
  69. UpdateExpression='SET lambda = :lambda',
  70. ExpressionAttributeValues={
  71. ':lambda': {
  72. 'S': msg},
  73. })
  74. else:
  75. pass
  76. def exec_sql(mykey,myvalue):
  77. conn2 = pymysql.connect(
  78. host='da.amazonaws.com.cn',
  79. port=3306,
  80. user='admin',
  81. passwd='12345678',
  82. db='cmd',
  83. charset='utf8mb4')
  84. cs2 = conn2.cursor()
  85. ex_sql = f'INSERT INTO kv (mykey, myvalue) VALUES ("{mykey}", "{myvalue}");'
  86. cs2.execute(ex_sql)
  87. conn2.commit()
  88. cs2.close()
  89. conn2.close()
  90. def sorta(num,sqs,https,lambdaa):
  91. if num == '012':
  92. return(f"{sqs}{https}{lambdaa}")
  93. elif num == '021':
  94. return(f"{sqs}{lambdaa}{https}")
  95. elif num == '102':
  96. return(f"{https}{sqs}{lambdaa}")
  97. elif num == '120':
  98. return(f"{lambdaa}{sqs}{https}")
  99. elif num == '201':
  100. return(f"{https}{lambdaa}{sqs}")
  101. elif num == '210':
  102. return(f"{lambdaa}{https}{sqs}")
  103. def lambda_handler(event,context):
  104. mykey = event['Records'][0]['Sns']['MessageAttributes']['mykey']['Value']
  105. message = event['Records'][0]['Sns']['Message']
  106. updata_ddb(client=client,mykey=mykey,msg=message)
  107. time.sleep(0.5)
  108. response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
  109. sqs_code = response.get('Item').get('sqs')
  110. https_code = response.get('Item').get('https')
  111. order_code = response.get('Item').get('order')
  112. lambda_code = response.get('Item').get('lambda')
  113. if sqs_code not None and https_code not None and order_code not None and lambda_code not None:
  114. myvalue = sorta(num=order_code,sqs=sqs_code,https=https_code,lambdaa=lambda_code)
  115. exec_sql(mykey=mykey,myvalue=myvalue)
  116. else:
  117. response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
  118. sqs_code = response.get('Item').get('sqs')
  119. https_code = response.get('Item').get('https')
  120. order_code = response.get('Item').get('order')
  121. lambda_code = response.get('Item').get('lambda')
  122. myvalue = sorta(num=order_code,sqs=sqs_code,https=https_code,lambdaa=lambda_code)
  123. exec_sql(mykey=mykey,myvalue=myvalue)
  124. return {
  125. 'statusCode': 200,
  126. 'body': json.dumps('Hello from Lambda!')
  127. }