1
+ # SSM Parameters update
2
+ #
3
+ # PROCESS
4
+ # Creates parameters in regional AWS accounts for each layer we create, using the inputs to target specific releases
5
+ # * environment: will prefix /beta/ into the parameter
6
+ # * write_latest: will create a latest alias instead of a version number in the parameter
7
+ # * package_version: semantic version number of the released layer (3.x.y)
8
+ # * layer_version: this is sequential layer version from the ARN
9
+ #
10
+ # A successful parameter would look similar to:
11
+ # /aws/service/powertools/python/arm64/python3.8/3.1.0
12
+ # And will have a value of:
13
+ # arn:aws:lambda:eu-west-1:094274105915:layer:AWSLambdaPowertoolsPythonV3-python38-arm64:4
14
+
15
+ on :
16
+ workflow_dispatch :
17
+ inputs :
18
+ environment :
19
+ description : Environment to deploy to
20
+ type : choice
21
+ options :
22
+ - Beta
23
+ - Prod
24
+ required : true
25
+
26
+ write_latest :
27
+ description : Write to the latest path
28
+ type : boolean
29
+ required : false
30
+
31
+ package_version :
32
+ description : Semantic Version of published layer
33
+ type : string
34
+ required : true
35
+
36
+ layer_version :
37
+ description : Layer version
38
+ type : string
39
+ required : true
40
+
41
+ name : SSM Parameters
42
+ run-name : SSM Parameters - TypeScript
43
+
44
+ permissions :
45
+ contents : read
46
+
47
+ jobs :
48
+ typescript :
49
+ runs-on : ubuntu-latest
50
+ environment : SSM
51
+ strategy :
52
+ matrix :
53
+ region : ["af-south-1", "ap-east-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3",
54
+ " ap-south-1" , "ap-south-2", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3",
55
+ " ap-southeast-4" , "ca-central-1", "ca-west-1", "eu-central-1", "eu-central-2",
56
+ " eu-north-1" , "eu-south-1", "eu-south-2", "eu-west-1", "eu-west-2", "eu-west-3",
57
+ " il-central-1" , "me-central-1", "me-south-1", "sa-east-1", "us-east-1",
58
+ " us-east-2" , "us-west-1", "us-west-2", "ap-southeast-5"
59
+ ]
60
+
61
+ permissions :
62
+ contents : write
63
+ id-token : write
64
+ steps :
65
+ - id : transform
66
+ run : |
67
+ echo 'CONVERTED_REGION=${{ matrix.region }}' | tr 'a-z\-' 'A-Z_' >> "$GITHUB_OUTPUT"
68
+ - id : creds
69
+ uses : aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502
70
+ with :
71
+ aws-region : ${{ matrix.region }}
72
+ role-to-assume : ${{ secrets[format('{0}', steps.transform.outputs.CONVERTED_REGION)] }}
73
+ mask-aws-account-id : true
74
+ - id : write-version
75
+ env :
76
+ prefix : ${{ inputs.environment == 'beta' && '/aws/service/powertools/beta' || '/aws/service/powertools' }}
77
+ run : |
78
+ aws ssm put-parameter --name ${{ env.prefix }}/typescript/generic/all/${{ inputs.package_version }} --value "arn:aws:lambda:${{ matrix.region }}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${{ inputs.layer_version }}" --type String --overwrite
79
+
80
+ - id : write-latest
81
+ if : inputs.write_latest == true
82
+ env :
83
+ prefix : ${{ inputs.environment == 'beta' && '/aws/service/powertools/beta' || '/aws/service/powertools' }}
84
+ run : |
85
+ aws ssm put-parameter --name ${{ env.prefix }}/generic/all/latest --value "arn:aws:lambda:${{ matrix.region }}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${{ inputs.layer_version }}" --type String --overwrite
0 commit comments