aws-cdk-lib 2.153.0__py3-none-any.whl → 2.154.0__py3-none-any.whl
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.
Potentially problematic release.
This version of aws-cdk-lib might be problematic. Click here for more details.
- aws_cdk/__init__.py +157 -215
- aws_cdk/_jsii/__init__.py +2 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.153.0.jsii.tgz → aws-cdk-lib@2.154.0.jsii.tgz} +0 -0
- aws_cdk/alexa_ask/__init__.py +3 -3
- aws_cdk/aws_accessanalyzer/__init__.py +5 -5
- aws_cdk/aws_acmpca/__init__.py +79 -24
- aws_cdk/aws_amazonmq/__init__.py +161 -161
- aws_cdk/aws_amplify/__init__.py +36 -36
- aws_cdk/aws_amplifyuibuilder/__init__.py +32 -32
- aws_cdk/aws_apigateway/__init__.py +122 -122
- aws_cdk/aws_apigatewayv2/__init__.py +135 -121
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +12 -12
- aws_cdk/aws_appconfig/__init__.py +59 -59
- aws_cdk/aws_appflow/__init__.py +20 -20
- aws_cdk/aws_appintegrations/__init__.py +19 -19
- aws_cdk/aws_applicationautoscaling/__init__.py +31 -16
- aws_cdk/aws_applicationinsights/__init__.py +11 -11
- aws_cdk/aws_applicationsignals/__init__.py +5 -5
- aws_cdk/aws_appmesh/__init__.py +35 -35
- aws_cdk/aws_apprunner/__init__.py +25 -25
- aws_cdk/aws_appstream/__init__.py +105 -105
- aws_cdk/aws_appsync/__init__.py +89 -89
- aws_cdk/aws_apptest/__init__.py +25 -25
- aws_cdk/aws_aps/__init__.py +14 -14
- aws_cdk/aws_arczonalshift/__init__.py +200 -3
- aws_cdk/aws_athena/__init__.py +25 -25
- aws_cdk/aws_auditmanager/__init__.py +15 -15
- aws_cdk/aws_autoscaling/__init__.py +84 -84
- aws_cdk/aws_autoscalingplans/__init__.py +2 -2
- aws_cdk/aws_b2bi/__init__.py +24 -24
- aws_cdk/aws_backup/__init__.py +33 -33
- aws_cdk/aws_backupgateway/__init__.py +7 -7
- aws_cdk/aws_batch/__init__.py +289 -35
- aws_cdk/aws_bcmdataexports/__init__.py +2 -2
- aws_cdk/aws_bedrock/__init__.py +13239 -3277
- aws_cdk/aws_billingconductor/__init__.py +28 -28
- aws_cdk/aws_budgets/__init__.py +12 -12
- aws_cdk/aws_cassandra/__init__.py +16 -16
- aws_cdk/aws_ce/__init__.py +17 -17
- aws_cdk/aws_certificatemanager/__init__.py +9 -9
- aws_cdk/aws_chatbot/__init__.py +22 -22
- aws_cdk/aws_cleanrooms/__init__.py +2470 -307
- aws_cdk/aws_cleanroomsml/__init__.py +5 -5
- aws_cdk/aws_cloud9/__init__.py +10 -10
- aws_cdk/aws_cloudformation/__init__.py +94 -69
- aws_cdk/aws_cloudfront/__init__.py +31 -30
- aws_cdk/aws_cloudtrail/__init__.py +46 -44
- aws_cdk/aws_cloudwatch/__init__.py +61 -69
- aws_cdk/aws_codeartifact/__init__.py +19 -19
- aws_cdk/aws_codebuild/__init__.py +60 -68
- aws_cdk/aws_codecommit/__init__.py +10 -6
- aws_cdk/aws_codeconnections/__init__.py +5 -5
- aws_cdk/aws_codedeploy/__init__.py +28 -28
- aws_cdk/aws_codeguruprofiler/__init__.py +5 -5
- aws_cdk/aws_codegurureviewer/__init__.py +6 -6
- aws_cdk/aws_codepipeline/__init__.py +849 -52
- aws_cdk/aws_codepipeline_actions/__init__.py +1 -1
- aws_cdk/aws_codestar/__init__.py +8 -8
- aws_cdk/aws_codestarconnections/__init__.py +17 -17
- aws_cdk/aws_codestarnotifications/__init__.py +10 -10
- aws_cdk/aws_cognito/__init__.py +465 -133
- aws_cdk/aws_comprehend/__init__.py +20 -20
- aws_cdk/aws_config/__init__.py +67 -67
- aws_cdk/aws_connect/__init__.py +139 -137
- aws_cdk/aws_connectcampaigns/__init__.py +5 -5
- aws_cdk/aws_controltower/__init__.py +12 -12
- aws_cdk/aws_cur/__init__.py +12 -12
- aws_cdk/aws_customerprofiles/__init__.py +36 -36
- aws_cdk/aws_databrew/__init__.py +45 -45
- aws_cdk/aws_datapipeline/__init__.py +12 -8
- aws_cdk/aws_datasync/__init__.py +119 -117
- aws_cdk/aws_datazone/__init__.py +63 -63
- aws_cdk/aws_dax/__init__.py +20 -20
- aws_cdk/aws_deadline/__init__.py +221 -292
- aws_cdk/aws_detective/__init__.py +8 -8
- aws_cdk/aws_devicefarm/__init__.py +37 -37
- aws_cdk/aws_devopsguru/__init__.py +2 -2
- aws_cdk/aws_directoryservice/__init__.py +15 -15
- aws_cdk/aws_dlm/__init__.py +12 -12
- aws_cdk/aws_dms/__init__.py +300 -298
- aws_cdk/aws_docdb/__init__.py +49 -49
- aws_cdk/aws_docdbelastic/__init__.py +14 -14
- aws_cdk/aws_dynamodb/__init__.py +371 -37
- aws_cdk/aws_ec2/__init__.py +900 -606
- aws_cdk/aws_ecr/__init__.py +117 -77
- aws_cdk/aws_ecr_assets/__init__.py +4 -4
- aws_cdk/aws_ecs/__init__.py +190 -191
- aws_cdk/aws_ecs_patterns/__init__.py +2 -2
- aws_cdk/aws_efs/__init__.py +22 -22
- aws_cdk/aws_eks/__init__.py +177 -61
- aws_cdk/aws_elasticache/__init__.py +218 -226
- aws_cdk/aws_elasticbeanstalk/__init__.py +25 -25
- aws_cdk/aws_elasticloadbalancing/__init__.py +16 -16
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +1066 -102
- aws_cdk/aws_elasticloadbalancingv2_targets/__init__.py +86 -4
- aws_cdk/aws_elasticsearch/__init__.py +16 -16
- aws_cdk/aws_emr/__init__.py +74 -74
- aws_cdk/aws_emrcontainers/__init__.py +3 -3
- aws_cdk/aws_emrserverless/__init__.py +157 -14
- aws_cdk/aws_entityresolution/__init__.py +613 -35
- aws_cdk/aws_events/__init__.py +42 -42
- aws_cdk/aws_eventschemas/__init__.py +16 -16
- aws_cdk/aws_evidently/__init__.py +38 -38
- aws_cdk/aws_finspace/__init__.py +8 -8
- aws_cdk/aws_fis/__init__.py +12 -12
- aws_cdk/aws_fms/__init__.py +21 -21
- aws_cdk/aws_forecast/__init__.py +18 -11
- aws_cdk/aws_frauddetector/__init__.py +35 -35
- aws_cdk/aws_fsx/__init__.py +35 -35
- aws_cdk/aws_gamelift/__init__.py +103 -103
- aws_cdk/aws_globalaccelerator/__init__.py +46 -24
- aws_cdk/aws_glue/__init__.py +132 -139
- aws_cdk/aws_grafana/__init__.py +17 -17
- aws_cdk/aws_greengrass/__init__.py +48 -48
- aws_cdk/aws_greengrassv2/__init__.py +10 -10
- aws_cdk/aws_groundstation/__init__.py +16 -16
- aws_cdk/aws_guardduty/__init__.py +40 -38
- aws_cdk/aws_healthimaging/__init__.py +3 -3
- aws_cdk/aws_healthlake/__init__.py +6 -6
- aws_cdk/aws_iam/__init__.py +120 -122
- aws_cdk/aws_identitystore/__init__.py +6 -6
- aws_cdk/aws_imagebuilder/__init__.py +92 -92
- aws_cdk/aws_inspector/__init__.py +8 -8
- aws_cdk/aws_inspectorv2/__init__.py +102 -97
- aws_cdk/aws_internetmonitor/__init__.py +12 -12
- aws_cdk/aws_iot/__init__.py +141 -141
- aws_cdk/aws_iot1click/__init__.py +9 -9
- aws_cdk/aws_iotanalytics/__init__.py +21 -21
- aws_cdk/aws_iotcoredeviceadvisor/__init__.py +2 -2
- aws_cdk/aws_iotevents/__init__.py +20 -20
- aws_cdk/aws_iotfleethub/__init__.py +4 -4
- aws_cdk/aws_iotfleetwise/__init__.py +45 -45
- aws_cdk/aws_iotsitewise/__init__.py +40 -40
- aws_cdk/aws_iotthingsgraph/__init__.py +2 -2
- aws_cdk/aws_iottwinmaker/__init__.py +34 -34
- aws_cdk/aws_iotwireless/__init__.py +66 -66
- aws_cdk/aws_ivs/__init__.py +32 -32
- aws_cdk/aws_ivschat/__init__.py +9 -9
- aws_cdk/aws_kafkaconnect/__init__.py +22 -22
- aws_cdk/aws_kendra/__init__.py +28 -28
- aws_cdk/aws_kendraranking/__init__.py +4 -4
- aws_cdk/aws_kinesis/__init__.py +8 -8
- aws_cdk/aws_kinesisanalytics/__init__.py +23 -23
- aws_cdk/aws_kinesisanalyticsv2/__init__.py +15 -15
- aws_cdk/aws_kinesisfirehose/__init__.py +677 -18
- aws_cdk/aws_kinesisvideo/__init__.py +10 -10
- aws_cdk/aws_kms/__init__.py +20 -20
- aws_cdk/aws_lakeformation/__init__.py +36 -36
- aws_cdk/aws_lambda/__init__.py +174 -118
- aws_cdk/aws_launchwizard/__init__.py +508 -0
- aws_cdk/aws_lex/__init__.py +24 -24
- aws_cdk/aws_licensemanager/__init__.py +17 -17
- aws_cdk/aws_lightsail/__init__.py +90 -90
- aws_cdk/aws_location/__init__.py +41 -41
- aws_cdk/aws_logs/__init__.py +50 -50
- aws_cdk/aws_lookoutequipment/__init__.py +9 -9
- aws_cdk/aws_lookoutmetrics/__init__.py +10 -10
- aws_cdk/aws_lookoutvision/__init__.py +1 -1
- aws_cdk/aws_m2/__init__.py +20 -20
- aws_cdk/aws_macie/__init__.py +19 -19
- aws_cdk/aws_managedblockchain/__init__.py +10 -10
- aws_cdk/aws_mediaconnect/__init__.py +114 -77
- aws_cdk/aws_mediaconvert/__init__.py +20 -20
- aws_cdk/aws_medialive/__init__.py +44 -76
- aws_cdk/aws_mediapackage/__init__.py +38 -38
- aws_cdk/aws_mediapackagev2/__init__.py +178 -25
- aws_cdk/aws_mediastore/__init__.py +7 -7
- aws_cdk/aws_mediatailor/__init__.py +40 -40
- aws_cdk/aws_memorydb/__init__.py +41 -41
- aws_cdk/aws_msk/__init__.py +39 -39
- aws_cdk/aws_mwaa/__init__.py +25 -25
- aws_cdk/aws_neptune/__init__.py +55 -55
- aws_cdk/aws_neptunegraph/__init__.py +11 -11
- aws_cdk/aws_networkfirewall/__init__.py +36 -30
- aws_cdk/aws_networkmanager/__init__.py +1062 -91
- aws_cdk/aws_nimblestudio/__init__.py +31 -31
- aws_cdk/aws_oam/__init__.py +8 -8
- aws_cdk/aws_omics/__init__.py +36 -36
- aws_cdk/aws_opensearchserverless/__init__.py +25 -25
- aws_cdk/aws_opensearchservice/__init__.py +20 -20
- aws_cdk/aws_opsworks/__init__.py +87 -87
- aws_cdk/aws_opsworkscm/__init__.py +21 -21
- aws_cdk/aws_organizations/__init__.py +17 -17
- aws_cdk/aws_osis/__init__.py +122 -9
- aws_cdk/aws_panorama/__init__.py +27 -22
- aws_cdk/aws_paymentcryptography/__init__.py +7 -7
- aws_cdk/aws_pcaconnectorad/__init__.py +17 -17
- aws_cdk/aws_personalize/__init__.py +19 -19
- aws_cdk/aws_pinpoint/__init__.py +122 -122
- aws_cdk/aws_pinpointemail/__init__.py +16 -16
- aws_cdk/aws_pipes/__init__.py +14 -16
- aws_cdk/aws_proton/__init__.py +19 -19
- aws_cdk/aws_qbusiness/__init__.py +160 -45
- aws_cdk/aws_qldb/__init__.py +12 -12
- aws_cdk/aws_quicksight/__init__.py +91 -91
- aws_cdk/aws_ram/__init__.py +11 -11
- aws_cdk/aws_rds/__init__.py +365 -259
- aws_cdk/aws_redshift/__init__.py +136 -91
- aws_cdk/aws_redshiftserverless/__init__.py +27 -27
- aws_cdk/aws_refactorspaces/__init__.py +26 -26
- aws_cdk/aws_rekognition/__init__.py +16 -16
- aws_cdk/aws_resiliencehub/__init__.py +15 -15
- aws_cdk/aws_resourceexplorer2/__init__.py +8 -8
- aws_cdk/aws_resourcegroups/__init__.py +6 -6
- aws_cdk/aws_robomaker/__init__.py +25 -25
- aws_cdk/aws_rolesanywhere/__init__.py +67 -19
- aws_cdk/aws_route53/__init__.py +36 -36
- aws_cdk/aws_route53profiles/__init__.py +11 -11
- aws_cdk/aws_route53recoverycontrol/__init__.py +14 -14
- aws_cdk/aws_route53recoveryreadiness/__init__.py +13 -13
- aws_cdk/aws_route53resolver/__init__.py +123 -82
- aws_cdk/aws_rum/__init__.py +6 -6
- aws_cdk/aws_s3/__init__.py +136 -80
- aws_cdk/aws_s3_deployment/__init__.py +30 -24
- aws_cdk/aws_s3_notifications/__init__.py +3 -4
- aws_cdk/aws_s3express/__init__.py +5 -5
- aws_cdk/aws_s3objectlambda/__init__.py +6 -6
- aws_cdk/aws_s3outposts/__init__.py +16 -16
- aws_cdk/aws_sagemaker/__init__.py +2412 -280
- aws_cdk/aws_sam/__init__.py +101 -101
- aws_cdk/aws_scheduler/__init__.py +13 -13
- aws_cdk/aws_sdb/__init__.py +1 -1
- aws_cdk/aws_secretsmanager/__init__.py +20 -19
- aws_cdk/aws_securityhub/__init__.py +70 -57
- aws_cdk/aws_securitylake/__init__.py +341 -16
- aws_cdk/aws_servicecatalog/__init__.py +87 -87
- aws_cdk/aws_servicecatalogappregistry/__init__.py +12 -12
- aws_cdk/aws_servicediscovery/__init__.py +23 -23
- aws_cdk/aws_ses/__init__.py +12038 -5604
- aws_cdk/aws_shield/__init__.py +15 -15
- aws_cdk/aws_signer/__init__.py +9 -9
- aws_cdk/aws_simspaceweaver/__init__.py +5 -5
- aws_cdk/aws_sns/__init__.py +28 -28
- aws_cdk/aws_sqs/__init__.py +20 -20
- aws_cdk/aws_ssm/__init__.py +172 -101
- aws_cdk/aws_ssmcontacts/__init__.py +18 -18
- aws_cdk/aws_ssmincidents/__init__.py +11 -11
- aws_cdk/aws_sso/__init__.py +31 -31
- aws_cdk/aws_stepfunctions/__init__.py +370 -28
- aws_cdk/aws_supportapp/__init__.py +11 -11
- aws_cdk/aws_synthetics/__init__.py +18 -18
- aws_cdk/aws_systemsmanagersap/__init__.py +48 -7
- aws_cdk/aws_timestream/__init__.py +34 -34
- aws_cdk/aws_transfer/__init__.py +57 -57
- aws_cdk/aws_verifiedpermissions/__init__.py +11 -11
- aws_cdk/aws_voiceid/__init__.py +4 -4
- aws_cdk/aws_vpclattice/__init__.py +42 -42
- aws_cdk/aws_waf/__init__.py +17 -17
- aws_cdk/aws_wafregional/__init__.py +28 -28
- aws_cdk/aws_wafv2/__init__.py +39 -39
- aws_cdk/aws_wisdom/__init__.py +16 -16
- aws_cdk/aws_workspaces/__init__.py +18 -18
- aws_cdk/aws_workspacesthinclient/__init__.py +63 -9
- aws_cdk/aws_workspacesweb/__init__.py +87 -46
- aws_cdk/aws_xray/__init__.py +12 -12
- aws_cdk/cloud_assembly_schema/__init__.py +348 -239
- aws_cdk/custom_resources/__init__.py +283 -0
- aws_cdk/cx_api/__init__.py +15 -15
- aws_cdk/pipelines/__init__.py +172 -237
- {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.0.dist-info}/METADATA +3 -2
- aws_cdk_lib-2.154.0.dist-info/RECORD +292 -0
- aws_cdk_lib-2.153.0.dist-info/RECORD +0 -291
- {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.0.dist-info}/top_level.txt +0 -0
aws_cdk/pipelines/__init__.py
CHANGED
|
@@ -46,7 +46,7 @@ details.
|
|
|
46
46
|
CDK Pipelines supports multiple *deployment engines* (see
|
|
47
47
|
[Using a different deployment engine](#using-a-different-deployment-engine)),
|
|
48
48
|
and comes with a deployment engine that deploys CDK apps using AWS CodePipeline.
|
|
49
|
-
To use the CodePipeline engine, define a `CodePipeline` construct.
|
|
49
|
+
To use the CodePipeline engine, define a `CodePipeline` construct. The following
|
|
50
50
|
example creates a CodePipeline that deploys an application from GitHub:
|
|
51
51
|
|
|
52
52
|
```python
|
|
@@ -81,20 +81,20 @@ class MyPipelineStack(Stack):
|
|
|
81
81
|
input=pipelines.CodePipelineSource.connection("my-org/my-app", "main",
|
|
82
82
|
connection_arn="arn:aws:codestar-connections:us-east-1:222222222222:connection/7d2469ff-514a-4e4f-9003-5ca4a43cdc41"
|
|
83
83
|
),
|
|
84
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
85
|
-
]
|
|
84
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
86
85
|
)
|
|
87
86
|
)
|
|
88
87
|
|
|
89
88
|
# 'MyApplication' is defined below. Call `addStage` as many times as
|
|
90
89
|
# necessary with any account and region (may be different from the
|
|
91
90
|
# pipeline's).
|
|
92
|
-
pipeline.add_stage(
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
91
|
+
pipeline.add_stage(
|
|
92
|
+
MyApplication(self, "Prod",
|
|
93
|
+
env=cdk.Environment(
|
|
94
|
+
account="123456789012",
|
|
95
|
+
region="eu-west-1"
|
|
96
|
+
)
|
|
97
|
+
))
|
|
98
98
|
|
|
99
99
|
#
|
|
100
100
|
# Your application
|
|
@@ -167,24 +167,15 @@ To make the development more convenient, the self-mutation feature can be turned
|
|
|
167
167
|
off temporarily, by passing `selfMutation: false` property, example:
|
|
168
168
|
|
|
169
169
|
```python
|
|
170
|
-
|
|
171
|
-
modern_pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
170
|
+
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
172
171
|
self_mutation=False,
|
|
173
172
|
synth=pipelines.ShellStep("Synth",
|
|
174
173
|
input=pipelines.CodePipelineSource.connection("my-org/my-app", "main",
|
|
175
174
|
connection_arn="arn:aws:codestar-connections:us-east-1:222222222222:connection/7d2469ff-514a-4e4f-9003-5ca4a43cdc41"
|
|
176
175
|
),
|
|
177
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
178
|
-
]
|
|
176
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
179
177
|
)
|
|
180
178
|
)
|
|
181
|
-
|
|
182
|
-
# Original API
|
|
183
|
-
cloud_assembly_artifact = codepipeline.Artifact()
|
|
184
|
-
original_pipeline = pipelines.CdkPipeline(self, "Pipeline",
|
|
185
|
-
self_mutating=False,
|
|
186
|
-
cloud_assembly_artifact=cloud_assembly_artifact
|
|
187
|
-
)
|
|
188
179
|
```
|
|
189
180
|
|
|
190
181
|
## Defining the pipeline
|
|
@@ -214,8 +205,7 @@ typical NPM-based project, the synth will look like this:
|
|
|
214
205
|
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
215
206
|
synth=pipelines.ShellStep("Synth",
|
|
216
207
|
input=source,
|
|
217
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
218
|
-
]
|
|
208
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
219
209
|
)
|
|
220
210
|
)
|
|
221
211
|
```
|
|
@@ -232,8 +222,7 @@ CDK project lives in a subdirectory, be sure to adjust the
|
|
|
232
222
|
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
233
223
|
synth=pipelines.ShellStep("Synth",
|
|
234
224
|
input=source,
|
|
235
|
-
commands=["cd mysubdir", "npm ci", "npm run build", "npx cdk synth"
|
|
236
|
-
],
|
|
225
|
+
commands=["cd mysubdir", "npm ci", "npm run build", "npx cdk synth"],
|
|
237
226
|
primary_output_directory="mysubdir/cdk.out"
|
|
238
227
|
)
|
|
239
228
|
)
|
|
@@ -261,8 +250,7 @@ For Yarn, the install commands are different:
|
|
|
261
250
|
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
262
251
|
synth=pipelines.ShellStep("Synth",
|
|
263
252
|
input=source,
|
|
264
|
-
commands=["yarn install --frozen-lockfile", "yarn build", "npx cdk synth"
|
|
265
|
-
]
|
|
253
|
+
commands=["yarn install --frozen-lockfile", "yarn build", "npx cdk synth"]
|
|
266
254
|
)
|
|
267
255
|
)
|
|
268
256
|
```
|
|
@@ -295,8 +283,7 @@ as you run `cdk synth`:
|
|
|
295
283
|
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
296
284
|
synth=pipelines.ShellStep("Synth",
|
|
297
285
|
input=source,
|
|
298
|
-
commands=["npm install -g aws-cdk", "cdk synth"
|
|
299
|
-
]
|
|
286
|
+
commands=["npm install -g aws-cdk", "cdk synth"]
|
|
300
287
|
)
|
|
301
288
|
)
|
|
302
289
|
```
|
|
@@ -438,12 +425,13 @@ so, call `pipeline.addStage()` on the Stage object:
|
|
|
438
425
|
|
|
439
426
|
# Do this as many times as necessary with any account and region
|
|
440
427
|
# Account and region may different from the pipeline's.
|
|
441
|
-
pipeline.add_stage(
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
)
|
|
428
|
+
pipeline.add_stage(
|
|
429
|
+
MyApplicationStage(self, "Prod",
|
|
430
|
+
env=cdk.Environment(
|
|
431
|
+
account="123456789012",
|
|
432
|
+
region="eu-west-1"
|
|
433
|
+
)
|
|
434
|
+
))
|
|
447
435
|
```
|
|
448
436
|
|
|
449
437
|
CDK Pipelines will automatically discover all `Stacks` in the given `Stage`
|
|
@@ -471,12 +459,14 @@ application to `eu-west-1` and `eu-central-1` in parallel:
|
|
|
471
459
|
# pipeline: pipelines.CodePipeline
|
|
472
460
|
|
|
473
461
|
europe_wave = pipeline.add_wave("Europe")
|
|
474
|
-
europe_wave.add_stage(
|
|
475
|
-
|
|
476
|
-
)
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
462
|
+
europe_wave.add_stage(
|
|
463
|
+
MyApplicationStage(self, "Ireland",
|
|
464
|
+
env=cdk.Environment(region="eu-west-1")
|
|
465
|
+
))
|
|
466
|
+
europe_wave.add_stage(
|
|
467
|
+
MyApplicationStage(self, "Germany",
|
|
468
|
+
env=cdk.Environment(region="eu-central-1")
|
|
469
|
+
))
|
|
480
470
|
```
|
|
481
471
|
|
|
482
472
|
#### Deploying to other accounts / encrypting the Artifact Bucket
|
|
@@ -504,8 +494,7 @@ pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
|
504
494
|
input=pipelines.CodePipelineSource.connection("my-org/my-app", "main",
|
|
505
495
|
connection_arn="arn:aws:codestar-connections:us-east-1:222222222222:connection/7d2469ff-514a-4e4f-9003-5ca4a43cdc41"
|
|
506
496
|
),
|
|
507
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
508
|
-
]
|
|
497
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
509
498
|
)
|
|
510
499
|
)
|
|
511
500
|
```
|
|
@@ -561,9 +550,7 @@ pipeline.add_stage(preprod,
|
|
|
561
550
|
]
|
|
562
551
|
)
|
|
563
552
|
pipeline.add_stage(prod,
|
|
564
|
-
pre=[
|
|
565
|
-
pipelines.ManualApprovalStep("PromoteToProd")
|
|
566
|
-
]
|
|
553
|
+
pre=[pipelines.ManualApprovalStep("PromoteToProd")]
|
|
567
554
|
)
|
|
568
555
|
```
|
|
569
556
|
|
|
@@ -588,7 +575,8 @@ pipeline.add_stage(prod,
|
|
|
588
575
|
), pipelines.StackSteps(
|
|
589
576
|
stack=prod.stack2,
|
|
590
577
|
post=[pipelines.ManualApprovalStep("Post-Deploy Check")]
|
|
591
|
-
)
|
|
578
|
+
)
|
|
579
|
+
]
|
|
592
580
|
)
|
|
593
581
|
```
|
|
594
582
|
|
|
@@ -628,7 +616,9 @@ class MyOutputStage(Stage):
|
|
|
628
616
|
|
|
629
617
|
def __init__(self, scope, id, *, env=None, outdir=None, stageName=None, permissionsBoundary=None, policyValidationBeta1=None):
|
|
630
618
|
super().__init__(scope, id, env=env, outdir=outdir, stageName=stageName, permissionsBoundary=permissionsBoundary, policyValidationBeta1=policyValidationBeta1)
|
|
631
|
-
self.load_balancer_address = CfnOutput(self, "Output",
|
|
619
|
+
self.load_balancer_address = CfnOutput(self, "Output",
|
|
620
|
+
value="value"
|
|
621
|
+
)
|
|
632
622
|
|
|
633
623
|
lb_app = MyOutputStage(self, "MyApp")
|
|
634
624
|
pipeline.add_stage(lb_app,
|
|
@@ -708,12 +698,14 @@ pipelines.CodeBuildStep("Synth",
|
|
|
708
698
|
privileged=True
|
|
709
699
|
),
|
|
710
700
|
timeout=Duration.minutes(90),
|
|
711
|
-
file_system_locations=[
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
701
|
+
file_system_locations=[
|
|
702
|
+
codebuild.FileSystemLocation.efs(
|
|
703
|
+
identifier="myidentifier2",
|
|
704
|
+
location="myclodation.mydnsroot.com:/loc",
|
|
705
|
+
mount_point="/media",
|
|
706
|
+
mount_options="opts"
|
|
707
|
+
)
|
|
708
|
+
],
|
|
717
709
|
|
|
718
710
|
# Control Elastic Network Interface creation
|
|
719
711
|
vpc=vpc,
|
|
@@ -747,8 +739,7 @@ pipelines.CodePipeline(self, "Pipeline",
|
|
|
747
739
|
input=pipelines.CodePipelineSource.connection("my-org/my-app", "main",
|
|
748
740
|
connection_arn="arn:aws:codestar-connections:us-east-1:222222222222:connection/7d2469ff-514a-4e4f-9003-5ca4a43cdc41"
|
|
749
741
|
),
|
|
750
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
751
|
-
]
|
|
742
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
752
743
|
),
|
|
753
744
|
|
|
754
745
|
# Defaults for all CodeBuild projects
|
|
@@ -812,22 +803,22 @@ class MyJenkinsStep(pipelines.Step):
|
|
|
812
803
|
})
|
|
813
804
|
|
|
814
805
|
def produce_action(self, stage, *, scope, actionName, runOrder, variablesNamespace=None, artifacts, fallbackArtifact=None, pipeline, codeBuildDefaults=None, beforeSelfMutation=None, stackOutputsMap):
|
|
815
|
-
|
|
816
806
|
# This is where you control what type of Action gets added to the
|
|
817
807
|
# CodePipeline
|
|
818
|
-
stage.add_action(
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
808
|
+
stage.add_action(
|
|
809
|
+
cpactions.JenkinsAction(
|
|
810
|
+
# Copy 'actionName' and 'runOrder' from the options
|
|
811
|
+
action_name=action_name,
|
|
812
|
+
run_order=run_order,
|
|
822
813
|
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
814
|
+
# Jenkins-specific configuration
|
|
815
|
+
type=cpactions.JenkinsActionType.TEST,
|
|
816
|
+
jenkins_provider=self.provider,
|
|
817
|
+
project_name="MyJenkinsProject",
|
|
827
818
|
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
819
|
+
# Translate the FileSet into a codepipeline.Artifact
|
|
820
|
+
inputs=[artifacts.to_code_pipeline(self.input)]
|
|
821
|
+
))
|
|
831
822
|
|
|
832
823
|
return pipelines.CodePipelineActionFactoryResult(run_orders_consumed=1)
|
|
833
824
|
```
|
|
@@ -840,17 +831,20 @@ class MyLambdaStep(pipelines.Step):
|
|
|
840
831
|
|
|
841
832
|
def __init__(self, fn, stack_output):
|
|
842
833
|
super().__init__("MyLambdaStep")
|
|
843
|
-
self.stack_output_reference =
|
|
834
|
+
self.stack_output_reference =
|
|
835
|
+
pipelines.StackOutputReference.from_cfn_output(stack_output)
|
|
844
836
|
|
|
845
837
|
def produce_action(self, stage, *, scope, actionName, runOrder, variablesNamespace=None, artifacts, fallbackArtifact=None, pipeline, codeBuildDefaults=None, beforeSelfMutation=None, stackOutputsMap):
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
838
|
+
stage.add_action(
|
|
839
|
+
cpactions.LambdaInvokeAction(
|
|
840
|
+
action_name=action_name,
|
|
841
|
+
run_order=run_order,
|
|
842
|
+
# Map the reference to the variable name the CDK has generated for you.
|
|
843
|
+
user_parameters={
|
|
844
|
+
"stack_output": stack_outputs_map.to_code_pipeline(self.stack_output_reference)
|
|
845
|
+
},
|
|
846
|
+
lambda_=self.fn
|
|
847
|
+
))
|
|
854
848
|
|
|
855
849
|
return pipelines.CodePipelineActionFactoryResult(run_orders_consumed=1)public get consumedStackOutputs(): pipelines.StackOutputReference[] {
|
|
856
850
|
return [this.stackOutputReference];
|
|
@@ -1031,7 +1025,9 @@ the **Synth**, **Self-Update**, and **Asset Publishing** actions within the
|
|
|
1031
1025
|
```python
|
|
1032
1026
|
docker_hub_secret = secretsmanager.Secret.from_secret_complete_arn(self, "DHSecret", "arn:aws:...")
|
|
1033
1027
|
# Only the image asset publishing actions will be granted read access to the secret.
|
|
1034
|
-
creds = pipelines.DockerCredential.docker_hub(docker_hub_secret,
|
|
1028
|
+
creds = pipelines.DockerCredential.docker_hub(docker_hub_secret,
|
|
1029
|
+
usages=[pipelines.DockerCredentialUsage.ASSET_PUBLISHING]
|
|
1030
|
+
)
|
|
1035
1031
|
```
|
|
1036
1032
|
|
|
1037
1033
|
## CDK Environment Bootstrapping
|
|
@@ -1133,7 +1129,7 @@ These command lines explained:
|
|
|
1133
1129
|
> Be aware that anyone who has access to the trusted Accounts **effectively has all
|
|
1134
1130
|
> permissions conferred by the configured CloudFormation execution policies**,
|
|
1135
1131
|
> allowing them to do things like read arbitrary S3 buckets and create arbitrary
|
|
1136
|
-
> infrastructure in the bootstrapped account.
|
|
1132
|
+
> infrastructure in the bootstrapped account. Restrict the list of `--trust`ed Accounts,
|
|
1137
1133
|
> or restrict the policies configured by `--cloudformation-execution-policies`.
|
|
1138
1134
|
|
|
1139
1135
|
<br>
|
|
@@ -1244,7 +1240,7 @@ contains the results of the context lookups. This will make sure your
|
|
|
1244
1240
|
synthesized infrastructure is consistent and repeatable. If you do not commit
|
|
1245
1241
|
`cdk.context.json`, the results of the lookups may suddenly be different in
|
|
1246
1242
|
unexpected ways, and even produce results that cannot be deployed or will cause
|
|
1247
|
-
data loss.
|
|
1243
|
+
data loss. To give an account permissions to perform lookups against an
|
|
1248
1244
|
environment, without being able to deploy to it and make changes, run
|
|
1249
1245
|
`cdk bootstrap --trust-for-lookup=<account>`.
|
|
1250
1246
|
|
|
@@ -1341,9 +1337,7 @@ You can insert the security check by using a `ConfirmPermissionsBroadening` step
|
|
|
1341
1337
|
|
|
1342
1338
|
stage = MyApplicationStage(self, "MyApplication")
|
|
1343
1339
|
pipeline.add_stage(stage,
|
|
1344
|
-
pre=[
|
|
1345
|
-
pipelines.ConfirmPermissionsBroadening("Check", stage=stage)
|
|
1346
|
-
]
|
|
1340
|
+
pre=[pipelines.ConfirmPermissionsBroadening("Check", stage=stage)]
|
|
1347
1341
|
)
|
|
1348
1342
|
```
|
|
1349
1343
|
|
|
@@ -1427,7 +1421,7 @@ but the directory wasn't there. There are two common causes for this:
|
|
|
1427
1421
|
|
|
1428
1422
|
### <Stack> is in ROLLBACK_COMPLETE state and can not be updated
|
|
1429
1423
|
|
|
1430
|
-
If
|
|
1424
|
+
If you see the following error during execution of your pipeline:
|
|
1431
1425
|
|
|
1432
1426
|
```plaintext
|
|
1433
1427
|
Stack ... is in ROLLBACK_COMPLETE state and can not be updated. (Service:
|
|
@@ -1476,21 +1470,6 @@ that bundles asset using tools run via Docker, like `aws-lambda-nodejs`, `aws-la
|
|
|
1476
1470
|
|
|
1477
1471
|
Make sure you set the `privileged` environment variable to `true` in the synth definition:
|
|
1478
1472
|
|
|
1479
|
-
```python
|
|
1480
|
-
source_artifact = codepipeline.Artifact()
|
|
1481
|
-
cloud_assembly_artifact = codepipeline.Artifact()
|
|
1482
|
-
pipeline = pipelines.CdkPipeline(self, "MyPipeline",
|
|
1483
|
-
cloud_assembly_artifact=cloud_assembly_artifact,
|
|
1484
|
-
synth_action=pipelines.SimpleSynthAction.standard_npm_synth(
|
|
1485
|
-
source_artifact=source_artifact,
|
|
1486
|
-
cloud_assembly_artifact=cloud_assembly_artifact,
|
|
1487
|
-
environment=codebuild.BuildEnvironment(
|
|
1488
|
-
privileged=True
|
|
1489
|
-
)
|
|
1490
|
-
)
|
|
1491
|
-
)
|
|
1492
|
-
```
|
|
1493
|
-
|
|
1494
1473
|
After turning on `privilegedMode: true`, you will need to do a one-time manual cdk deploy of your
|
|
1495
1474
|
pipeline to get it going again (as with a broken 'synth' the pipeline will not be able to self
|
|
1496
1475
|
update to the right state).
|
|
@@ -1543,27 +1522,6 @@ An "S3 Access Denied" error can have two causes:
|
|
|
1543
1522
|
* Asset hashes have changed, but self-mutation has been disabled in the pipeline.
|
|
1544
1523
|
* You have deleted and recreated the bootstrap stack, or changed its qualifier.
|
|
1545
1524
|
|
|
1546
|
-
#### Self-mutation step has been removed
|
|
1547
|
-
|
|
1548
|
-
Some constructs, such as EKS clusters, generate nested stacks. When CloudFormation tries
|
|
1549
|
-
to deploy those stacks, it may fail with this error:
|
|
1550
|
-
|
|
1551
|
-
```console
|
|
1552
|
-
S3 error: Access Denied For more information check http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
|
|
1553
|
-
```
|
|
1554
|
-
|
|
1555
|
-
This happens because the pipeline is not self-mutating and, as a consequence, the `FileAssetX`
|
|
1556
|
-
build projects get out-of-sync with the generated templates. To fix this, make sure the
|
|
1557
|
-
`selfMutating` property is set to `true`:
|
|
1558
|
-
|
|
1559
|
-
```python
|
|
1560
|
-
cloud_assembly_artifact = codepipeline.Artifact()
|
|
1561
|
-
pipeline = pipelines.CdkPipeline(self, "MyPipeline",
|
|
1562
|
-
self_mutating=True,
|
|
1563
|
-
cloud_assembly_artifact=cloud_assembly_artifact
|
|
1564
|
-
)
|
|
1565
|
-
```
|
|
1566
|
-
|
|
1567
1525
|
#### Bootstrap roles have been renamed or recreated
|
|
1568
1526
|
|
|
1569
1527
|
While attempting to deploy an application stage, the "Prepare" or "Deploy" stage may fail with a cryptic error like:
|
|
@@ -1617,13 +1575,13 @@ encryption key policy for the artifacts bucket may have a statement that looks l
|
|
|
1617
1575
|
|
|
1618
1576
|
```json
|
|
1619
1577
|
{
|
|
1620
|
-
"Effect"
|
|
1621
|
-
"Principal"
|
|
1578
|
+
"Effect": "Allow",
|
|
1579
|
+
"Principal": {
|
|
1622
1580
|
// "AWS" : "AROAYBRETNYCYV6ZF2R93" // Indicates this issue; replace this value
|
|
1623
|
-
"AWS": "arn:aws:iam::0123456789012:role/cdk-hnb659fds-deploy-role-0123456789012-eu-west-1"
|
|
1581
|
+
"AWS": "arn:aws:iam::0123456789012:role/cdk-hnb659fds-deploy-role-0123456789012-eu-west-1" // Correct value
|
|
1624
1582
|
},
|
|
1625
|
-
"Action"
|
|
1626
|
-
"Resource"
|
|
1583
|
+
"Action": ["kms:Decrypt", "kms:DescribeKey"],
|
|
1584
|
+
"Resource": "*"
|
|
1627
1585
|
}
|
|
1628
1586
|
```
|
|
1629
1587
|
|
|
@@ -1857,9 +1815,7 @@ class AddStageOpts:
|
|
|
1857
1815
|
]
|
|
1858
1816
|
)
|
|
1859
1817
|
pipeline.add_stage(prod,
|
|
1860
|
-
pre=[
|
|
1861
|
-
pipelines.ManualApprovalStep("PromoteToProd")
|
|
1862
|
-
]
|
|
1818
|
+
pre=[pipelines.ManualApprovalStep("PromoteToProd")]
|
|
1863
1819
|
)
|
|
1864
1820
|
'''
|
|
1865
1821
|
if __debug__:
|
|
@@ -2470,24 +2426,18 @@ class CodePipelineProps:
|
|
|
2470
2426
|
|
|
2471
2427
|
Example::
|
|
2472
2428
|
|
|
2473
|
-
#
|
|
2474
|
-
|
|
2475
|
-
|
|
2429
|
+
# code_pipeline: codepipeline.Pipeline
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
source_artifact = codepipeline.Artifact("MySourceArtifact")
|
|
2433
|
+
|
|
2434
|
+
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
2435
|
+
code_pipeline=code_pipeline,
|
|
2476
2436
|
synth=pipelines.ShellStep("Synth",
|
|
2477
|
-
input=pipelines.
|
|
2478
|
-
|
|
2479
|
-
),
|
|
2480
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
2481
|
-
]
|
|
2437
|
+
input=pipelines.CodePipelineFileSet.from_artifact(source_artifact),
|
|
2438
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
2482
2439
|
)
|
|
2483
2440
|
)
|
|
2484
|
-
|
|
2485
|
-
# Original API
|
|
2486
|
-
cloud_assembly_artifact = codepipeline.Artifact()
|
|
2487
|
-
original_pipeline = pipelines.CdkPipeline(self, "Pipeline",
|
|
2488
|
-
self_mutating=False,
|
|
2489
|
-
cloud_assembly_artifact=cloud_assembly_artifact
|
|
2490
|
-
)
|
|
2491
2441
|
'''
|
|
2492
2442
|
if isinstance(asset_publishing_code_build_defaults, dict):
|
|
2493
2443
|
asset_publishing_code_build_defaults = CodeBuildOptions(**asset_publishing_code_build_defaults)
|
|
@@ -3171,7 +3121,9 @@ class DockerCredentialUsage(enum.Enum):
|
|
|
3171
3121
|
|
|
3172
3122
|
docker_hub_secret = secretsmanager.Secret.from_secret_complete_arn(self, "DHSecret", "arn:aws:...")
|
|
3173
3123
|
# Only the image asset publishing actions will be granted read access to the secret.
|
|
3174
|
-
creds = pipelines.DockerCredential.docker_hub(docker_hub_secret,
|
|
3124
|
+
creds = pipelines.DockerCredential.docker_hub(docker_hub_secret,
|
|
3125
|
+
usages=[pipelines.DockerCredentialUsage.ASSET_PUBLISHING]
|
|
3126
|
+
)
|
|
3175
3127
|
'''
|
|
3176
3128
|
|
|
3177
3129
|
SYNTH = "SYNTH"
|
|
@@ -3354,7 +3306,9 @@ class ExternalDockerCredentialOptions:
|
|
|
3354
3306
|
|
|
3355
3307
|
docker_hub_secret = secretsmanager.Secret.from_secret_complete_arn(self, "DHSecret", "arn:aws:...")
|
|
3356
3308
|
# Only the image asset publishing actions will be granted read access to the secret.
|
|
3357
|
-
creds = pipelines.DockerCredential.docker_hub(docker_hub_secret,
|
|
3309
|
+
creds = pipelines.DockerCredential.docker_hub(docker_hub_secret,
|
|
3310
|
+
usages=[pipelines.DockerCredentialUsage.ASSET_PUBLISHING]
|
|
3311
|
+
)
|
|
3358
3312
|
'''
|
|
3359
3313
|
if __debug__:
|
|
3360
3314
|
type_hints = typing.get_type_hints(_typecheckingstub__c359b9b78870cd0768aec95eba517b31efce3c0139487e9574671e537d4d9c8a)
|
|
@@ -3810,9 +3764,7 @@ class PermissionsBroadeningCheckProps:
|
|
|
3810
3764
|
|
|
3811
3765
|
stage = MyApplicationStage(self, "MyApplication")
|
|
3812
3766
|
pipeline.add_stage(stage,
|
|
3813
|
-
pre=[
|
|
3814
|
-
pipelines.ConfirmPermissionsBroadening("Check", stage=stage)
|
|
3815
|
-
]
|
|
3767
|
+
pre=[pipelines.ConfirmPermissionsBroadening("Check", stage=stage)]
|
|
3816
3768
|
)
|
|
3817
3769
|
'''
|
|
3818
3770
|
if __debug__:
|
|
@@ -4485,24 +4437,18 @@ class ShellStepProps:
|
|
|
4485
4437
|
|
|
4486
4438
|
Example::
|
|
4487
4439
|
|
|
4488
|
-
#
|
|
4489
|
-
|
|
4490
|
-
|
|
4440
|
+
# code_pipeline: codepipeline.Pipeline
|
|
4441
|
+
|
|
4442
|
+
|
|
4443
|
+
source_artifact = codepipeline.Artifact("MySourceArtifact")
|
|
4444
|
+
|
|
4445
|
+
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
4446
|
+
code_pipeline=code_pipeline,
|
|
4491
4447
|
synth=pipelines.ShellStep("Synth",
|
|
4492
|
-
input=pipelines.
|
|
4493
|
-
|
|
4494
|
-
),
|
|
4495
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
4496
|
-
]
|
|
4448
|
+
input=pipelines.CodePipelineFileSet.from_artifact(source_artifact),
|
|
4449
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
4497
4450
|
)
|
|
4498
4451
|
)
|
|
4499
|
-
|
|
4500
|
-
# Original API
|
|
4501
|
-
cloud_assembly_artifact = codepipeline.Artifact()
|
|
4502
|
-
original_pipeline = pipelines.CdkPipeline(self, "Pipeline",
|
|
4503
|
-
self_mutating=False,
|
|
4504
|
-
cloud_assembly_artifact=cloud_assembly_artifact
|
|
4505
|
-
)
|
|
4506
4452
|
'''
|
|
4507
4453
|
if __debug__:
|
|
4508
4454
|
type_hints = typing.get_type_hints(_typecheckingstub__672600085b4c1f54d7e497f605a0be2945f1a2759aaf8632197707da6d73a55c)
|
|
@@ -5194,17 +5140,20 @@ class StackOutputReference(
|
|
|
5194
5140
|
|
|
5195
5141
|
def __init__(self, fn, stack_output):
|
|
5196
5142
|
super().__init__("MyLambdaStep")
|
|
5197
|
-
self.stack_output_reference =
|
|
5143
|
+
self.stack_output_reference =
|
|
5144
|
+
pipelines.StackOutputReference.from_cfn_output(stack_output)
|
|
5198
5145
|
|
|
5199
5146
|
def produce_action(self, stage, *, scope, actionName, runOrder, variablesNamespace=None, artifacts, fallbackArtifact=None, pipeline, codeBuildDefaults=None, beforeSelfMutation=None, stackOutputsMap):
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5147
|
+
stage.add_action(
|
|
5148
|
+
cpactions.LambdaInvokeAction(
|
|
5149
|
+
action_name=action_name,
|
|
5150
|
+
run_order=run_order,
|
|
5151
|
+
# Map the reference to the variable name the CDK has generated for you.
|
|
5152
|
+
user_parameters={
|
|
5153
|
+
"stack_output": stack_outputs_map.to_code_pipeline(self.stack_output_reference)
|
|
5154
|
+
},
|
|
5155
|
+
lambda_=self.fn
|
|
5156
|
+
))
|
|
5208
5157
|
|
|
5209
5158
|
return pipelines.CodePipelineActionFactoryResult(run_orders_consumed=1)public get consumedStackOutputs(): pipelines.StackOutputReference[] {
|
|
5210
5159
|
return [this.stackOutputReference];
|
|
@@ -5666,22 +5615,22 @@ class Step(metaclass=jsii.JSIIAbstractClass, jsii_type="aws-cdk-lib.pipelines.St
|
|
|
5666
5615
|
})
|
|
5667
5616
|
|
|
5668
5617
|
def produce_action(self, stage, *, scope, actionName, runOrder, variablesNamespace=None, artifacts, fallbackArtifact=None, pipeline, codeBuildDefaults=None, beforeSelfMutation=None, stackOutputsMap):
|
|
5669
|
-
|
|
5670
5618
|
# This is where you control what type of Action gets added to the
|
|
5671
5619
|
# CodePipeline
|
|
5672
|
-
stage.add_action(
|
|
5673
|
-
|
|
5674
|
-
|
|
5675
|
-
|
|
5620
|
+
stage.add_action(
|
|
5621
|
+
cpactions.JenkinsAction(
|
|
5622
|
+
# Copy 'actionName' and 'runOrder' from the options
|
|
5623
|
+
action_name=action_name,
|
|
5624
|
+
run_order=run_order,
|
|
5676
5625
|
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5626
|
+
# Jenkins-specific configuration
|
|
5627
|
+
type=cpactions.JenkinsActionType.TEST,
|
|
5628
|
+
jenkins_provider=self.provider,
|
|
5629
|
+
project_name="MyJenkinsProject",
|
|
5681
5630
|
|
|
5682
|
-
|
|
5683
|
-
|
|
5684
|
-
|
|
5631
|
+
# Translate the FileSet into a codepipeline.Artifact
|
|
5632
|
+
inputs=[artifacts.to_code_pipeline(self.input)]
|
|
5633
|
+
))
|
|
5685
5634
|
|
|
5686
5635
|
return pipelines.CodePipelineActionFactoryResult(run_orders_consumed=1)
|
|
5687
5636
|
'''
|
|
@@ -5828,12 +5777,14 @@ class Wave(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.pipelines.Wave"):
|
|
|
5828
5777
|
# pipeline: pipelines.CodePipeline
|
|
5829
5778
|
|
|
5830
5779
|
europe_wave = pipeline.add_wave("Europe")
|
|
5831
|
-
europe_wave.add_stage(
|
|
5832
|
-
|
|
5833
|
-
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5780
|
+
europe_wave.add_stage(
|
|
5781
|
+
MyApplicationStage(self, "Ireland",
|
|
5782
|
+
env=cdk.Environment(region="eu-west-1")
|
|
5783
|
+
))
|
|
5784
|
+
europe_wave.add_stage(
|
|
5785
|
+
MyApplicationStage(self, "Germany",
|
|
5786
|
+
env=cdk.Environment(region="eu-central-1")
|
|
5787
|
+
))
|
|
5837
5788
|
'''
|
|
5838
5789
|
|
|
5839
5790
|
def __init__(
|
|
@@ -6536,24 +6487,18 @@ class CodePipeline(
|
|
|
6536
6487
|
|
|
6537
6488
|
Example::
|
|
6538
6489
|
|
|
6539
|
-
#
|
|
6540
|
-
|
|
6541
|
-
|
|
6490
|
+
# code_pipeline: codepipeline.Pipeline
|
|
6491
|
+
|
|
6492
|
+
|
|
6493
|
+
source_artifact = codepipeline.Artifact("MySourceArtifact")
|
|
6494
|
+
|
|
6495
|
+
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
6496
|
+
code_pipeline=code_pipeline,
|
|
6542
6497
|
synth=pipelines.ShellStep("Synth",
|
|
6543
|
-
input=pipelines.
|
|
6544
|
-
|
|
6545
|
-
),
|
|
6546
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
6547
|
-
]
|
|
6498
|
+
input=pipelines.CodePipelineFileSet.from_artifact(source_artifact),
|
|
6499
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
6548
6500
|
)
|
|
6549
6501
|
)
|
|
6550
|
-
|
|
6551
|
-
# Original API
|
|
6552
|
-
cloud_assembly_artifact = codepipeline.Artifact()
|
|
6553
|
-
original_pipeline = pipelines.CdkPipeline(self, "Pipeline",
|
|
6554
|
-
self_mutating=False,
|
|
6555
|
-
cloud_assembly_artifact=cloud_assembly_artifact
|
|
6556
|
-
)
|
|
6557
6502
|
'''
|
|
6558
6503
|
|
|
6559
6504
|
def __init__(
|
|
@@ -7081,9 +7026,7 @@ class ConfirmPermissionsBroadening(
|
|
|
7081
7026
|
|
|
7082
7027
|
stage = MyApplicationStage(self, "MyApplication")
|
|
7083
7028
|
pipeline.add_stage(stage,
|
|
7084
|
-
pre=[
|
|
7085
|
-
pipelines.ConfirmPermissionsBroadening("Check", stage=stage)
|
|
7086
|
-
]
|
|
7029
|
+
pre=[pipelines.ConfirmPermissionsBroadening("Check", stage=stage)]
|
|
7087
7030
|
)
|
|
7088
7031
|
'''
|
|
7089
7032
|
|
|
@@ -7181,22 +7124,22 @@ class FileSet(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.pipelines.FileSet"
|
|
|
7181
7124
|
})
|
|
7182
7125
|
|
|
7183
7126
|
def produce_action(self, stage, *, scope, actionName, runOrder, variablesNamespace=None, artifacts, fallbackArtifact=None, pipeline, codeBuildDefaults=None, beforeSelfMutation=None, stackOutputsMap):
|
|
7184
|
-
|
|
7185
7127
|
# This is where you control what type of Action gets added to the
|
|
7186
7128
|
# CodePipeline
|
|
7187
|
-
stage.add_action(
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7129
|
+
stage.add_action(
|
|
7130
|
+
cpactions.JenkinsAction(
|
|
7131
|
+
# Copy 'actionName' and 'runOrder' from the options
|
|
7132
|
+
action_name=action_name,
|
|
7133
|
+
run_order=run_order,
|
|
7191
7134
|
|
|
7192
|
-
|
|
7193
|
-
|
|
7194
|
-
|
|
7195
|
-
|
|
7135
|
+
# Jenkins-specific configuration
|
|
7136
|
+
type=cpactions.JenkinsActionType.TEST,
|
|
7137
|
+
jenkins_provider=self.provider,
|
|
7138
|
+
project_name="MyJenkinsProject",
|
|
7196
7139
|
|
|
7197
|
-
|
|
7198
|
-
|
|
7199
|
-
|
|
7140
|
+
# Translate the FileSet into a codepipeline.Artifact
|
|
7141
|
+
inputs=[artifacts.to_code_pipeline(self.input)]
|
|
7142
|
+
))
|
|
7200
7143
|
|
|
7201
7144
|
return pipelines.CodePipelineActionFactoryResult(run_orders_consumed=1)
|
|
7202
7145
|
'''
|
|
@@ -7286,9 +7229,7 @@ class ManualApprovalStep(
|
|
|
7286
7229
|
]
|
|
7287
7230
|
)
|
|
7288
7231
|
pipeline.add_stage(prod,
|
|
7289
|
-
pre=[
|
|
7290
|
-
pipelines.ManualApprovalStep("PromoteToProd")
|
|
7291
|
-
]
|
|
7232
|
+
pre=[pipelines.ManualApprovalStep("PromoteToProd")]
|
|
7292
7233
|
)
|
|
7293
7234
|
'''
|
|
7294
7235
|
|
|
@@ -7333,24 +7274,18 @@ class ShellStep(
|
|
|
7333
7274
|
|
|
7334
7275
|
Example::
|
|
7335
7276
|
|
|
7336
|
-
#
|
|
7337
|
-
|
|
7338
|
-
|
|
7277
|
+
# code_pipeline: codepipeline.Pipeline
|
|
7278
|
+
|
|
7279
|
+
|
|
7280
|
+
source_artifact = codepipeline.Artifact("MySourceArtifact")
|
|
7281
|
+
|
|
7282
|
+
pipeline = pipelines.CodePipeline(self, "Pipeline",
|
|
7283
|
+
code_pipeline=code_pipeline,
|
|
7339
7284
|
synth=pipelines.ShellStep("Synth",
|
|
7340
|
-
input=pipelines.
|
|
7341
|
-
|
|
7342
|
-
),
|
|
7343
|
-
commands=["npm ci", "npm run build", "npx cdk synth"
|
|
7344
|
-
]
|
|
7285
|
+
input=pipelines.CodePipelineFileSet.from_artifact(source_artifact),
|
|
7286
|
+
commands=["npm ci", "npm run build", "npx cdk synth"]
|
|
7345
7287
|
)
|
|
7346
7288
|
)
|
|
7347
|
-
|
|
7348
|
-
# Original API
|
|
7349
|
-
cloud_assembly_artifact = codepipeline.Artifact()
|
|
7350
|
-
original_pipeline = pipelines.CdkPipeline(self, "Pipeline",
|
|
7351
|
-
self_mutating=False,
|
|
7352
|
-
cloud_assembly_artifact=cloud_assembly_artifact
|
|
7353
|
-
)
|
|
7354
7289
|
'''
|
|
7355
7290
|
|
|
7356
7291
|
def __init__(
|