32 lines
916 B
Python
32 lines
916 B
Python
import os
|
|
from typing import TYPE_CHECKING
|
|
|
|
import boto3
|
|
|
|
if TYPE_CHECKING:
|
|
from mypy_boto3_cognito_idp.client import CognitoIdentityProviderClient
|
|
from mypy_boto3_dynamodb.client import DynamoDBClient
|
|
from mypy_boto3_s3 import S3Client
|
|
else:
|
|
CognitoIdentityProviderClient = object
|
|
DynamoDBClient = object
|
|
S3Client = object
|
|
|
|
|
|
def get_dynamodb_client():
|
|
running_sam_local = os.getenv('AWS_SAM_LOCAL')
|
|
|
|
if os.getenv('AWS_LAMBDA_FUNCTION_NAME') and not running_sam_local:
|
|
return boto3.client('dynamodb')
|
|
|
|
docker_host = 'host.docker.internal'
|
|
local_host = '127.0.0.1'
|
|
host = docker_host if running_sam_local else local_host
|
|
|
|
return boto3.client('dynamodb', endpoint_url=f'http://{host}:8000')
|
|
|
|
|
|
s3_client: S3Client = boto3.client('s3')
|
|
dynamodb_client: DynamoDBClient = get_dynamodb_client()
|
|
idp_client: CognitoIdentityProviderClient = boto3.client('cognito-idp')
|