Я пытаюсь развернуть мой первый безжизненный проект и хочу, чтобы он обновил простой элемент в моем dynamodb. Так что я начал делать простую службу в serverless.yml:Как использовать бессерверные функции, говорит, не существует
service: serverless
provider:
name: aws
runtime: nodejs4.3
iamRoleStatements:
- Effect: "Allow"
Resource: "*"
Action:
- "dynamodb:*"
functions:
createMovie:
handler: handler.createMovie
events:
- http:
path: movies/create
method: post
integration: lambda
cors: true
Тогда я нашел некоторый код в Интернете, чтобы связать вверх dynamodb часть моего приложения и добавить его в serverless.yml на дне: ресурсов:
Resources:
DynamoDbTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: moviesTwo
AttributeDefinitions:
- AttributeName: movieTitle
AttributeType: S
KeySchema:
- AttributeName: movieTitle
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 5
WriteCapacityUnits: 5
DynamoDBIamPolicy:
Type: AWS::IAM::Policy
DependsOn: DynamoDbTable
Properties:
PolicyName: lambda-dynamodb
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- dynamodb:GetItem
- dynamodb:PutItem
Resource: arn:aws:dynamodb:*:*:table/moviesTwo
Roles:
- Ref: IamRoleLambdaExecution
Моя функция в handler.js является:
module.exports.createMovie = (event, context, cb) => {
const params = {
TableName: 'movies',
Item: {
"movieTitle": "Star Wars"
}
};
return dynamo.put(params, cb);
};
Я побежал бессерверную развернуть, и она работала на многих уровнях. Созданный мой лямбда для меня, дал мне конечную точку и функции:
конечных точек: POST - https://tbwg38fvc0.execute-api.us-east-1.amazonaws.com/dev/movies/create функции: бессерверной-DEV-привет бессерверной-DEV-createMovie
Но я запустить его в почтальона и я получаю внутреннюю ошибку сервера, и я попытался назвать: бессерверного вызова -f бессерверным-DEV-createMovie -l , и он говорит:
Serverless Ошибка ------- --------------------------------
Function "serverless-dev-createMovie" doesn't exist in this Service
Так я смущен, что я делаю неправильно , Есть ли еще одна настройка в AWS, которую мне не хватает, которую нужно настроить для вызова на работу?
Номер 1 был моей первой проблемой. Когда я закончил с развертыванием, мне сказали, что мои функции были безсерверными-dev-createMovie, так что я и использовал. Благодарю. Я удаляю больше ошибок, но это привело меня в норму. –
другой вопрос, сейчас я запускаю конечную точку и получаю «Неподдерживаемый тип носителя». На что это можно ссылаться? –
неважно, я смотрел видео с YouTube и получил свою конечную точку для работы с почтальоном. обновил мой dynamodb тоже! Благодарю. –