@@ -9,7 +9,7 @@ DROP TYPE IF EXISTS aws_commons._s3_uri_1 CASCADE;
9
9
CREATE TYPE aws_commons ._s3_uri_1 AS (bucket TEXT , file_path TEXT , region TEXT );
10
10
11
11
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 );
13
13
14
14
DROP TYPE IF EXISTS aws_commons ._aws_credentials_1 CASCADE;
15
15
CREATE TYPE aws_commons ._aws_credentials_1 AS (access_key TEXT , secret_key TEXT , session_token TEXT );
@@ -295,20 +295,12 @@ $$;
295
295
-- Create a aws_commons._lambda_arn object that holds the lambda function's name, region and endpoint URL
296
296
--
297
297
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 )
299
299
RETURNS aws_commons ._lambda_function_arn_1 AS
300
300
$BODY$
301
301
DECLARE lambda_arn aws_commons ._lambda_function_arn_1 ;
302
302
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);
312
304
RETURN lambda_arn;
313
305
END
314
306
$BODY$
@@ -324,10 +316,15 @@ LANGUAGE plpython3u
324
316
AS $$
325
317
import boto3
326
318
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
+
327
324
client= boto3 .client (
328
325
service_name= ' lambda' ,
329
326
region_name= function_name[' region' ],
330
- endpoint_url= function_name[ ' endpoint_url ' ],
327
+ endpoint_url= settings[ ' endpoint_override ' ],
331
328
aws_access_key_id= ' localstack' ,
332
329
aws_secret_access_key= ' localstack'
333
330
)
@@ -360,8 +357,8 @@ $BODY$
360
357
BEGIN
361
358
SELECT result .status_code , result .payload ::JSON, result .executed_version , result .log_result
362
359
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
365
362
INTO status_code, payload, executed_version, log_result;
366
363
END
367
364
$BODY$
0 commit comments