infrastructure/cfn-deployer/skill-stack.yaml (74 lines of code) (raw):

AWSTemplateFormatVersion: 2010-09-09 Parameters: SkillId: Type: String LambdaRuntime: Type: String LambdaHandler: Type: String CodeBucket: Type: String CodeKey: Type: String CodeVersion: Type: String GaroonUsername: Type: String GaroonPassword: Type: String GaroonDomain: Type: String GaroonTimezone: Type: String Resources: AlexaSkillIAMRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - lambda.amazonaws.com Action: - sts:AssumeRole Path: / Policies: - PolicyName: alexaSkillExecutionPolicy PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - logs:* Resource: arn:aws:logs:*:*:* AlexaSkillFunction: Type: AWS::Lambda::Function Properties: Code: S3Bucket: !Ref CodeBucket S3Key: !Ref CodeKey S3ObjectVersion: !Ref CodeVersion Handler: !Ref LambdaHandler Runtime: !Ref LambdaRuntime Role: !GetAtt AlexaSkillIAMRole.Arn MemorySize: 512 Timeout: 60 Environment: Variables: GAROON_USERNAME: !Ref GaroonUsername GAROON_PASSWORD: !Ref GaroonPassword GAROON_DOMAIN: !Ref GaroonDomain GAROON_TIMEZONE: !Ref GaroonTimezone AlexaSkillFunctionEventPermission: Type: AWS::Lambda::Permission Properties: Action: lambda:invokeFunction FunctionName: !GetAtt AlexaSkillFunction.Arn Principal: alexa-appkit.amazon.com EventSourceToken: !Ref SkillId Outputs: SkillEndpoint: Description: LambdaARN for the regional endpoint Value: !GetAtt AlexaSkillFunction.Arn