Skip to content

Commit 6a1d771

Browse files
roegimchrza
authored andcommitted
Add aws_lambda session variables with according default values
- aws_commons.connect_timeout_ms = 1000 - aws_commons.request_timeout_ms = 3000 - aws_commons.endpoint_override = http://localstack:4566 Also remove the unnecessary endpointUrl field from custom type aws_commons._lambda_function_arn_1
1 parent 2692fea commit 6a1d771

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

aws_s3--0.0.1.sql

+11-14
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ DROP TYPE IF EXISTS aws_commons._s3_uri_1 CASCADE;
99
CREATE TYPE aws_commons._s3_uri_1 AS (bucket TEXT, file_path TEXT, region TEXT);
1010

1111
DROP TYPE IF EXISTS aws_commons._lambda_function_arn_1 CASCADE;
12-
CREATE TYPE aws_commons._lambda_function_arn_1 AS (function_name TEXT, region TEXT, endpoint_url TEXT);
12+
CREATE TYPE aws_commons._lambda_function_arn_1 AS (function_name TEXT, region TEXT);
1313

1414
DROP TYPE IF EXISTS aws_commons._aws_credentials_1 CASCADE;
1515
CREATE TYPE aws_commons._aws_credentials_1 AS (access_key TEXT, secret_key TEXT, session_token TEXT);
@@ -295,20 +295,12 @@ $$;
295295
-- Create a aws_commons._lambda_arn object that holds the lambda function's name, region and endpoint URL
296296
--
297297

298-
CREATE OR REPLACE FUNCTION aws_commons.create_lambda_function_arn(functionNameOrArn TEXT, regionOrEndpoint TEXT DEFAULT NULL)
298+
CREATE OR REPLACE FUNCTION aws_commons.create_lambda_function_arn(functionName TEXT, region TEXT DEFAULT NULL)
299299
RETURNS aws_commons._lambda_function_arn_1 AS
300300
$BODY$
301301
DECLARE lambda_arn aws_commons._lambda_function_arn_1;
302302
BEGIN
303-
IF regionOrEndpoint IS NULL THEN
304-
lambda_arn := (split_part(functionNameOrArn, ':', -1), split_part(functionNameOrArn, ':', 4), NULL);
305-
ELSE
306-
IF starts_with(regionOrEndpoint, 'http') THEN
307-
lambda_arn := (split_part(functionNameOrArn, ':', -1), 'eu-west-1', regionOrEndpoint);
308-
ELSE
309-
lambda_arn := (split_part(functionNameOrArn, ':', -1), regionOrEndpoint, NULL);
310-
END IF;
311-
END IF;
303+
lambda_arn := (functionName, region);
312304
RETURN lambda_arn;
313305
END
314306
$BODY$
@@ -324,10 +316,15 @@ LANGUAGE plpython3u
324316
AS $$
325317
import boto3
326318

319+
settings = plpy.execute("""SELECT
320+
coalesce(current_setting('aws_commons.connect_timeout_ms', true), '1000')::INTEGER AS connect_timeout_ms,
321+
coalesce(current_setting('aws_commons.request_timeout_ms', true), '3000')::INTEGER AS request_timeout_ms,
322+
coalesce(current_setting('aws_commons.endpoint_override', true), 'http://localstack:4566') AS endpoint_override""")[0]
323+
327324
client=boto3.client(
328325
service_name='lambda',
329326
region_name=function_name['region'],
330-
endpoint_url=function_name['endpoint_url'],
327+
endpoint_url=settings['endpoint_override'],
331328
aws_access_key_id='localstack',
332329
aws_secret_access_key='localstack'
333330
)
@@ -360,8 +357,8 @@ $BODY$
360357
BEGIN
361358
SELECT result.status_code, result.payload::JSON, result.executed_version, result.log_result
362359
FROM aws_lambda._boto3_invoke(function_name, req_payload::TEXT,
363-
region, invocation_type, log_type, context::TEXT,
364-
qualifier) result
360+
region, invocation_type, log_type,
361+
context::TEXT, qualifier) result
365362
INTO status_code, payload, executed_version, log_result;
366363
END
367364
$BODY$

0 commit comments

Comments
 (0)