Best Python code snippet using localstack_python
test_integration.py
Source: test_integration.py
...143 if len(EVENTS) != num_events:144 LOGGER.warning('DynamoDB and Kinesis updates retrieved (actual/expected): %s/%s' % (len(EVENTS), num_events))145 assert len(EVENTS) == num_events146 # check cloudwatch notifications147 stats1 = get_lambda_metrics(TEST_LAMBDA_NAME_STREAM)148 assert len(stats1['Datapoints']) == 2 + num_events_sns149 stats2 = get_lambda_metrics(TEST_LAMBDA_NAME_STREAM, 'Errors')150 assert len(stats2['Datapoints']) == 1151 stats3 = get_lambda_metrics(TEST_LAMBDA_NAME_DDB)152 assert len(stats3['Datapoints']) == 10153def test_kinesis_lambda_forward_chain():154 kinesis = aws_stack.connect_to_service('kinesis')155 s3 = aws_stack.connect_to_service('s3')156 aws_stack.create_kinesis_stream(TEST_CHAIN_STREAM1_NAME, delete=True)157 aws_stack.create_kinesis_stream(TEST_CHAIN_STREAM2_NAME, delete=True)158 s3.create_bucket(Bucket=TEST_BUCKET_NAME)159 # deploy test lambdas connected to Kinesis streams160 zip_file = testutil.create_lambda_archive(load_file(TEST_LAMBDA_PYTHON), get_content=True,161 libs=TEST_LAMBDA_LIBS, runtime=LAMBDA_RUNTIME_PYTHON27)162 testutil.create_lambda_function(func_name=TEST_CHAIN_LAMBDA1_NAME, zip_file=zip_file,163 event_source_arn=get_event_source_arn(TEST_CHAIN_STREAM1_NAME), runtime=LAMBDA_RUNTIME_PYTHON27)164 testutil.create_lambda_function(func_name=TEST_CHAIN_LAMBDA2_NAME, zip_file=zip_file,165 event_source_arn=get_event_source_arn(TEST_CHAIN_STREAM2_NAME), runtime=LAMBDA_RUNTIME_PYTHON27)166 # publish test record167 test_data = {'test_data': 'forward_chain_data_%s' % short_uid()}168 data = clone(test_data)169 data[lambda_integration.MSG_BODY_MESSAGE_TARGET] = 'kinesis:%s' % TEST_CHAIN_STREAM2_NAME170 kinesis.put_record(Data=to_bytes(json.dumps(data)), PartitionKey='testId', StreamName=TEST_CHAIN_STREAM1_NAME)171 # check results172 time.sleep(5)173 all_objects = testutil.list_all_s3_objects()174 testutil.assert_objects(test_data, all_objects)175# ---------------176# HELPER METHODS177# ---------------178def get_event_source_arn(stream_name):179 kinesis = aws_stack.connect_to_service('kinesis')180 return kinesis.describe_stream(StreamName=stream_name)['StreamDescription']['StreamARN']181def get_lambda_metrics(func_name, metric='Invocations'):182 return cloudwatch_util.get_metric_statistics(183 Namespace='AWS/Lambda',184 MetricName=metric,185 Dimensions=[{'Name': 'FunctionName', 'Value': func_name}],186 Period=60,187 StartTime=datetime.now() - timedelta(minutes=1),188 EndTime=datetime.now(),189 Statistics=['Sum']...
aws_lambda_metrics.py
Source: aws_lambda_metrics.py
...44aws_secret_access_key = config.get('xx', 'aws_secret_access_key')45aws_session_token = config.get('xx', 'aws_session_token')46CW_WINDOW = 5 # Min47PERIOD = 300 # Secs48def get_lambda_metrics(function_name,REGION_NAME):49 influx_client = InfluxDBClient(host='localhost', port=8086, database='telegraf')50 client = boto3.client('cloudwatch', region_name=REGION_NAME, aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, aws_session_token=aws_session_token)51 metrics = ['Invocations','Errors','Dead Letter Error','Duration','Throttles','IteratorAge','ConcurrentExecutions','UnreservedConcurrentExecutions']52 for metric in metrics:53 response = client.get_metric_statistics(54 Namespace = 'AWS/Lambda',55 MetricName = metric,56 Dimensions = [57 {58 'Name': 'FunctionName',59 'Value': function_name60 },61 ],62 StartTime = datetime.utcnow() - timedelta(minutes=CW_WINDOW),63 EndTime = datetime.utcnow(),64 Period = PERIOD,65 Statistics = [66 'Maximum',67 'Minimum',68 'Average',69 'Sum',70 'SampleCount'71 ],72 )73 74 recs = len(response['Datapoints'])75 #pprint.pprint(response, indent=2)76 count = 077 if recs > 0:78 while count < recs:79 aws_avg = response['Datapoints'][count]['Average']80 aws_max = response['Datapoints'][count]['Maximum']81 aws_min = response['Datapoints'][count]['Minimum']82 aws_sum = response['Datapoints'][count]['Sum']83 aws_smp = response['Datapoints'][count]['SampleCount']84 aws_tsp = response['Datapoints'][count]['Timestamp']85 aws_unt = response['Datapoints'][count]['Unit']86 #print line87 if aws_tsp is not None:88 pattern = '%Y-%m-%d %H:%M:%S+00:00'89 aws_tsp = str(int(time.mktime(time.strptime(str(aws_tsp), pattern)))) 90 line = function_name + ',' + metric + ',' + aws_unt + ' ' + 'minimum=' + str(aws_min) + ',' + 'maximum=' + str(aws_max) + ',' + 'average=' + str(aws_avg) + 'sum=' + str(aws_sum) + ',' + 'sample_count=' + str(aws_smp) + ' ' + aws_tsp + '000000000'91 data = [92 {93 "measurement": "LambdaMetrics",94 "tags": {95 "name": function_name,96 "unit": aws_unt,97 "env": "qa",98 "region": REGION_NAME,99 "metric": metric,100 },101 "time": str(aws_tsp),102 "fields": 103 {104 "minimum": float(aws_min),105 "maximum": float(aws_max),106 "average": float(aws_avg),107 "sum": float(aws_sum),108 "sample": float(aws_smp)109 }110 }111 ]112 print line113 print data114 #time.sleep(1)115 #influx_client.write_points(data)116 #print line117 logger.info('Sending: %s', line)118 count += 1119 return None120#@app.periodic_task(run_every=timedelta(seconds=60))121@app.task122def main():123 REGIONS = ['us-east-1','us-west-2']124 for REGION in REGIONS:125 logger.info('Region: %s', REGION)126 lambda_client = boto3.client('lambda', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key,aws_session_token=aws_session_token,region_name=REGION)127 funcs = lambda_client.list_functions()128 #pprint.pprint(funcs)129 count = 0130 total_fcn = len(funcs['Functions'])131 for key, value in funcs.items():132 if key == 'Functions':133 while count < total_fcn:134 #print 'Function Name: %s Description: %s | Runtime: %s | MemorySize: %s' %(value[count]['FunctionName'],value[count]['Description'],value[count]['Runtime'],value[count]['MemorySize'])135 #print value[count]['FunctionName']136 if re.findall(r'h2o',value[count]['FunctionName'],re.IGNORECASE):137 logger.info('Invoking get_lambda_metrics for %s', value[count]['FunctionName'])138 get_lambda_metrics(value[count]['FunctionName'],REGION)139 count += 1140if __name__=='__main__':...
verify_lambda.py
Source: verify_lambda.py
...11 }12 if 'AWS_SESSION_TOKEN' in os.environ:13 options['aws_session_token'] = os.environ['AWS_SESSION_TOKEN']14 return boto3.client(service, **options)15def get_lambda_metrics(metric):16 lambda_name = os.environ['LAMBDA']17 metrics = cw.get_metric_statistics(18 Namespace='AWS/Lambda',19 MetricName=metric,20 Dimensions=[{'Name': 'FunctionName', 'Value': lambda_name}],21 Period=60,22 Statistics=['Sum'],23 StartTime=datetime.today() - timedelta(hours=1),24 EndTime=datetime.today(),25 )26 return sum([x['Sum'] for x in metrics['Datapoints']])27def check_instance(instance, launch_config):28 return all([29 launch_config == instance.get('LaunchConfigurationName'),30 instance['HealthStatus'] == 'Healthy',31 instance['LifecycleState'] == 'InService'32 ])33autoscaling = get_client('autoscaling')34cw = get_client('cloudwatch')35print("Checking Autoscaling Group instances...\n")36asg_name = os.environ['ASG']37endtime = datetime.today() + timedelta(minutes=10)38while datetime.today() < endtime:39 response = autoscaling.describe_auto_scaling_groups(AutoScalingGroupNames=[asg_name])40 asg = response['AutoScalingGroups'][0]41 instance_count = len([x for x in asg['Instances'] if check_instance(x, asg['LaunchConfigurationName'])])42 if instance_count == asg['DesiredCapacity']:43 print("{} instances updated and healthy. Proceeding to invocation checks...\n".format(instance_count))44 break45 print("{} of {} instances updated and healthy. Timeout in {}".format(instance_count, asg['DesiredCapacity'],46 endtime - datetime.today()))47 time.sleep(15)48else:49 sys.exit("Error: Timed out waiting for ASG instances to update")50lambda_errors = get_lambda_metrics('Errors')51lambda_invocations = get_lambda_metrics('Invocations')52print("{} out of {} invocations generated errors\n".format(lambda_errors, lambda_invocations))53if lambda_errors > 0:54 sys.exit("Error: Lambda function encountered errors.")55else:...
Check out the latest blogs from LambdaTest on this topic:
The fact is not alien to us anymore that cross browser testing is imperative to enhance your application’s user experience. Enhanced knowledge of popular and highly acclaimed testing frameworks goes a long way in developing a new app. It holds more significance if you are a full-stack developer or expert programmer.
QA testers have a unique role and responsibility to serve the customer. Serving the customer in software testing means protecting customers from application defects, failures, and perceived failures from missing or misunderstood requirements. Testing for known requirements based on documentation or discussion is the core of the testing profession. One unique way QA testers can both differentiate themselves and be innovative occurs when senseshaping is used to improve the application user experience.
Having a good web design can empower business and make your brand stand out. According to a survey by Top Design Firms, 50% of users believe that website design is crucial to an organization’s overall brand. Therefore, businesses should prioritize website design to meet customer expectations and build their brand identity. Your website is the face of your business, so it’s important that it’s updated regularly as per the current web design trends.
Enterprise resource planning (ERP) is a form of business process management software—typically a suite of integrated applications—that assists a company in managing its operations, interpreting data, and automating various back-office processes. The introduction of a new ERP system is analogous to the introduction of a new product into the market. If the product is not handled appropriately, it will fail, resulting in significant losses for the business. Most significantly, the employees’ time, effort, and morale would suffer as a result of the procedure.
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!