-
Notifications
You must be signed in to change notification settings - Fork 149
/
Copy pathtemplate.yml
134 lines (133 loc) · 5.41 KB
/
template.yml
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Lambda AppConfig Extension Demo
##########################################################################
# Parameters & Globals #
##########################################################################
Parameters:
AppConfigARN:
Type: String
Default: 'arn:aws:lambda:us-east-1:027255383542:layer:AWS-AppConfig-Extension:61'
AppConfigProfile:
Type: String
Default: DemoExtensionApplication/Production/LoggingLevel/LogLevel
Globals:
Function:
Tracing: Active
Tags:
Application: AppConfigDemoExtension
Resources:
##########################################################################
# Lambda functions #
##########################################################################
Function1:
Type: AWS::Serverless::Function
Properties:
Description: Lambda function that retrieves AppConfig configuration settings using Lambda extensions.
Runtime: nodejs12.x
Handler: src/AppConfigExtensionDemoFunction.handler
Layers:
- !Ref AppConfigARN
MemorySize: 128
Timeout: 100
Environment:
Variables:
APPCONFIG_PROFILE:
Ref: AppConfigProfile
Policies:
- Statement:
- Effect: Allow
Resource:
- !Sub 'arn:aws:appconfig:${AWS::Region}:${AWS::AccountId}:application/${AppConfigApplication}'
- !Sub 'arn:aws:appconfig:${AWS::Region}:${AWS::AccountId}:application/${AppConfigApplication}/environment/${AppConfigEnvironment}'
- !Sub 'arn:aws:appconfig:${AWS::Region}:${AWS::AccountId}:application/${AppConfigApplication}/configurationprofile/${AppConfigConfigurationProfile}'
- !Sub 'arn:aws:appconfig:${AWS::Region}:${AWS::AccountId}:application/${AppConfigApplication}/environment/${AppConfigEnvironment}'/configuration/${AppConfigConfigurationProfile}'
Action:
- appconfig:StartConfigurationSession
- appconfig:GetLatestConfiguration
Function2:
Type: AWS::Serverless::Function
Properties:
Description: Lambda function that retrieves AppConfig configuration settings using Lambda extensions.
Runtime: nodejs12.x
Handler: src/AppConfigExtensionDemoFunction.handler
Layers:
- !Ref AppConfigARN
MemorySize: 128
Timeout: 100
Environment:
Variables:
APPCONFIG_PROFILE:
Ref: AppConfigProfile
Policies:
- Statement:
- Effect: Allow
Resource:
- !Sub 'arn:aws:appconfig:${AWS::Region}:${AWS::AccountId}:application/${AppConfigApplication}'
- !Sub 'arn:aws:appconfig:${AWS::Region}:${AWS::AccountId}:application/${AppConfigApplication}/environment/${AppConfigEnvironment}'
- !Sub 'arn:aws:appconfig:${AWS::Region}:${AWS::AccountId}:application/${AppConfigApplication}/configurationprofile/${AppConfigConfigurationProfile}'
- !Sub 'arn:aws:appconfig:${AWS::Region}:${AWS::AccountId}:application/${AppConfigApplication}/environment/${AppConfigEnvironment}'/configuration/${AppConfigConfigurationProfile}'
Action:
- appconfig:StartConfigurationSession
- appconfig:GetLatestConfiguration
##########################################################################
# AppConfig Resources #
##########################################################################
AppConfigApplication:
Type: AWS::AppConfig::Application
Properties:
Name: DemoExtensionApplication
AppConfigEnvironment:
Type: AWS::AppConfig::Environment
Properties:
Name: 'Production'
ApplicationId:
Ref: AppConfigApplication
AppConfigConfigurationProfile:
Type: AWS::AppConfig::ConfigurationProfile
Properties:
Name: 'LoggingLevel'
ApplicationId:
Ref: AppConfigApplication
LocationUri: "hosted"
AppConfigHostedConfigurationVersion:
Type: AWS::AppConfig::HostedConfigurationVersion
Properties:
ApplicationId:
Ref: AppConfigApplication
ConfigurationProfileId:
Ref: AppConfigConfigurationProfile
Content: '{"loglevel": "normal"}'
ContentType: application/json
AppConfigDeployment:
Type: AWS::AppConfig::Deployment
Properties:
ApplicationId:
Ref: AppConfigApplication
ConfigurationProfileId:
Ref: AppConfigConfigurationProfile
ConfigurationVersion:
Ref: AppConfigHostedConfigurationVersion
DeploymentStrategyId:
Ref: DeploymentStrategy
EnvironmentId:
Ref: AppConfigEnvironment
DeploymentStrategy:
Type: AWS::AppConfig::DeploymentStrategy
Properties:
Name: "AllAtOnce"
DeploymentDurationInMinutes: 0
FinalBakeTimeInMinutes: 0
GrowthFactor: 100
GrowthType: LINEAR
ReplicateTo: NONE
##########################################################################
# OUTPUTS #
##########################################################################
Outputs:
Function1:
Value: !Ref Function1
Description: AWSAppConfig Extension Demo Function1
Function2:
Value: !Ref Function2
Description: AWSAppConfig Extension Demo Function2