How to use api_invoke_url method in localstack

Best Python code snippet using localstack_python

test_cloudformation_apigateway.py

Source:test_cloudformation_apigateway.py Github

copy

Full Screen

...96 apis = [api for api in apigateway_client.get_rest_apis()["items"] if api["name"] == api_name]97 assert len(apis) == 198 api_id = apis[0]["id"]99 # construct API endpoint URL100 url = api_invoke_url(api_id, stage="dev", path="/test")101 # invoke API endpoint, assert results102 result = requests.post(url, data="test 123")103 assert result.ok104 content = json.loads(to_str(result.content))105 assert content["data"] == "test 123"106 assert content["url"].endswith("/post")107@pytest.mark.only_localstack108def test_url_output(apigateway_client, tmp_http_server, deploy_cfn_template):109 test_port, invocations, proxy = tmp_http_server110 integration_uri = f"http://localhost:{test_port}/{{proxy}}"111 api_name = f"rest-api-{short_uid()}"112 stack = deploy_cfn_template(113 template_path=os.path.join(114 os.path.dirname(__file__), "../templates/apigateway-url-output.yaml"...

Full Screen

Full Screen

detectron2_cloud_vision_api_client.py

Source:detectron2_cloud_vision_api_client.py Github

copy

Full Screen

1# import some common libraries2# Using Python Request library3import requests4import json5import numpy as np6import time7import io8from PIL import Image, ImageDraw, ImageFont9# Define Constants10API_INVOKE_URL="<INSERT_API_INVOKE_URL>"11# define variables12url=API_INVOKE_URL13#Used to print time lapsed during different parts of code execution.14def printTimeStamp(start, log):15 end = time.time()16 print(log + ': time: {0:.2f}s'.format(end-start))17#Program reference start timestamp18# start = time.time()19# printTimeStamp(start, "Detection Time")20def cloud_api_predict(headers, payload):21 # send POST request to url22 return requests.request("POST", url, headers=headers, data=payload).text23def get_prediction_data(predictions_json):24 # Parse inference results received from the API call25 res = json.loads(predictions_json) # convert json string to Python dict for parsing26 # opacity=15027 boxes=res[0]["pred_boxes"]28 panoptic_seg=np.array(res[0]["panoptic_seg"])29 instance_list=res[0]["instance_list"]30 return boxes, panoptic_seg, instance_list31# Define Panoptic segmentation visualizer function32def pan_seg_visualizer(panoptic_seg, instance_list, metadata, boxes, opacity):33 stuff_classes=metadata["stuff_classes"]34 stuff_colors=metadata["stuff_colors"]35 thing_classes=metadata["thing_classes"]36 thing_colors=metadata["thing_colors"]37 rgba = np.zeros([480,640,4], dtype = np.uint8)38 rgba[:, :] = [255, 255, 255, 0]39 font = ImageFont.truetype('./fonts/Ubuntu-Bold.ttf', 8)40 stuff_array=[]41 for seg_info in instance_list:42 maskX=(panoptic_seg==seg_info["id"])43 binary_mask=np.array((maskX == True), dtype=int)44 if (seg_info["isthing"]):45 color=thing_colors[seg_info["category_id"]]46 rgba[(binary_mask == 1), :] = np.append(color, opacity)47 else: # isStuff48 name=stuff_classes[seg_info['category_id']]49# if (name=="road"): # filter stuff to display50 color=stuff_colors[seg_info["category_id"]]51 x,y = np.argwhere(binary_mask == 1).mean(axis=0)52 stuff_array.append((name,x,y))53 rgba[(binary_mask == 1), :] = np.append(color, opacity)54 maskXImg = Image.fromarray(np.asarray(rgba),mode='RGBA')55 draw = ImageDraw.Draw(maskXImg)56# Draw boxes and instance labels57 for seg_info, box in zip(instance_list, boxes):58 if(seg_info["isthing"]): #only process things not stuff59 # text = f"{thing_classes[seg_info['category_id']]} {.85:.0%}" # this only works with python 3.6 and above60 text = "{0} {1:.0%}".format(thing_classes[seg_info['category_id']], seg_info['score'])61 txtSize = font.getsize(text)62 width_text, height_text = txtSize[0], txtSize[1]63 draw.rectangle([(box[0], box[1]-height_text), (box[0] + width_text, box[1])], fill=(0,0,0))#text background rectangle64 draw.text((box[0], box[1]-height_text), text, fill=(255, 255, 255)) # draw text on instance65 draw.rectangle([(box[0], box[1]), (box[2], box[3])], outline=(0,255,0))#blue rectangle66 for stuff in stuff_array: 67 x1=stuff[1]68 y1=stuff[2]69 text=stuff[0]70 txtSize = font.getsize(text)71 width_text, height_text = txtSize[0], txtSize[1]72 draw.rectangle([(y1, x1), (y1 + width_text, x1+height_text)], fill=(0,0,0))#text background rectangle73 draw.text((y1, x1), text, fill=(255, 255, 255)) # draw text on instance...

