예제: RDS for PostgreSQL DB 인스턴스에서 Lambda 함수 호출
다음에서 aws_lambda.invoke 함수를 호출하는 몇 가지 예를 찾을 수 있습니다. 예제 대부분은 4단계: RDS for PostgreSQL DB 인스턴스와 함께 Lambda 도우미 함수 사용(선택 사항)에서 생성한 복합 구조 aws_lambda_arn_1
을 사용하여 함수 세부 정보 전달을 단순화합니다. 비동기 호출의 예는 예제: Lambda 함수의 비동기 (이벤트) 호출 섹션을 참조하세요. 나열된 다른 모든 예에서 동기 호출을 사용합니다.
Lambda 호출 유형에 대한 자세한 내용은 AWS Lambda 개발자 안내서의 Lambda 함수 호출을 참조하세요. aws_lambda_arn_1
에 대한 자세한 정보는 aws_commons.create_lambda_function_arn 섹션을 참조하십시오.
예제 목록
예제: Lambda 함수의 동기(RequestResponse) 호출
다음은 동기식 Lambda 함수 호출의 두 가지 예입니다. 이러한 aws_lambda.invoke
함수 호출의 결과는 동일합니다.
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json);
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse');
파라미터는 다음과 같이 설명됩니다.
-
:'aws_lambda_arn_1'
- 이 파라미터는 4단계: RDS for PostgreSQL DB 인스턴스와 함께 Lambda 도우미 함수 사용(선택 사항)에서 생성된 복합 구조를aws_commons.create_lambda_function_arn
도우미 함수와 함께 식별합니다. 다음과 같이aws_lambda.invoke
호출 내에서 이 구조를 인라인으로 생성할 수도 있습니다.SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function', '
aws-region
'), '{"body": "Hello from Postgres!"}'::json ); -
'{"body": "Hello from PostgreSQL!"}'::json
– Lambda 함수에 전달할 JSON 페이로드입니다. -
'RequestResponse'
– Lambda 호출 유형.
예제: Lambda 함수의 비동기 (이벤트) 호출
다음은 비동기 Lambda 함수 호출의 일례입니다. Event
호출 유형은 지정된 입력 페이로드를 사용하여 Lambda 함수 호출을 예약하고 즉시 반환합니다. Lambda 함수 결과에 의존하지 않는 특정 워크플로에서 Event
호출 유형을 사용합니다.
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'Event');
예: 함수 응답에서 Lambda 실행 로그 캡처
aws_lambda.invoke
함수 호출에서 log_type
파라미터를 사용하여 함수 응답에 실행 로그의 마지막 4KB를 포함할 수 있습니다. 기본적으로 이 파라미터는 None
으로 설정되지만 다음과 같이 Tail
을 지정하여 응답에서 Lambda 실행 로그의 결과를 캡처할 수 있습니다.
SELECT *, select convert_from(decode(log_result, 'base64'), 'utf-8') as log FROM aws_lambda.invoke(:'aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'Tail');
응답에 실행 로그를 포함하도록 aws_lambda.invoke 함수의 log_type
파라미터를 Tail
로 설정합니다. log_type
파라미터의 기본값은 None
입니다.
반환 문자열 log_result
은 base64
인코딩된 문자열입니다. decode
및 convert_from
PostgreSQL 함수의 조합을 사용하여 내용을 디코딩할 수 있습니다.
log_type
에 대한 자세한 정보는 aws_lambda.invoke 섹션을 참조하십시오.
예제: Lambda 함수에 클라이언트 컨텍스트 포함
aws_lambda.invoke
함수에는 다음과 같이 페이로드와 별도로 정보를 전달하는 데 사용할 수 있는 context
파라미터가 있습니다.
SELECT *, convert_from(decode(log_result, 'base64'), 'utf-8') as log FROM aws_lambda.invoke(:'aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'Tail');
클라이언트 컨텍스트를 포함하려면 aws_lambda.invoke 함수의 context
파라미터에 JSON 객체를 사용하세요.
context
파라미터에 대한 자세한 내용은 aws_lambda.invoke 레퍼런스를 참조하세요.
예제: 특정 버전의 Lambda 함수 호출
aws_lambda.invoke
호출에 qualifier
파라미터를 포함하여 Lambda 함수의 특정 버전을 지정할 수 있습니다. 다음에서 버전의 별칭으로 '
을 사용하여 이를 수행하는 예를 찾을 수 있습니다.custom_version
'
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'None', NULL, '
custom_version
');
다음과 같이 대신 함수 이름 세부 정보와 함께 Lambda 함수 한정자를 제공할 수도 있습니다.
SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function:custom_version', 'us-west-2'), '{"body": "Hello from Postgres!"}'::json);
qualifier
및 기타 파라미터에 대한 자세한 내용은 aws_lambda.invoke 레퍼런스를 참조하세요.