Aws lambda localstack内DynamoDB的端点URL';sλ函数

Aws lambda localstack内DynamoDB的端点URL';sλ函数,aws-lambda,localstack,Aws Lambda,Localstack,我在用它来做当地的发展。我有一个名为reads的DynamoDB表,我想插入lambda函数中的项 我在python运行时部署了简单的lambda函数: 导入操作系统 进口boto3 def lambda_处理程序(事件、上下文): DYNAMODB_ENDPOINT_URL=os.environ.get(“DYNAMODB_ENDPOINT_URL”) dynamodb=boto3.resource(“dynamodb”,endpoint\u url=dynamodb\u endpoint\u

我在用它来做当地的发展。我有一个名为
reads
的DynamoDB表,我想插入lambda函数中的项

我在python运行时部署了简单的lambda函数:

导入操作系统
进口boto3
def lambda_处理程序(事件、上下文):
DYNAMODB_ENDPOINT_URL=os.environ.get(“DYNAMODB_ENDPOINT_URL”)
dynamodb=boto3.resource(“dynamodb”,endpoint\u url=dynamodb\u endpoint\u url)
读数表=发电机表(发电机读数表名称)
读数表。放置项目(项目={“读数id”:“10”,“其他”:“测试”})
但我收到错误:
[error]EndpointConnectionError:无法连接到端点URL:http://localstack:4569/“

我尝试了
localhost
localstack
以及端口的组合:
4566
4569
。他们都失败了

这是我用来启动localstack的
docker compse
服务

    localstack:
        image: localstack/localstack:0.11.2
        ports:
            - 4566:4566
            - 8080:8080
        environment:
            SERVICES: "dynamodb,sqs,lambda,iam"
            DATA_DIR: "/tmp/localstack/data"
            PORT_WEB_UI: "8080"
            LOCALSTACK_HOSTNAME: localstack
            LAMBDA_EXECUTOR: docker
            AWS_ACCESS_KEY_ID: "test"
            AWS_SECRET_ACCESS_KEY: "test"
            AWS_DEFAULT_REGION: "us-east-1"
        volumes:
            - localstack_volume:/tmp/localstack/data
            - /var/run/docker.sock:/var/run/docker.sock
            # When a container is started for the first time, it will execute files with extensions .sh that are found in /docker-entrypoint-initaws.d. 
            # Files will be executed in alphabetical order. You can easily create aws resources on localstack using `awslocal` (or `aws`) cli tool in the initialization scripts.
            # source: https://github.com/localstack/localstack/pull/1018/files#diff-04c6e90faac2675aa89e2176d2eec7d8R185
            - ./localstack-startup-scripts/:/docker-entrypoint-initaws.d/
为了向localstack的DynamoDB发送请求,我必须在lambda中设置正确的端点url是什么

 try with 
 ports:      
    - "0.0.0.0:4566-4599:4566-4599"  
希望对您有所帮助根据
LOCALSTACK\u HOSTNAME
是一个只读的环境变量:

LOCALSTACK_HOSTNAME:提供LOCALSTACK服务的主机的名称。使用此主机名作为端点(例如http://${LOCALSTACK_hostname}:4566),以便从Lambda函数中访问服务(例如,从Lambda将项目存储到DynamoDB或S3)


不幸的是没有效果,无论是端点url=
localhost:4566
还是
localstack:4566
——我仍然得到
EndpointConnectionError