瀏覽代碼

add SNS-SQS-Lambda-HTTPS.py.

xdc 5 年之前
父節點
當前提交
457222ff63
共有 1 個文件被更改,包括 149 次插入0 次删除
  1. 149 0
      SNS-SQS-Lambda-HTTPS.py

+ 149 - 0
SNS-SQS-Lambda-HTTPS.py

@@ -0,0 +1,149 @@
+
+##
+## 1、HTTPS 
+
+import boto3
+import json
+
+client = boto3.client('dynamodb')
+table_name = 'haha'
+def updata_ddb(client,mykey,order,msg):
+    response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
+    if response.get('Item') == None and response.get('Item').get('https') == None:
+        table.update_item(TableName=table_name,
+            Key={'mykey': {'S':mykey}},
+            UpdateExpression='SET https = :https, order = :order',
+            ExpressionAttributeValues={
+            ':https': {
+                'S': msg},
+            ':order':{
+                'S': order}
+            })
+    else:
+        pass
+def lambda_handler(event, context):
+
+    message = json.loads(event['body'])['Message']
+    mykey = json.loads(event['body'])['MessageAttributes']['mykey']['Value']
+    order_orgain = json.loads(event['body'])['MessageAttributes']['order']['Value']
+    order = f"{order_orgain.split(' ')[0][-1]}{order_orgain.split(' ')[1][-1]}{order_orgain.split(' ')[2][-1]}"
+    updata_ddb(client=client,mykey=mykey,order=order,msg=message)
+
+    return {
+        'statusCode': 200,
+        'body': json.dumps('Hello from Lambda!')
+        }
+
+
+# sqs
+
+import boto3
+import json
+
+client = boto3.client('dynamodb')
+table_name = 'haha'
+def updata_ddb(client,mykey,msg):
+    response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
+    if response.get('Item') == None and response.get('Item').get('sqs') == None:
+        table.update_item(TableName=table_name,
+            Key={'mykey': {'S':mykey}},
+            UpdateExpression='SET sqs = :sqs',
+            ExpressionAttributeValues={
+            ':sqs': {
+                'S': msg},
+                })
+    else:
+        pass
+
+def lambda_handler(event,context):
+    # TODO
+    message = json.loads(event['Records'][0]['body'])['Message']
+    mykey = json.loads(event['Records'][0]['body'])['MessageAttributes']['mykey']['Value']
+    updata_ddb(client=client,mykey=mykey,msg=message)
+
+    return {
+        'statusCode': 200,
+        'body': json.dumps('Hello from Lambda!')
+        }
+
+
+#  lambda
+
+import boto3
+import json
+import time
+
+client = boto3.client('dynamodb')
+table_name = 'haha'
+def updata_ddb(client,mykey,msg):
+    response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
+    if response.get('Item') == None and response.get('Item').get('lambda') == None:
+        table.update_item(TableName=table_name,
+            Key={'mykey': {'S':mykey}},
+            UpdateExpression='SET lambda = :lambda',
+            ExpressionAttributeValues={
+            ':lambda': {
+                'S': msg},
+                })
+    else:
+        pass
+
+def exec_sql(mykey,myvalue):
+    conn2 = pymysql.connect(
+        host='da.amazonaws.com.cn',
+        port=3306,
+        user='admin',
+        passwd='12345678',
+        db='cmd',
+        charset='utf8mb4')
+
+    cs2 = conn2.cursor()
+    ex_sql = f'INSERT INTO kv (mykey, myvalue) VALUES ("{mykey}", "{myvalue}");'
+    cs2.execute(ex_sql)
+    conn2.commit()
+    cs2.close()
+    conn2.close()
+def sorta(num,sqs,https,lambdaa):
+    if num == '012':
+        return(f"{sqs}{https}{lambdaa}")
+    elif num == '021':
+        return(f"{sqs}{lambdaa}{https}")
+    elif num == '102':
+        return(f"{https}{sqs}{lambdaa}")
+    elif num == '120':
+        return(f"{lambdaa}{sqs}{https}")
+    elif num == '201':
+        return(f"{https}{lambdaa}{sqs}")
+    elif num == '210':
+        return(f"{lambdaa}{https}{sqs}")
+
+def lambda_handler(event,context):
+    mykey = event['Records'][0]['Sns']['MessageAttributes']['mykey']['Value']
+    message = event['Records'][0]['Sns']['Message']
+    updata_ddb(client=client,mykey=mykey,msg=message)
+    time.sleep(0.5)
+    response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
+
+    sqs_code = response.get('Item').get('sqs')
+    https_code = response.get('Item').get('https')
+    order_code = response.get('Item').get('order')
+    lambda_code = response.get('Item').get('lambda')
+
+    if sqs_code not None and https_code not None and order_code not None and lambda_code not None:
+        myvalue = sorta(num=order_code,sqs=sqs_code,https=https_code,lambdaa=lambda_code)
+        exec_sql(mykey=mykey,myvalue=myvalue)
+    else:
+        response = client.get_item(TableName='hehe',Key={'mykey':{'S':mykey}})
+        sqs_code = response.get('Item').get('sqs')
+        https_code = response.get('Item').get('https')
+        order_code = response.get('Item').get('order')
+        lambda_code = response.get('Item').get('lambda')
+        myvalue = sorta(num=order_code,sqs=sqs_code,https=https_code,lambdaa=lambda_code)
+        exec_sql(mykey=mykey,myvalue=myvalue)
+
+
+    return {
+        'statusCode': 200,
+        'body': json.dumps('Hello from Lambda!')
+        }
+