Full Screen

Full Screen

__main__.py

Source:__main__.py Github

copy

Full Screen

1import json2import pulumi3import pulumi_aws as aws4config = {}5with open('./config.json') as fp:6 config = json.load(fp)7APP_NAME = config['AppName']8LAMBDA_ROLE = config['LambdaRole']9connection_table = aws.dynamodb.Table(10 f'{APP_NAME}Connections',11 name=f'{APP_NAME}Connections',12 attributes=[13 aws.dynamodb.TableAttributeArgs(14 name='ConnectionId',15 type='S',16 ),17 ],18 billing_mode='PROVISIONED',19 hash_key='ConnectionId',20 read_capacity=5,21 write_capacity=5,22)23ws_handler = aws.lambda_.Function(24 f'{APP_NAME}WebsocketHandler',25 name=f'{APP_NAME}WebsocketHandler',26 role=LAMBDA_ROLE,27 runtime='python3.8',28 handler='app.lambda_handler',29 code=pulumi.AssetArchive({30 '.': pulumi.FileArchive('./initial_code'),31 }),32)33ws_api = aws.apigatewayv2.Api(34 f'{APP_NAME}WebsocketAPI',35 name=f'{APP_NAME}WebsocketAPI',36 protocol_type='WEBSOCKET',37 route_selection_expression='$request.body.action',38)39lambda_integration = aws.apigatewayv2.Integration(40 f'{APP_NAME}LambdaIntegration',41 api_id=ws_api.id,42 integration_type='AWS_PROXY',43 connection_type='INTERNET',44 content_handling_strategy='CONVERT_TO_TEXT',45 integration_method='POST',46 integration_uri=ws_handler.invoke_arn,47 passthrough_behavior='WHEN_NO_MATCH',48)49connect_route = aws.apigatewayv2.Route(50 f'{APP_NAME}ConnectRoute',51 api_id=ws_api.id,52 route_key='$connect',53 target=lambda_integration.id.apply(lambda integration_id: 'integrations/' + integration_id),54)55disconnect_route = aws.apigatewayv2.Route(56 f'{APP_NAME}DisconnectRoute',57 api_id=ws_api.id,58 route_key='$disconnect',59 target=lambda_integration.id.apply(lambda integration_id: 'integrations/' + integration_id),60)61default_route = aws.apigatewayv2.Route(62 f'{APP_NAME}DefaultRoute',63 api_id=ws_api.id,64 route_key='$default',65 target=lambda_integration.id.apply(lambda integration_id: 'integrations/' + integration_id),66)67stage = aws.apigatewayv2.Stage(68 f'{APP_NAME}APIStage',69 name=f'ws',70 api_id=ws_api.id,71 auto_deploy=True,72)73invoke_permission = aws.lambda_.Permission(74 f'{APP_NAME}LambdaPermission',75 action='lambda:invokeFunction',76 function=ws_handler.name,77 principal='apigateway.amazonaws.com',78 source_arn=stage.execution_arn.apply(lambda arn: arn + '*/*'),79)80pulumi.export('api_endpoint', ws_api.api_endpoint)...

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run localstack automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful