New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@ask-utils/sam-boilerplate

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ask-utils/sam-boilerplate

Boilerplate generater for Alexa Skill backend by AWS CDK

latest
npmnpm
Version
0.1.0
Version published
Maintainers
1
Created
Source

SAM template Boilerplate for Alexa Skill Backend

Simply boilerplate for Alexa Skill Backend.

Usage

By CLI

Simple generate boilerplate by following command.

$ npx @ask-utils/sam-boilerplate

As script

const { generateBoilerplate } = require('sam-boilerplate');

const stack = generateBoilerplate({
  format: 'yaml'
})

You can get SAM template

Transform: 'AWS::Serverless-2016-10-31'
Parameters:
  Stage:
    Type: String
    Default: production
    Description: stage
Conditions:
  IsProduction:
    'Fn::Equals':
      - Ref: Stage
      - production
Resources:
  LambdaRole3A44B857:
    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Statement:
          - Action: 'sts:AssumeRole'
            Effect: Allow
            Principal:
              Service:
                'Fn::Join':
                  - ''
                  - - lambda.
                    - Ref: 'AWS::URLSuffix'
        Version: '2012-10-17'
      Path: /service-role/
  AlexaSkillFunction:
    Type: 'AWS::Serverless::Function'
    Properties:
      CodeUri: src
      Handler: index.handler
      Runtime: nodejs8.10
      AutoPublishAlias:
        Ref: Stage
      DeploymentPreference:
        Enabled: true
        Type:
          'Fn::If':
            - IsProduction
            - Linear10PercentEvery1Minute
            - AllAtOnce
      Events:
        AlexaSkill:
          Properties: {}
          Type: AlexaSkill
      Role:
        'Fn::GetAtt':
          - LambdaRole3A44B857
          - Arn
  SkillFunctionLogGroup:
    Type: 'AWS::Logs::LogGroup'
    Properties:
      LogGroupName:
        'Fn::Join':
          - /
          - - /aws/lambda
            - Ref: AlexaSkillFunction
      RetentionInDays: 14

And you can easy to get SAM stack with IAM role for S3 and DynamoDB

console.log(generateBoilerplate({
  format: 'yaml',
  dbTableNames: ['test'],
  s3BucketNames: ['brabra']
}))

This is the result

Transform: 'AWS::Serverless-2016-10-31'
Parameters:
  Stage:
    Type: String
    Default: production
    Description: stage
Conditions:
  IsProduction:
    'Fn::Equals':
      - Ref: Stage
      - production
Resources:
  LambdaPolicy7FF67BE6:
    Type: 'AWS::IAM::Policy'
    Properties:
      PolicyDocument:
        Statement:
          - Action:
              - 'dynamodb:PutItem'
              - 'dynamodb:DeleteItem'
              - 'dynamodb:GetItem'
            Effect: Allow
            Resource: 'arn:aws:dynamodb:*:*:table/test'
          - Action:
              - 's3:PutObject'
              - 's3:GetObject'
              - 's3:DeleteObject'
            Effect: Allow
            Resource: 'arn:aws:s3:::brabra/*'
        Version: '2012-10-17'
      PolicyName: BoilerPlateStackInlinePolicy
      Roles:
        - Ref: LambdaRole3A44B857
  LambdaRole3A44B857:
    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Statement:
          - Action: 'sts:AssumeRole'
            Effect: Allow
            Principal:
              Service:
                'Fn::Join':
                  - ''
                  - - lambda.
                    - Ref: 'AWS::URLSuffix'
        Version: '2012-10-17'
      Path: /service-role/
  AlexaSkillFunction:
    Type: 'AWS::Serverless::Function'
    Properties:
      CodeUri: src
      Handler: index.handler
      Runtime: nodejs8.10
      AutoPublishAlias:
        Ref: Stage
      DeploymentPreference:
        Enabled: true
        Type:
          'Fn::If':
            - IsProduction
            - Linear10PercentEvery1Minute
            - AllAtOnce
      Events:
        AlexaSkill:
          Properties: {}
          Type: AlexaSkill
      Role:
        'Fn::GetAtt':
          - LambdaRole3A44B857
          - Arn
  SkillFunctionLogGroup:
    Type: 'AWS::Logs::LogGroup'
    Properties:
      LogGroupName:
        'Fn::Join':
          - /
          - - /aws/lambda
            - Ref: AlexaSkillFunction
      RetentionInDays: 14

Function

generateBoilerplate()

Generate SAM template.

const stack = generateBoilerplate( {
    name: 'BoilerPlateStack',
    codeUri: 'src',
    handler: 'index.handler',
    s3BucketNames: [],
    dbTableNames: [],
    productionStageName: 'production',
    format: 'json'
  }
)

Keywords

alexa

FAQs

Package last updated on 23 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts