-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.py
82 lines (68 loc) · 2.2 KB
/
example.py
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
from awsdeploy import AwsDeployExpert, Status
def main():
"""
your directory structure might look like this
---------------------------------------------
lib/
thirdpartylib1.zip
thirdpartylib2.zip
src/
__init__.py
tests/
__init__.py
static/
index.html
readme.txt
templates/
cloudformation-template.json
cloudformation-template.parameters.dev.json
"""
deploy_config = {
"aws": {
"awsProfile": "your_aws_profile",
},
"sourcePath" : "src/",
"libPath" : "lib/",
"options": {
"runUnitTests" : True,
"makePackages" : True,
"uploadPackages" : True,
"createStacks" : True,
"collectStackOutputs" : True,
"uploadStaticArtifacts" : True,
},
"packages": [
{
"name": "package-name.zip",
"sourceDirsToExclude": [],
"libsToInclude": [],
"libsToExclude": [],
"addInitAtRoot" : False,
"aws":{
"srcS3Bucket" : "your-s3-source-bucket",
"srcS3Key" : "package-key-in-your-s3-source-bucket",
}
}
],
"stacks": [
{
"name" : "your-stack-1",
"templatePath" : "templates/cloudformation-template.json",
"templateParamsPath" : "templates/cloudformation-template.parameters.dev.json",
"params" : [],
"region" : "pick-your-region"
}
],
"staticArtifacts": [
{
"staticPath" : "static/",
"stackNameForS3Bucket" : "your-stack-1",
"outputKeyForS3Bucket" : "BucketCreatedInStackBucketArn"
}
]
}
expert = AwsDeployExpert(deploy_config)
status = expert.deploy()
return 0 if status == Status.OK else 1
if __name__ == "__main__":
main()