简体   繁体   中英

Python AWS Lambda signal: aborted (core dumped) during snowflake connection (snowflake.connector)

I am new to lambda functions... I am trying to do a test Lambda function to connect to snowflake. After a bit of research I finally got all the packages I needed zipped and added to a layer.

I added the env variables in the lambda function and am calling them for the password, user and acct.

It looks to me like it keeps looping to try to access snowflake...

I am now getting this:

Response:
{
  "errorType": "Runtime.ExitError",
  "errorMessage": "RequestId: 76342539-d44a-4732-a027-6d133d3e4ea5 Error: Runtime exited with error: signal: aborted (core dumped)"
}

This is the log:

Function Logs:
in <listcomp>
  File "/opt/requests/sessions.py", line 665 in send
  File "/opt/requests/sessions.py", line 530 in request
  File "/opt/requests/sessions.py", line 543 in get
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 298 in _download_ocsp_response_cache
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 258 in download_cache_from_server
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1205 in _check_ocsp_response_cache_server
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1178 in _validate_certificates_sequential
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1001 in _validate
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 996 in validate
  File "/opt/snowflake/connector/ssl_wrap_socket.py", line 408 in ssl_wrap_socket_with_ocsp
  File "/opt/urllib3/connection.py", line 361 in connect
  File "/opt/urllib3/connectionpool.py", line 976 in _validate_conn
  File "/opt/urllib3/connectionpool.py", line 381 in _make_request
  File "/opt/urllib3/connectionpool.py", line 670 in urlopen
  File "/opt/requests/adapters.py", line 439 in send
  File "/opt/requests/sessions.py", line 643 in send
  File "/opt/requests/sessions.py", line 237 in resolve_redirects
  File "/opt/requests/sessions.py", line 665 in <listcomp>
  File "/opt/requests/sessions.py", line 665 in send
  File "/opt/requests/sessions.py", line 530 in request
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1383 in _fetch_ocsp_response
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1112 in validate_by_direct_connection
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1183 in _validate_certificates_sequential
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1001 in _validate
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 996 in validate
  File "/opt/snowflake/connector/ssl_wrap_socket.py", line 408 in ssl_wrap_socket_with_ocsp
  File "/opt/urllib3/connection.py", line 361 in connect
  File "/opt/urllib3/connectionpool.py", line 976 in _validate_conn
  File "/opt/urllib3/connectionpool.py", line 381 in _make_request
  File "/opt/urllib3/connectionpool.py", line 670 in urlopen
  File "/opt/requests/adapters.py", line 439 in send
  File "/opt/requests/sessions.py", line 643 in send
  File "/opt/requests/sessions.py", line 237 in resolve_redirects
  File "/opt/requests/sessions.py", line 665 in <listcomp>
  File "/opt/requests/sessions.py", line 665 in send
  File "/opt/requests/sessions.py", line 530 in request
  File "/opt/requests/sessions.py", line 543 in get
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 298 in _download_ocsp_response_cache
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 258 in download_cache_from_server
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1205 in _check_ocsp_response_cache_server
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1178 in _validate_certificates_sequential
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 1001 in _validate
  File "/opt/snowflake/connector/ocsp_snowflake.py", line 996 in validate
  File "/opt/snowflake/connector/ssl_wrap_socket.py", line 408 in ssl_wrap_socket_with_ocsp
  File "/opt/urllib3/connection.py", line 361 in connect
  File "/opt/urllib3/connectionpool.py", line 976 in _validate_conn
  File "/opt/urllib3/connectionpool.py", line 381 in _make_request
  File "/opt/urllib3/connectionpool.py", line 670 in urlopen
  File "/opt/requests/adapters.py", line 439 in send
  File "/opt/requests/sessions.py", line 643 in send
  File "/opt/requests/sessions.py", line 237 in resolve_redirects
  File "/opt/requests/sessions.py", line 665 in <listcomp>
  File "/opt/requests/sessions.py", line 665 in send
  ...
END RequestId: 76342539-d44a-4732-a027-6d133d3e4ea5
REPORT RequestId: 76342539-d44a-4732-a027-6d133d3e4ea5  Duration: 23310.99 ms   Billed Duration: 23400 ms   Memory Size: 3008 MB    Max Memory Used: 284 MB Init Duration: 1838.76 ms   
RequestId: 76342539-d44a-4732-a027-6d133d3e4ea5 Error: Runtime exited with error: signal: aborted (core dumped)
Runtime.ExitError

This is the python code:

import os
import sys
sys.path.insert(0, '/opt')
import snowflake.connector as sc
import boto3
import json
acct = os.environ['sf']
user = os.environ['user']
pw = os.environ['pw']

def lambda_handler(event, context):
    sfx = sc.connect(user=user, password=pw,account=acct)
    sf_c = sfx.cursor()
    sf_c.close()
    return {
        'statuscode': 200,
        'body': 'I was here!'
        }
    sfx.close()

Any help would be greatly appreciated!

Do I need to configure a VPC for this?

To use Lambda service with Snowflake, you need to make sure that the Python package you create has all the dependencies required. The below article explains step by step process how to use AWS Lambda with Snowflake. https://docs.snowflake.com/en/user-guide/data-load-snowpipe-rest-lambda.html

When you launch the Lambda service in your AWS account, by default it is launched in the Default VPC. If the default VPC does not have public Internet connectivity the connection can fail. So make sure you use the VPC which can reach your snowflake Public URL.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM