| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- import json
- import boto3
- import time
- def lambda_handler(event, context):
- print(event)
- msg = json.loads(event['body'])
- secret = msg['secret_code']
- print(secret)
-
- client = boto3.client('dynamodb')
-
- table_name = "xdctb"
- # timedata = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
- response = client.update_item(
- TableName=table_name,
- # ExpressionAttributeNames={
- # 'skip': secret,
- # },
- ExpressionAttributeValues={
- ':y': {
- 'S': secret,
- }
- },
- Key={
- 'dtime': {
- 'S': '20200605',
- }
- },
- UpdateExpression='SET skip = :y',
- ReturnValues="UPDATED_NEW"
- )
-
- return {
- "statusCode": 200,
- "isBase64Encoded": False,
- "headers": {
- "Content-Type": "application/json; charset=utf-8"
- },
- "body": "OK ! "
- }
- #=======================第一版本=========================#
- import json
- import boto3
- import time
- def lambda_handler(event, context):
- print(event)
- msg = json.loads(event['body'])
- secret = msg['secret_code']
- print(secret)
-
- client = boto3.client('dynamodb')
-
- table_name = "xdctb"
- # timedata = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
- response = client.update_item(
- TableName=table_name,
- Key={
- 'dtime': {
- 'S': '20200605',
- },
- 'skip': {
- 'S': secret,
- },
- })
-
- # print(timedata)
- return {
- "statusCode": 200,
- "isBase64Encoded": False,
- "headers": {
- "Content-Type": "application/json; charset=utf-8"
- },
- "body": "OK ! "
- }
- # ========================? v2 ========================
- import boto3
- import json
- import time
- import base64
- from botocore.exceptions import ClientError
- print('Loading function')
- dynamodb = boto3.client('dynamodb')
- def respond(err, res=None):
- return {
- 'statusCode': '400' if err else '200',
- 'body': err.message if err else json.dumps(res),
- 'headers': {
- 'Content-Type': 'application/json',
- },
- }
- def lambda_handler(event, context):
- response = {}
- response["headers"] = event["headers"]
- #dynamodb.put_item(TableName='K12D', Item= {'id':{"S": json.loads(event['body'])["secret_code"]},'key':{"S": str(round(time.time()))}})
- #ret_data=dynamodb.scan(TableName='K12D')
- secret_name = "test"
- region_name = "cn-northwest-1"
- # Create a Secrets Manager client
- session = boto3.session.Session()
- client = session.client(
- service_name='secretsmanager',
- region_name=region_name
- )
- # In this sample we only handle the specific exceptions for the 'GetSecretValue' API.
- # See https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html
- # We rethrow the exception by default.
- try:
- get_secret_value_response = client.get_secret_value(
- SecretId=secret_name
- )
- except ClientError as e:
- if e.response['Error']['Code'] == 'DecryptionFailureException':
- # Secrets Manager can't decrypt the protected secret text using the provided KMS key.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- elif e.response['Error']['Code'] == 'InternalServiceErrorException':
- # An error occurred on the server side.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- elif e.response['Error']['Code'] == 'InvalidParameterException':
- # You provided an invalid value for a parameter.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- elif e.response['Error']['Code'] == 'InvalidRequestException':
- # You provided a parameter value that is not valid for the current state of the resource.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- elif e.response['Error']['Code'] == 'ResourceNotFoundException':
- # We can't find the resource that you asked for.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- else:
- # Decrypts secret using the associated KMS CMK.
- # Depending on whether the secret is a string or binary, one of these fields will be populated.
- if 'SecretString' in get_secret_value_response:
- secret = get_secret_value_response['SecretString']
- else:
- decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])
-
- #updated_secret=get_secret_value_response.update({"key": "test223123123"})
- try:
- client.update_secret(SecretId=secret_name, SecretString=json.dumps(json.loads(event['body'])["secret_code"]))
- return {
- 'statusCode': 200,
- #'body': json.loads(event['body'])["secret_code"]
- #'body': str(max(ret_data['Items'].key))
- #'body': json.loads(get_secret_value_response['SecretString'])['key']
- #'body': get_secret_value_response['SecretString']
- 'body': json.loads(event['body'])["secret_code"]
- }
- except:
- return {
- 'statusCode': 200,
- #'body': json.loads(event['body'])["secret_code"]
- #'body': str(max(ret_data['Items'].key))
- #'body': json.loads(get_secret_value_response['SecretString'])['key']
- #'body': get_secret_value_response['SecretString']
- 'body': json.loads(get_secret_value_response['SecretString'])
- }
- # ========================? v3 ========================
- import boto3
- import json
- import time
- import base64
- from botocore.exceptions import ClientError
- print('Loading function')
- dynamodb = boto3.client('dynamodb')
- def respond(err, res=None):
- return {
- 'statusCode': '400' if err else '200',
- 'body': err.message if err else json.dumps(res),
- 'headers': {
- 'Content-Type': 'application/json',
- },
- }
- def lambda_handler(event, context):
- response = {}
- response["headers"] = event["headers"]
- #dynamodb.put_item(TableName='K12D', Item= {'id':{"S": json.loads(event['body'])["secret_code"]},'key':{"S": str(round(time.time()))}})
- #ret_data=dynamodb.scan(TableName='K12D')
- secret_name = "test"
- region_name = "cn-northwest-1"
- # Create a Secrets Manager client
- session = boto3.session.Session()
- client = session.client(
- service_name='secretsmanager',
- region_name=region_name
- )
- # In this sample we only handle the specific exceptions for the 'GetSecretValue' API.
- # See https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html
- # We rethrow the exception by default.
- try:
- get_secret_value_response = client.get_secret_value(
- SecretId=secret_name
- )
- except ClientError as e:
- if e.response['Error']['Code'] == 'DecryptionFailureException':
- # Secrets Manager can't decrypt the protected secret text using the provided KMS key.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- elif e.response['Error']['Code'] == 'InternalServiceErrorException':
- # An error occurred on the server side.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- elif e.response['Error']['Code'] == 'InvalidParameterException':
- # You provided an invalid value for a parameter.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- elif e.response['Error']['Code'] == 'InvalidRequestException':
- # You provided a parameter value that is not valid for the current state of the resource.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- elif e.response['Error']['Code'] == 'ResourceNotFoundException':
- # We can't find the resource that you asked for.
- # Deal with the exception here, and/or rethrow at your discretion.
- raise e
- else:
- # Decrypts secret using the associated KMS CMK.
- # Depending on whether the secret is a string or binary, one of these fields will be populated.
- if 'SecretString' in get_secret_value_response:
- secret = get_secret_value_response['SecretString']
- else:
- decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])
-
- #updated_secret=get_secret_value_response.update({"key": "test223123123"})
- try:
- client.update_secret(SecretId=secret_name, SecretString=json.dumps(json.loads(event['body'])["secret_code"]))
- return {
- 'statusCode': 200,
- #'body': json.loads(event['body'])["secret_code"]
- #'body': str(max(ret_data['Items'].key))
- #'body': json.loads(get_secret_value_response['SecretString'])['key']
- #'body': get_secret_value_response['SecretString']
- 'body': json.loads(event['body'])["secret_code"]
- }
- except:
- return {
- 'statusCode': 200,
- #'body': json.loads(event['body'])["secret_code"]
- #'body': str(max(ret_data['Items'].key))
- #'body': json.loads(get_secret_value_response['SecretString'])['key']
- #'body': get_secret_value_response['SecretString']
- 'body': json.loads(get_secret_value_response['SecretString'])
- }
|