The Config File

The config file is at the heart of kappa. It is what describes your functions and drives your deployments. This section provides a reference for all of the elements of the kappa config file.

Example

Here is an example config file showing all possible sections.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
---
name: kappa-python-sample
environments:
  env1:
    profile: profile1
    region: us-west-2
    policy:
      resources:
        - arn: arn:aws:dynamodb:us-west-2:123456789012:table/foo
          actions:
          - "*"
        - arn: arn:aws:logs:*:*:*
          actions:
          - "*"
   event_sources:
     -
       arn: arn:aws:kinesis:us-west-2:123456789012:stream/foo
       starting_position: LATEST
       batch_size: 100
  env2:
    profile: profile2
    region: us-west-2
    policy_resources:
      - arn: arn:aws:dynamodb:us-west-2:234567890123:table/foo
        actions:
        - "*"
      - arn: arn:aws:logs:*:*:*
        actions:
        - "*"
   event_sources:
     -
       arn: arn:aws:kinesis:us-west-2:234567890123:stream/foo
       starting_position: LATEST
       batch_size: 100
lambda:
  description: A simple Python sample
  handler: simple.handler
  runtime: python2.7
  memory_size: 256
  timeout: 3
  vpc_config:
    security_group_ids:
      - sg-12345678
      - sg-23456789
    subnet_ids:
      - subnet-12345678
      - subnet-23456789

Explanations:

Line Number Description
2 This name will be used to name the function itself as well as any policies and roles created for use by the function.
3 A map of environments. Each environment represents one possible deployment target. For example, you might have a dev and a prod. The names can be whatever you want but the environment names are specified using the –env option when you deploy.
5 The profile name associated with this environment. This refers to a profile in your AWS credential file.
6 The AWS region associated with this environment.
7 This section defines the elements of the IAM policy that will be created for this function in this environment.
9 Each resource your function needs access to needs to be listed here. Provide the ARN of the resource as well as a list of actions. This could be wildcarded to allow all actions but preferably should list the specific actions you want to allow.
15 If your Lambda function has any event sources, this would be where you list them. Here, the example shows a Kinesis stream but this could also be a DynamoDB stream, an SNS topic, or an S3 bucket.
18 For Kinesis streams and DynamoDB streams, you can specify the starting position (one of LATEST or TRIM_HORIZON) and the batch size.
35 This section contains settings specify to your Lambda function. See the Lambda docs for details on these.