Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 3.17 KB | None | 0 0
  1. service: serverless-rest-api-with-dynamodb
  2.  
  3. frameworkVersion: ">=1.1.0 <2.0.0"
  4.  
  5. plugins:
  6.  - serverless-dynamodb-local
  7.   - serverless-offline
  8.  
  9. custom:
  10.   dynamodb:
  11.     start:
  12.       port: 8000
  13.       dbPath: /Users/jimt/dev/examples/aws-node-rest-api-with-dynamodb-and-offline/db
  14.       migrate: false
  15.     migration:
  16.       dir: offline/migrations
  17.  
  18. provider:
  19.   name: aws
  20.   runtime: nodejs4.3
  21.   environment:
  22.     TODOS_TABLE: ${self:service}-${opt:stage, self:provider.stage}-todos
  23.     PEOPLE_TABLE: ${self:service}-${opt:stage, self:provider.stage}-people
  24.   iamRoleStatements:
  25.     - Effect: Allow
  26.       Action:
  27.        - dynamodb:Query
  28.         - dynamodb:Scan
  29.         - dynamodb:GetItem
  30.         - dynamodb:PutItem
  31.         - dynamodb:UpdateItem
  32.         - dynamodb:DeleteItem
  33.       Resource: "arn:aws:dynamodb:${opt:region, self:provider.region}:*:table/${self:provider.environment.TODOS_TABLE}"
  34.     - Effect: Allow
  35.       Action:
  36.        - dynamodb:Query
  37.         - dynamodb:Scan
  38.         - dynamodb:GetItem
  39.         - dynamodb:PutItem
  40.         - dynamodb:UpdateItem
  41.         - dynamodb:DeleteItem
  42.       Resource: "arn:aws:dynamodb:${opt:region, self:provider.region}:*:table/${self:provider.environment.PEOPLE_TABLE}"
  43.  
  44. functions:
  45.   createPerson:
  46.     handler: people/create.create
  47.     events:
  48.       - http:
  49.         path: people
  50.         method: post
  51.         cors: true
  52.  
  53.   listPerson:
  54.     handler: people/list.list
  55.     events:
  56.       - http:
  57.         path: people
  58.         method: get
  59.         cors: true
  60.  
  61.   createTodo:
  62.     handler: todos/create.create
  63.     events:
  64.       - http:
  65.           path: todos
  66.           method: post
  67.           cors: true
  68.  
  69.   listTodos:
  70.     handler: todos/list.list
  71.     events:
  72.       - http:
  73.           path: todos
  74.           method: get
  75.           cors: true
  76.  
  77.   getTodo:
  78.     handler: todos/get.get
  79.     events:
  80.       - http:
  81.           path: todos/{id}
  82.           method: get
  83.           cors: true
  84.  
  85.   updateTodo:
  86.     handler: todos/update.update
  87.     events:
  88.       - http:
  89.           path: todos/{id}
  90.           method: put
  91.           cors: true
  92.  
  93.   deleteTodo:
  94.     handler: todos/delete.delete
  95.     events:
  96.       - http:
  97.           path: todos/{id}
  98.           method: delete
  99.           cors: true
  100.  
  101. resources:
  102.   Resources:
  103.     TodosDynamoDbTable:
  104.       Type: 'AWS::DynamoDB::Table'
  105.       DeletionPolicy: Retain
  106.       Properties:
  107.         AttributeDefinitions:
  108.          -
  109.             AttributeName: id
  110.             AttributeType: S
  111.         KeySchema:
  112.          -
  113.             AttributeName: id
  114.             KeyType: HASH
  115.         ProvisionedThroughput:
  116.           ReadCapacityUnits: 1
  117.           WriteCapacityUnits: 1
  118.         TableName: ${self:provider.environment.TODOS_TABLE}
  119.     PeopleDynamoDbTable:
  120.       Type: 'AWS::DynamoDB::Table'
  121.       DeletionPolicy: Retain
  122.       Properties:
  123.         AttributeDefinitions:
  124.          -
  125.             AttributeName: id
  126.             AttributeType: S
  127.         KeySchema:
  128.          -
  129.             AttributeName: id
  130.             KeyType: HASH
  131.         ProvisionedThroughput:
  132.           ReadCapacityUnits: 1
  133.           WriteCapacityUnits: 1
  134.         TableName: ${self:provider.environment.PEOPLE_TABLE}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement