cfn-model 0.1.24 → 0.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cfn-model/parser/transform_registry.rb +1 -1
- data/lib/cfn-model/transforms/serverless.rb +27 -12
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10958dfafdaa000fa3e7de361a28f31bdcc16436
|
4
|
+
data.tar.gz: f0871cea3dbddc961834402690da91f95cfbd5cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3656ead12b0ddc08c62f837456ffdd90ef633f57bb7a04ee23a39d4fdae06e4fa0a7d0eb0bf306890249b334d84f6095aabf8fa1df0a2b1589572f210721627f
|
7
|
+
data.tar.gz: b3b2f02377d312540fcd8ae1beb13b642b437785621658dd2b46d2bdcfcba8eef63acf1c94938f05079b19a066d27f0c72fcad0d787fe2a6d585cde80d38bdd5
|
@@ -16,7 +16,7 @@ class CfnModel
|
|
16
16
|
|
17
17
|
def perform_transforms(cfn_hash)
|
18
18
|
transform_name = cfn_hash['Transform']
|
19
|
-
return unless transform_name
|
19
|
+
return unless transform_name && @registry[transform_name]
|
20
20
|
@registry[transform_name].instance.perform_transform cfn_hash
|
21
21
|
end
|
22
22
|
|
@@ -29,22 +29,28 @@ class CfnModel
|
|
29
29
|
uri.split('/')[3..-1].join('/')
|
30
30
|
end
|
31
31
|
|
32
|
+
# Is a URL a S3 URL
|
33
|
+
def is_s3_uri?(uri)
|
34
|
+
uri[0..4].eql? 's3://'
|
35
|
+
end
|
36
|
+
|
32
37
|
# rubocop:disable Metrics/AbcSize
|
33
38
|
# rubocop:disable Metrics/MethodLength
|
34
39
|
|
35
40
|
def replace_serverless_function(cfn_hash, resource_name)
|
36
41
|
resource = cfn_hash['Resources'][resource_name]
|
42
|
+
code_uri = resource['Properties']['CodeUri']
|
37
43
|
|
38
|
-
|
39
|
-
|
40
|
-
|
44
|
+
lambda_fn_params = {
|
45
|
+
handler: resource['Properties']['Handler'],
|
46
|
+
runtime: resource['Properties']['Runtime']
|
47
|
+
}
|
48
|
+
if is_s3_uri? code_uri
|
49
|
+
lambda_fn_params[:code_bucket] = bucket_from_uri code_uri
|
50
|
+
lambda_fn_params[:code_key] = object_key_from_uri code_uri
|
51
|
+
end
|
41
52
|
cfn_hash['Resources'][resource_name] = \
|
42
|
-
lambda_function
|
43
|
-
handler: resource['Properties']['Handler'],
|
44
|
-
code_bucket: code_bucket,
|
45
|
-
code_key: code_key,
|
46
|
-
runtime: resource['Properties']['Runtime']
|
47
|
-
)
|
53
|
+
lambda_function lambda_fn_params
|
48
54
|
|
49
55
|
cfn_hash['Resources']['FunctionNameRole'] = function_name_role
|
50
56
|
end
|
@@ -76,15 +82,24 @@ class CfnModel
|
|
76
82
|
|
77
83
|
# Return the hash structure of a AWS::Lambda::Function as created
|
78
84
|
# by Serverless transform
|
79
|
-
def lambda_function(handler:,
|
85
|
+
def lambda_function(handler:,
|
86
|
+
code_bucket: nil,
|
87
|
+
code_key: nil,
|
88
|
+
runtime:)
|
89
|
+
fn_resource = \
|
80
90
|
{ 'Type' => 'AWS::Lambda::Function',
|
81
91
|
'Properties' => {
|
82
92
|
'Handler' => handler,
|
83
|
-
'Code' => { 'S3Bucket' => code_bucket,
|
84
|
-
'S3Key' => code_key },
|
85
93
|
'Role' => { 'Fn::GetAtt' => %w[FunctionNameRole Arn] },
|
86
94
|
'Runtime' => runtime
|
87
95
|
} }
|
96
|
+
if code_bucket && code_key
|
97
|
+
fn_resource['Properties']['Code'] = {
|
98
|
+
'S3Bucket' => code_bucket,
|
99
|
+
'S3Key' => code_key
|
100
|
+
}
|
101
|
+
end
|
102
|
+
fn_resource
|
88
103
|
end
|
89
104
|
end
|
90
105
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfn-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Kascic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|