Я новичок в бессерверной инфраструктуре и пытаюсь поместить данные в мой DynamodB с помощью Python. Но не в состоянии вставить данные. Даже я не получаю никакой ошибки.
Я перепробовал все настройки для файла .yml, но без прогресса
.yml
provider:
name: aws
runtime: python3.7
environment:
DYNAMODB_TABLE: employee
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource: "arn:aws:dynamodb:${opt:region, self:provider.region}:*:table/${self:provider.environment.DYNAMODB_TABLE}"
stage: dev
region: us-east-1
functions:
create:
handler: functions/create.create
events:
- http:
path: employee
method: post
cors: true
authorizer: aws_iam
get:
handler: functions/get.get
events:
- http:
path: employee/{id}
method: get
cors: true
authorizer: aws_iam
resources:
Resources:
employee:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Retain
Properties:
AttributeDefinitions:
- AttributeName: employeeId
AttributeType: S
KeySchema:
- AttributeName: employeeId
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:provider.environment.DYNAMODB_TABLE}
.py file
import json
import os
import logging
import boto3
dynamodb = boto3.resource('dynamodb')
logger = logging.getLogger("handler_logger")
logger.setLevel(logging.DEBUG)
def create(event, context):
data = json.loads(event['body'])
table = dynamodb.Table(os.environ['DYNAMODB_TABLE'])
logger.info(table)
item = {
'employeeId': "2",
'employeeName': "Singhs",
}
# write the todo to the database
table.put_item(Item=item)
# create a response
response = {
"statusCode": 200,
"body": json.dumps(item)
}
return response