cdk-certbot-dns-route53 2.3.1 → 2.4.1
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.
- package/.jsii +306 -30
- package/API.md +130 -1
- package/README.md +30 -0
- package/assets/main.py +79 -0
- package/assets/requirements.txt +25 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/integ.python.d.ts +1 -0
- package/lib/integ.python.js +29 -0
- package/lib/lambda-bash.js +3 -3
- package/lib/lambda-python.d.ts +17 -0
- package/lib/lambda-python.js +35 -0
- package/lib/main.d.ts +24 -0
- package/lib/main.js +69 -4
- package/package.json +6 -3
package/.jsii
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"aws-cdk-
|
|
10
|
+
"@aws-cdk/aws-lambda-python-alpha": "2.115.0-alpha.0",
|
|
11
|
+
"aws-cdk-lib": "^2.115.0",
|
|
11
12
|
"constructs": "^10.0.5"
|
|
12
13
|
},
|
|
13
14
|
"dependencyClosure": {
|
|
@@ -89,6 +90,37 @@
|
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
},
|
|
93
|
+
"@aws-cdk/aws-lambda-python-alpha": {
|
|
94
|
+
"targets": {
|
|
95
|
+
"dotnet": {
|
|
96
|
+
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png",
|
|
97
|
+
"namespace": "Amazon.CDK.AWS.Lambda.Python.Alpha",
|
|
98
|
+
"packageId": "Amazon.CDK.AWS.Lambda.Python.Alpha"
|
|
99
|
+
},
|
|
100
|
+
"go": {
|
|
101
|
+
"moduleName": "github.com/aws/aws-cdk-go",
|
|
102
|
+
"packageName": "awscdklambdapythonalpha"
|
|
103
|
+
},
|
|
104
|
+
"java": {
|
|
105
|
+
"maven": {
|
|
106
|
+
"artifactId": "lambda-python-alpha",
|
|
107
|
+
"groupId": "software.amazon.awscdk"
|
|
108
|
+
},
|
|
109
|
+
"package": "software.amazon.awscdk.services.lambda.python.alpha"
|
|
110
|
+
},
|
|
111
|
+
"js": {
|
|
112
|
+
"npm": "@aws-cdk/aws-lambda-python-alpha"
|
|
113
|
+
},
|
|
114
|
+
"python": {
|
|
115
|
+
"classifiers": [
|
|
116
|
+
"Framework :: AWS CDK",
|
|
117
|
+
"Framework :: AWS CDK :: 2"
|
|
118
|
+
],
|
|
119
|
+
"distName": "aws-cdk.aws-lambda-python-alpha",
|
|
120
|
+
"module": "aws_cdk.aws_lambda_python_alpha"
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
92
124
|
"aws-cdk-lib": {
|
|
93
125
|
"submodules": {
|
|
94
126
|
"aws-cdk-lib.alexa_ask": {
|
|
@@ -221,6 +253,8 @@
|
|
|
221
253
|
}
|
|
222
254
|
}
|
|
223
255
|
},
|
|
256
|
+
"aws-cdk-lib.aws_apigatewayv2_authorizers": {},
|
|
257
|
+
"aws-cdk-lib.aws_apigatewayv2_integrations": {},
|
|
224
258
|
"aws-cdk-lib.aws_appconfig": {
|
|
225
259
|
"targets": {
|
|
226
260
|
"dotnet": {
|
|
@@ -351,6 +385,19 @@
|
|
|
351
385
|
}
|
|
352
386
|
}
|
|
353
387
|
},
|
|
388
|
+
"aws-cdk-lib.aws_arczonalshift": {
|
|
389
|
+
"targets": {
|
|
390
|
+
"dotnet": {
|
|
391
|
+
"package": "Amazon.CDK.AWS.ARCZonalShift"
|
|
392
|
+
},
|
|
393
|
+
"java": {
|
|
394
|
+
"package": "software.amazon.awscdk.services.arczonalshift"
|
|
395
|
+
},
|
|
396
|
+
"python": {
|
|
397
|
+
"module": "aws_cdk.aws_arczonalshift"
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
},
|
|
354
401
|
"aws-cdk-lib.aws_athena": {
|
|
355
402
|
"targets": {
|
|
356
403
|
"dotnet": {
|
|
@@ -448,7 +495,7 @@
|
|
|
448
495
|
"package": "Amazon.CDK.AWS.BackupGateway"
|
|
449
496
|
},
|
|
450
497
|
"java": {
|
|
451
|
-
"package": "services.backupgateway"
|
|
498
|
+
"package": "software.amazon.awscdk.services.backupgateway"
|
|
452
499
|
},
|
|
453
500
|
"python": {
|
|
454
501
|
"module": "aws_cdk.aws_backupgateway"
|
|
@@ -468,6 +515,19 @@
|
|
|
468
515
|
}
|
|
469
516
|
}
|
|
470
517
|
},
|
|
518
|
+
"aws-cdk-lib.aws_bedrock": {
|
|
519
|
+
"targets": {
|
|
520
|
+
"dotnet": {
|
|
521
|
+
"namespace": "Amazon.CDK.AWS.Bedrock"
|
|
522
|
+
},
|
|
523
|
+
"java": {
|
|
524
|
+
"package": "software.amazon.awscdk.services.bedrock"
|
|
525
|
+
},
|
|
526
|
+
"python": {
|
|
527
|
+
"module": "aws_cdk.aws_bedrock"
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
},
|
|
471
531
|
"aws-cdk-lib.aws_billingconductor": {
|
|
472
532
|
"targets": {
|
|
473
533
|
"dotnet": {
|
|
@@ -552,7 +612,7 @@
|
|
|
552
612
|
"package": "Amazon.CDK.AWS.CleanRooms"
|
|
553
613
|
},
|
|
554
614
|
"java": {
|
|
555
|
-
"package": "services.cleanrooms"
|
|
615
|
+
"package": "software.amazon.awscdk.services.cleanrooms"
|
|
556
616
|
},
|
|
557
617
|
"python": {
|
|
558
618
|
"module": "aws_cdk.aws_cleanrooms"
|
|
@@ -1294,7 +1354,7 @@
|
|
|
1294
1354
|
"package": "Amazon.CDK.AWS.EntityResolution"
|
|
1295
1355
|
},
|
|
1296
1356
|
"java": {
|
|
1297
|
-
"package": "services.entityresolution"
|
|
1357
|
+
"package": "software.amazon.awscdk.services.entityresolution"
|
|
1298
1358
|
},
|
|
1299
1359
|
"python": {
|
|
1300
1360
|
"module": "aws_cdk.aws_entityresolution"
|
|
@@ -1554,7 +1614,7 @@
|
|
|
1554
1614
|
"package": "Amazon.CDK.AWS.HealthImaging"
|
|
1555
1615
|
},
|
|
1556
1616
|
"java": {
|
|
1557
|
-
"package": "services.healthimaging"
|
|
1617
|
+
"package": "software.amazon.awscdk.services.healthimaging"
|
|
1558
1618
|
},
|
|
1559
1619
|
"python": {
|
|
1560
1620
|
"module": "aws_cdk.aws_healthimaging"
|
|
@@ -2217,7 +2277,7 @@
|
|
|
2217
2277
|
"package": "Amazon.CDK.AWS.MediaPackageV2"
|
|
2218
2278
|
},
|
|
2219
2279
|
"java": {
|
|
2220
|
-
"package": "services.mediapackagev2"
|
|
2280
|
+
"package": "software.amazon.awscdk.services.mediapackagev2"
|
|
2221
2281
|
},
|
|
2222
2282
|
"python": {
|
|
2223
2283
|
"module": "aws_cdk.aws_mediapackagev2"
|
|
@@ -2438,7 +2498,7 @@
|
|
|
2438
2498
|
"package": "Amazon.CDK.AWS.OSIS"
|
|
2439
2499
|
},
|
|
2440
2500
|
"java": {
|
|
2441
|
-
"package": "services.osis"
|
|
2501
|
+
"package": "software.amazon.awscdk.services.osis"
|
|
2442
2502
|
},
|
|
2443
2503
|
"python": {
|
|
2444
2504
|
"module": "aws_cdk.aws_osis"
|
|
@@ -2464,7 +2524,7 @@
|
|
|
2464
2524
|
"package": "Amazon.CDK.AWS.PCAConnectorAD"
|
|
2465
2525
|
},
|
|
2466
2526
|
"java": {
|
|
2467
|
-
"package": "services.pcaconnectorad"
|
|
2527
|
+
"package": "software.amazon.awscdk.services.pcaconnectorad"
|
|
2468
2528
|
},
|
|
2469
2529
|
"python": {
|
|
2470
2530
|
"module": "aws_cdk.aws_pcaconnectorad"
|
|
@@ -2529,7 +2589,7 @@
|
|
|
2529
2589
|
"package": "Amazon.CDK.AWS.Proton"
|
|
2530
2590
|
},
|
|
2531
2591
|
"java": {
|
|
2532
|
-
"package": "services.proton"
|
|
2592
|
+
"package": "software.amazon.awscdk.services.proton"
|
|
2533
2593
|
},
|
|
2534
2594
|
"python": {
|
|
2535
2595
|
"module": "aws_cdk.aws_proton"
|
|
@@ -2848,6 +2908,19 @@
|
|
|
2848
2908
|
}
|
|
2849
2909
|
}
|
|
2850
2910
|
},
|
|
2911
|
+
"aws-cdk-lib.aws_s3express": {
|
|
2912
|
+
"targets": {
|
|
2913
|
+
"dotnet": {
|
|
2914
|
+
"package": "Amazon.CDK.AWS.S3Express"
|
|
2915
|
+
},
|
|
2916
|
+
"java": {
|
|
2917
|
+
"package": "software.amazon.awscdk.services.s3express"
|
|
2918
|
+
},
|
|
2919
|
+
"python": {
|
|
2920
|
+
"module": "aws_cdk.aws_s3express"
|
|
2921
|
+
}
|
|
2922
|
+
}
|
|
2923
|
+
},
|
|
2851
2924
|
"aws-cdk-lib.aws_s3objectlambda": {
|
|
2852
2925
|
"targets": {
|
|
2853
2926
|
"dotnet": {
|
|
@@ -3023,7 +3096,7 @@
|
|
|
3023
3096
|
"package": "Amazon.CDK.AWS.Shield"
|
|
3024
3097
|
},
|
|
3025
3098
|
"java": {
|
|
3026
|
-
"package": "services.shield"
|
|
3099
|
+
"package": "software.amazon.awscdk.services.shield"
|
|
3027
3100
|
},
|
|
3028
3101
|
"python": {
|
|
3029
3102
|
"module": "aws_cdk.aws_shield"
|
|
@@ -3244,7 +3317,7 @@
|
|
|
3244
3317
|
"package": "Amazon.CDK.AWS.VerifiedPermissions"
|
|
3245
3318
|
},
|
|
3246
3319
|
"java": {
|
|
3247
|
-
"package": "services.verifiedpermissions"
|
|
3320
|
+
"package": "software.amazon.awscdk.services.verifiedpermissions"
|
|
3248
3321
|
},
|
|
3249
3322
|
"python": {
|
|
3250
3323
|
"module": "aws_cdk.aws_verifiedpermissions"
|
|
@@ -3342,13 +3415,26 @@
|
|
|
3342
3415
|
}
|
|
3343
3416
|
}
|
|
3344
3417
|
},
|
|
3418
|
+
"aws-cdk-lib.aws_workspacesthinclient": {
|
|
3419
|
+
"targets": {
|
|
3420
|
+
"dotnet": {
|
|
3421
|
+
"package": "Amazon.CDK.AWS.WorkSpacesThinClient"
|
|
3422
|
+
},
|
|
3423
|
+
"java": {
|
|
3424
|
+
"package": "software.amazon.awscdk.services.workspacesthinclient"
|
|
3425
|
+
},
|
|
3426
|
+
"python": {
|
|
3427
|
+
"module": "aws_cdk.aws_workspacesthinclient"
|
|
3428
|
+
}
|
|
3429
|
+
}
|
|
3430
|
+
},
|
|
3345
3431
|
"aws-cdk-lib.aws_workspacesweb": {
|
|
3346
3432
|
"targets": {
|
|
3347
3433
|
"dotnet": {
|
|
3348
3434
|
"package": "Amazon.CDK.AWS.WorkSpacesWeb"
|
|
3349
3435
|
},
|
|
3350
3436
|
"java": {
|
|
3351
|
-
"package": "services.workspacesweb"
|
|
3437
|
+
"package": "software.amazon.awscdk.services.workspacesweb"
|
|
3352
3438
|
},
|
|
3353
3439
|
"python": {
|
|
3354
3440
|
"module": "aws_cdk.aws_workspacesweb"
|
|
@@ -3573,7 +3659,7 @@
|
|
|
3573
3659
|
},
|
|
3574
3660
|
"name": "cdk-certbot-dns-route53",
|
|
3575
3661
|
"readme": {
|
|
3576
|
-
"markdown": "[](https://badge.fury.io/js/cdk-certbot-dns-route53)\n[](https://badge.fury.io/py/cdk-certbot-dns-route53)\n[](https://github.com/neilkuan/cdk-certbot-dns-route53/actions/workflows/release.yml)\n\n\n\n\n\n# cdk-certbot-dns-route53\n**cdk-certbot-dns-route53** is a CDK construct library that allows you to create [Certbot](https://github.com/certbot/certbot) Lambda Function on AWS with CDK, and setting schedule cron job to renew certificate to store on S3 Bucket.\n\n## Install\n```bash\nUse the npm dist tag to opt in CDKv1 or CDKv2:\n\n// for CDKv2\nnpm install cdk-certbot-dns-route53\nor\nnpm install cdk-certbot-dns-route53@latest\n\n// for CDKv1\nnpm install cdk-certbot-dns-route53@cdkv1\n```\n\n💡💡💡 please click [here](https://github.com/neilkuan/cdk-certbot-dns-route53/tree/cdkv1#readme), if you are using aws-cdk v1.x.x version.💡💡💡\n\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';\n\nconst devEnv = {\n account: process.env.CDK_DEFAULT_ACCOUNT,\n region: process.env.CDK_DEFAULT_REGION,\n};\n\nconst app = new cdk.App();\n\nconst stack = new cdk.Stack(app, 'lambda-certbot-dev', { env: devEnv });\n\nnew CertbotDnsRoute53Job(stack, 'Demo', {\n certbotOptions: {\n domainName: '*.example.com',\n email: 'user@example.com',\n },\n zone: r53.HostedZone.fromHostedZoneAttributes(stack, 'myZone', {\n zoneName: 'example.com',\n hostedZoneId: 'mockId',\n }),\n destinationBucket: s3.Bucket.fromBucketName(stack, 'myBucket', 'mybucket'),\n});\n```\n\n\n### You can define Lambda Image Architecture now. 2022/04/19\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as lambda from 'aws-cdk-lib/aws-lambda';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';\n\nconst mockApp = new cdk.App();\nconst stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });\nconst bucket = new s3.Bucket(stack, 'testingBucket');\nconst zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {\n zoneName: mock.zoneName, hostedZoneId: mock.zoneId,\n});\nnew CertbotDnsRoute53Job(stack, 'Testtask', {\n certbotOptions: {\n domainName: 'example.com',\n email: 'user@example.com',\n customPrefixDirectory: '/',\n },\n zone,\n destinationBucket: bucket,\n schedule: events.Schedule.cron({ month: '2' }),\n architecture: lambda.Architecture.ARM_64, // <- like this way.\n});\n\n```\n\n### Example: Invoke Lambda Function log.\n\n\n### Example: Renew certificate to store on S3 Bucket\n\n"
|
|
3662
|
+
"markdown": "[](https://badge.fury.io/js/cdk-certbot-dns-route53)\n[](https://badge.fury.io/py/cdk-certbot-dns-route53)\n[](https://github.com/neilkuan/cdk-certbot-dns-route53/actions/workflows/release.yml)\n\n\n\n\n\n# cdk-certbot-dns-route53\n**cdk-certbot-dns-route53** is a CDK construct library that allows you to create [Certbot](https://github.com/certbot/certbot) Lambda Function on AWS with CDK, and setting schedule cron job to renew certificate to store on S3 Bucket.\n\n## Install\n```bash\nUse the npm dist tag to opt in CDKv1 or CDKv2:\n\n// for CDKv2\nnpm install cdk-certbot-dns-route53\nor\nnpm install cdk-certbot-dns-route53@latest\n\n// for CDKv1\nnpm install cdk-certbot-dns-route53@cdkv1\n```\n\n💡💡💡 please click [here](https://github.com/neilkuan/cdk-certbot-dns-route53/tree/cdkv1#readme), if you are using aws-cdk v1.x.x version.💡💡💡\n\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';\n\nconst devEnv = {\n account: process.env.CDK_DEFAULT_ACCOUNT,\n region: process.env.CDK_DEFAULT_REGION,\n};\n\nconst app = new cdk.App();\n\nconst stack = new cdk.Stack(app, 'lambda-certbot-dev', { env: devEnv });\n\nnew CertbotDnsRoute53Job(stack, 'Demo', {\n certbotOptions: {\n domainName: '*.example.com',\n email: 'user@example.com',\n },\n zone: r53.HostedZone.fromHostedZoneAttributes(stack, 'myZone', {\n zoneName: 'example.com',\n hostedZoneId: 'mockId',\n }),\n destinationBucket: s3.Bucket.fromBucketName(stack, 'myBucket', 'mybucket'),\n});\n```\n\n\n### You can define Lambda Image Architecture now. 2022/04/19\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as lambda from 'aws-cdk-lib/aws-lambda';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';\n\nconst mockApp = new cdk.App();\nconst stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });\nconst bucket = new s3.Bucket(stack, 'testingBucket');\nconst zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {\n zoneName: mock.zoneName, hostedZoneId: mock.zoneId,\n});\nnew CertbotDnsRoute53Job(stack, 'Testtask', {\n certbotOptions: {\n domainName: 'example.com',\n email: 'user@example.com',\n customPrefixDirectory: '/',\n },\n zone,\n destinationBucket: bucket,\n schedule: events.Schedule.cron({ month: '2' }),\n architecture: lambda.Architecture.ARM_64, // <- like this way.\n});\n\n```\n\n### Example: Invoke Lambda Function log.\n\n\n### Example: Renew certificate to store on S3 Bucket\n\n\n\n### Support Python Lambda Runtime. 2023/12/17\n> Support enabled Lambda Function Url.\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as lambda from 'aws-cdk-lib/aws-lambda';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53JobPython } from 'cdk-certbot-dns-route53';\n\nconst mockApp = new cdk.App();\nconst stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });\nconst bucket = new s3.Bucket(stack, 'testingBucket');\nconst zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {\n zoneName: mock.zoneName, hostedZoneId: mock.zoneId,\n});\nnew CertbotDnsRoute53JobPython(stack, 'Testtask', {\n certbotOptions: {\n domainName: 'example.com',\n email: 'user@example.com',\n customPrefixDirectory: '/',\n },\n zone,\n destinationBucket: bucket,\n schedule: events.Schedule.cron({ month: '2' }),\n enabledLambdaFunctionUrl: true,\n});\n\n```"
|
|
3577
3663
|
},
|
|
3578
3664
|
"repository": {
|
|
3579
3665
|
"type": "git",
|
|
@@ -3790,7 +3876,7 @@
|
|
|
3790
3876
|
},
|
|
3791
3877
|
"locationInModule": {
|
|
3792
3878
|
"filename": "src/main.ts",
|
|
3793
|
-
"line":
|
|
3879
|
+
"line": 80
|
|
3794
3880
|
},
|
|
3795
3881
|
"parameters": [
|
|
3796
3882
|
{
|
|
@@ -3816,7 +3902,7 @@
|
|
|
3816
3902
|
"kind": "class",
|
|
3817
3903
|
"locationInModule": {
|
|
3818
3904
|
"filename": "src/main.ts",
|
|
3819
|
-
"line":
|
|
3905
|
+
"line": 79
|
|
3820
3906
|
},
|
|
3821
3907
|
"name": "CertbotDnsRoute53Job",
|
|
3822
3908
|
"symbolId": "src/main:CertbotDnsRoute53Job"
|
|
@@ -3831,7 +3917,7 @@
|
|
|
3831
3917
|
"kind": "interface",
|
|
3832
3918
|
"locationInModule": {
|
|
3833
3919
|
"filename": "src/main.ts",
|
|
3834
|
-
"line":
|
|
3920
|
+
"line": 37
|
|
3835
3921
|
},
|
|
3836
3922
|
"name": "CertbotDnsRoute53JobProps",
|
|
3837
3923
|
"properties": [
|
|
@@ -3844,7 +3930,7 @@
|
|
|
3844
3930
|
"immutable": true,
|
|
3845
3931
|
"locationInModule": {
|
|
3846
3932
|
"filename": "src/main.ts",
|
|
3847
|
-
"line":
|
|
3933
|
+
"line": 57
|
|
3848
3934
|
},
|
|
3849
3935
|
"name": "certbotOptions",
|
|
3850
3936
|
"type": {
|
|
@@ -3860,7 +3946,7 @@
|
|
|
3860
3946
|
"immutable": true,
|
|
3861
3947
|
"locationInModule": {
|
|
3862
3948
|
"filename": "src/main.ts",
|
|
3863
|
-
"line":
|
|
3949
|
+
"line": 47
|
|
3864
3950
|
},
|
|
3865
3951
|
"name": "destinationBucket",
|
|
3866
3952
|
"type": {
|
|
@@ -3876,7 +3962,7 @@
|
|
|
3876
3962
|
"immutable": true,
|
|
3877
3963
|
"locationInModule": {
|
|
3878
3964
|
"filename": "src/main.ts",
|
|
3879
|
-
"line":
|
|
3965
|
+
"line": 52
|
|
3880
3966
|
},
|
|
3881
3967
|
"name": "zone",
|
|
3882
3968
|
"type": {
|
|
@@ -3893,7 +3979,7 @@
|
|
|
3893
3979
|
"immutable": true,
|
|
3894
3980
|
"locationInModule": {
|
|
3895
3981
|
"filename": "src/main.ts",
|
|
3896
|
-
"line":
|
|
3982
|
+
"line": 64
|
|
3897
3983
|
},
|
|
3898
3984
|
"name": "architecture",
|
|
3899
3985
|
"optional": true,
|
|
@@ -3911,7 +3997,7 @@
|
|
|
3911
3997
|
"immutable": true,
|
|
3912
3998
|
"locationInModule": {
|
|
3913
3999
|
"filename": "src/main.ts",
|
|
3914
|
-
"line":
|
|
4000
|
+
"line": 70
|
|
3915
4001
|
},
|
|
3916
4002
|
"name": "enabledLambdaFunctionUrl",
|
|
3917
4003
|
"optional": true,
|
|
@@ -3929,7 +4015,7 @@
|
|
|
3929
4015
|
"immutable": true,
|
|
3930
4016
|
"locationInModule": {
|
|
3931
4017
|
"filename": "src/main.ts",
|
|
3932
|
-
"line":
|
|
4018
|
+
"line": 76
|
|
3933
4019
|
},
|
|
3934
4020
|
"name": "functionUrlOptions",
|
|
3935
4021
|
"optional": true,
|
|
@@ -3947,7 +4033,7 @@
|
|
|
3947
4033
|
"immutable": true,
|
|
3948
4034
|
"locationInModule": {
|
|
3949
4035
|
"filename": "src/main.ts",
|
|
3950
|
-
"line":
|
|
4036
|
+
"line": 42
|
|
3951
4037
|
},
|
|
3952
4038
|
"name": "schedule",
|
|
3953
4039
|
"optional": true,
|
|
@@ -3958,6 +4044,50 @@
|
|
|
3958
4044
|
],
|
|
3959
4045
|
"symbolId": "src/main:CertbotDnsRoute53JobProps"
|
|
3960
4046
|
},
|
|
4047
|
+
"cdk-certbot-dns-route53.CertbotDnsRoute53JobPython": {
|
|
4048
|
+
"assembly": "cdk-certbot-dns-route53",
|
|
4049
|
+
"base": "constructs.Construct",
|
|
4050
|
+
"docs": {
|
|
4051
|
+
"stability": "stable"
|
|
4052
|
+
},
|
|
4053
|
+
"fqn": "cdk-certbot-dns-route53.CertbotDnsRoute53JobPython",
|
|
4054
|
+
"initializer": {
|
|
4055
|
+
"docs": {
|
|
4056
|
+
"stability": "stable"
|
|
4057
|
+
},
|
|
4058
|
+
"locationInModule": {
|
|
4059
|
+
"filename": "src/main.ts",
|
|
4060
|
+
"line": 174
|
|
4061
|
+
},
|
|
4062
|
+
"parameters": [
|
|
4063
|
+
{
|
|
4064
|
+
"name": "scope",
|
|
4065
|
+
"type": {
|
|
4066
|
+
"fqn": "constructs.Construct"
|
|
4067
|
+
}
|
|
4068
|
+
},
|
|
4069
|
+
{
|
|
4070
|
+
"name": "id",
|
|
4071
|
+
"type": {
|
|
4072
|
+
"primitive": "string"
|
|
4073
|
+
}
|
|
4074
|
+
},
|
|
4075
|
+
{
|
|
4076
|
+
"name": "props",
|
|
4077
|
+
"type": {
|
|
4078
|
+
"fqn": "cdk-certbot-dns-route53.CertbotDnsRoute53JobProps"
|
|
4079
|
+
}
|
|
4080
|
+
}
|
|
4081
|
+
]
|
|
4082
|
+
},
|
|
4083
|
+
"kind": "class",
|
|
4084
|
+
"locationInModule": {
|
|
4085
|
+
"filename": "src/main.ts",
|
|
4086
|
+
"line": 173
|
|
4087
|
+
},
|
|
4088
|
+
"name": "CertbotDnsRoute53JobPython",
|
|
4089
|
+
"symbolId": "src/main:CertbotDnsRoute53JobPython"
|
|
4090
|
+
},
|
|
3961
4091
|
"cdk-certbot-dns-route53.CertbotOptions": {
|
|
3962
4092
|
"assembly": "cdk-certbot-dns-route53",
|
|
3963
4093
|
"datatype": true,
|
|
@@ -3968,7 +4098,7 @@
|
|
|
3968
4098
|
"kind": "interface",
|
|
3969
4099
|
"locationInModule": {
|
|
3970
4100
|
"filename": "src/main.ts",
|
|
3971
|
-
"line":
|
|
4101
|
+
"line": 13
|
|
3972
4102
|
},
|
|
3973
4103
|
"name": "CertbotOptions",
|
|
3974
4104
|
"properties": [
|
|
@@ -3977,12 +4107,12 @@
|
|
|
3977
4107
|
"docs": {
|
|
3978
4108
|
"example": "- `*.example.com` or `a.example.com` .",
|
|
3979
4109
|
"stability": "stable",
|
|
3980
|
-
"summary": "the domain must host on route53 like example.com."
|
|
4110
|
+
"summary": "the domain must host on route53 like example.com. the domain must host on route53 like example.com."
|
|
3981
4111
|
},
|
|
3982
4112
|
"immutable": true,
|
|
3983
4113
|
"locationInModule": {
|
|
3984
4114
|
"filename": "src/main.ts",
|
|
3985
|
-
"line":
|
|
4115
|
+
"line": 19
|
|
3986
4116
|
},
|
|
3987
4117
|
"name": "domainName",
|
|
3988
4118
|
"type": {
|
|
@@ -3992,13 +4122,14 @@
|
|
|
3992
4122
|
{
|
|
3993
4123
|
"abstract": true,
|
|
3994
4124
|
"docs": {
|
|
4125
|
+
"remarks": "Email address for important account notifications.",
|
|
3995
4126
|
"stability": "stable",
|
|
3996
4127
|
"summary": "Email address for important account notifications."
|
|
3997
4128
|
},
|
|
3998
4129
|
"immutable": true,
|
|
3999
4130
|
"locationInModule": {
|
|
4000
4131
|
"filename": "src/main.ts",
|
|
4001
|
-
"line":
|
|
4132
|
+
"line": 24
|
|
4002
4133
|
},
|
|
4003
4134
|
"name": "email",
|
|
4004
4135
|
"type": {
|
|
@@ -4010,13 +4141,14 @@
|
|
|
4010
4141
|
"docs": {
|
|
4011
4142
|
"default": "- `s3://YOUR_BUCKET_NAME/2021-01-01/your.domain.name/`",
|
|
4012
4143
|
"example": "- customPrefixDirectory: 'abc' -> `s3://YOUR_BUCKET_NAME/abc/your.domain.name/`",
|
|
4144
|
+
"remarks": "Custom prefix directory on s3 bucket object path.",
|
|
4013
4145
|
"stability": "stable",
|
|
4014
4146
|
"summary": "Custom prefix directory on s3 bucket object path."
|
|
4015
4147
|
},
|
|
4016
4148
|
"immutable": true,
|
|
4017
4149
|
"locationInModule": {
|
|
4018
4150
|
"filename": "src/main.ts",
|
|
4019
|
-
"line":
|
|
4151
|
+
"line": 34
|
|
4020
4152
|
},
|
|
4021
4153
|
"name": "customPrefixDirectory",
|
|
4022
4154
|
"optional": true,
|
|
@@ -4026,8 +4158,152 @@
|
|
|
4026
4158
|
}
|
|
4027
4159
|
],
|
|
4028
4160
|
"symbolId": "src/main:CertbotOptions"
|
|
4161
|
+
},
|
|
4162
|
+
"cdk-certbot-dns-route53.LambdaFunctionProps": {
|
|
4163
|
+
"assembly": "cdk-certbot-dns-route53",
|
|
4164
|
+
"datatype": true,
|
|
4165
|
+
"docs": {
|
|
4166
|
+
"stability": "stable"
|
|
4167
|
+
},
|
|
4168
|
+
"fqn": "cdk-certbot-dns-route53.LambdaFunctionProps",
|
|
4169
|
+
"kind": "interface",
|
|
4170
|
+
"locationInModule": {
|
|
4171
|
+
"filename": "src/lambda-python.ts",
|
|
4172
|
+
"line": 9
|
|
4173
|
+
},
|
|
4174
|
+
"name": "LambdaFunctionProps",
|
|
4175
|
+
"properties": [
|
|
4176
|
+
{
|
|
4177
|
+
"abstract": true,
|
|
4178
|
+
"docs": {
|
|
4179
|
+
"stability": "stable"
|
|
4180
|
+
},
|
|
4181
|
+
"immutable": true,
|
|
4182
|
+
"locationInModule": {
|
|
4183
|
+
"filename": "src/lambda-python.ts",
|
|
4184
|
+
"line": 13
|
|
4185
|
+
},
|
|
4186
|
+
"name": "architecture",
|
|
4187
|
+
"type": {
|
|
4188
|
+
"fqn": "aws-cdk-lib.aws_lambda.Architecture"
|
|
4189
|
+
}
|
|
4190
|
+
},
|
|
4191
|
+
{
|
|
4192
|
+
"abstract": true,
|
|
4193
|
+
"docs": {
|
|
4194
|
+
"stability": "stable"
|
|
4195
|
+
},
|
|
4196
|
+
"immutable": true,
|
|
4197
|
+
"locationInModule": {
|
|
4198
|
+
"filename": "src/lambda-python.ts",
|
|
4199
|
+
"line": 10
|
|
4200
|
+
},
|
|
4201
|
+
"name": "timeout",
|
|
4202
|
+
"type": {
|
|
4203
|
+
"fqn": "aws-cdk-lib.Duration"
|
|
4204
|
+
}
|
|
4205
|
+
},
|
|
4206
|
+
{
|
|
4207
|
+
"abstract": true,
|
|
4208
|
+
"docs": {
|
|
4209
|
+
"stability": "stable"
|
|
4210
|
+
},
|
|
4211
|
+
"immutable": true,
|
|
4212
|
+
"locationInModule": {
|
|
4213
|
+
"filename": "src/lambda-python.ts",
|
|
4214
|
+
"line": 11
|
|
4215
|
+
},
|
|
4216
|
+
"name": "environment",
|
|
4217
|
+
"optional": true,
|
|
4218
|
+
"type": {
|
|
4219
|
+
"collection": {
|
|
4220
|
+
"elementtype": {
|
|
4221
|
+
"primitive": "string"
|
|
4222
|
+
},
|
|
4223
|
+
"kind": "map"
|
|
4224
|
+
}
|
|
4225
|
+
}
|
|
4226
|
+
},
|
|
4227
|
+
{
|
|
4228
|
+
"abstract": true,
|
|
4229
|
+
"docs": {
|
|
4230
|
+
"stability": "stable"
|
|
4231
|
+
},
|
|
4232
|
+
"immutable": true,
|
|
4233
|
+
"locationInModule": {
|
|
4234
|
+
"filename": "src/lambda-python.ts",
|
|
4235
|
+
"line": 12
|
|
4236
|
+
},
|
|
4237
|
+
"name": "role",
|
|
4238
|
+
"optional": true,
|
|
4239
|
+
"type": {
|
|
4240
|
+
"fqn": "aws-cdk-lib.aws_iam.IRole"
|
|
4241
|
+
}
|
|
4242
|
+
}
|
|
4243
|
+
],
|
|
4244
|
+
"symbolId": "src/lambda-python:LambdaFunctionProps"
|
|
4245
|
+
},
|
|
4246
|
+
"cdk-certbot-dns-route53.LambdaPythonFunction": {
|
|
4247
|
+
"assembly": "cdk-certbot-dns-route53",
|
|
4248
|
+
"base": "constructs.Construct",
|
|
4249
|
+
"docs": {
|
|
4250
|
+
"stability": "stable"
|
|
4251
|
+
},
|
|
4252
|
+
"fqn": "cdk-certbot-dns-route53.LambdaPythonFunction",
|
|
4253
|
+
"initializer": {
|
|
4254
|
+
"docs": {
|
|
4255
|
+
"stability": "stable"
|
|
4256
|
+
},
|
|
4257
|
+
"locationInModule": {
|
|
4258
|
+
"filename": "src/lambda-python.ts",
|
|
4259
|
+
"line": 19
|
|
4260
|
+
},
|
|
4261
|
+
"parameters": [
|
|
4262
|
+
{
|
|
4263
|
+
"name": "scope",
|
|
4264
|
+
"type": {
|
|
4265
|
+
"fqn": "constructs.Construct"
|
|
4266
|
+
}
|
|
4267
|
+
},
|
|
4268
|
+
{
|
|
4269
|
+
"name": "id",
|
|
4270
|
+
"type": {
|
|
4271
|
+
"primitive": "string"
|
|
4272
|
+
}
|
|
4273
|
+
},
|
|
4274
|
+
{
|
|
4275
|
+
"name": "props",
|
|
4276
|
+
"type": {
|
|
4277
|
+
"fqn": "cdk-certbot-dns-route53.LambdaFunctionProps"
|
|
4278
|
+
}
|
|
4279
|
+
}
|
|
4280
|
+
]
|
|
4281
|
+
},
|
|
4282
|
+
"kind": "class",
|
|
4283
|
+
"locationInModule": {
|
|
4284
|
+
"filename": "src/lambda-python.ts",
|
|
4285
|
+
"line": 17
|
|
4286
|
+
},
|
|
4287
|
+
"name": "LambdaPythonFunction",
|
|
4288
|
+
"properties": [
|
|
4289
|
+
{
|
|
4290
|
+
"docs": {
|
|
4291
|
+
"stability": "stable"
|
|
4292
|
+
},
|
|
4293
|
+
"immutable": true,
|
|
4294
|
+
"locationInModule": {
|
|
4295
|
+
"filename": "src/lambda-python.ts",
|
|
4296
|
+
"line": 18
|
|
4297
|
+
},
|
|
4298
|
+
"name": "handler",
|
|
4299
|
+
"type": {
|
|
4300
|
+
"fqn": "@aws-cdk/aws-lambda-python-alpha.PythonFunction"
|
|
4301
|
+
}
|
|
4302
|
+
}
|
|
4303
|
+
],
|
|
4304
|
+
"symbolId": "src/lambda-python:LambdaPythonFunction"
|
|
4029
4305
|
}
|
|
4030
4306
|
},
|
|
4031
|
-
"version": "2.
|
|
4032
|
-
"fingerprint": "
|
|
4307
|
+
"version": "2.4.1",
|
|
4308
|
+
"fingerprint": "5QhCplFLrtln39/BDt7mmCKfuy7hTdQYEaODOtiPxKQ="
|
|
4033
4309
|
}
|
package/API.md
CHANGED
|
@@ -77,6 +77,81 @@ new CertbotDnsRoute53Job(scope: Construct, id: string, props: CertbotDnsRoute53J
|
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
|
|
80
|
+
### CertbotDnsRoute53JobPython <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython"></a>
|
|
81
|
+
|
|
82
|
+
#### Initializers <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython.Initializer"></a>
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
import { CertbotDnsRoute53JobPython } from 'cdk-certbot-dns-route53'
|
|
86
|
+
|
|
87
|
+
new CertbotDnsRoute53JobPython(scope: Construct, id: string, props: CertbotDnsRoute53JobProps)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
##### `scope`<sup>Required</sup> <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython.parameter.scope"></a>
|
|
91
|
+
|
|
92
|
+
- *Type:* [`constructs.Construct`](#constructs.Construct)
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
##### `id`<sup>Required</sup> <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython.parameter.id"></a>
|
|
97
|
+
|
|
98
|
+
- *Type:* `string`
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
##### `props`<sup>Required</sup> <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython.parameter.props"></a>
|
|
103
|
+
|
|
104
|
+
- *Type:* [`cdk-certbot-dns-route53.CertbotDnsRoute53JobProps`](#cdk-certbot-dns-route53.CertbotDnsRoute53JobProps)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
### LambdaPythonFunction <a name="cdk-certbot-dns-route53.LambdaPythonFunction"></a>
|
|
113
|
+
|
|
114
|
+
#### Initializers <a name="cdk-certbot-dns-route53.LambdaPythonFunction.Initializer"></a>
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
import { LambdaPythonFunction } from 'cdk-certbot-dns-route53'
|
|
118
|
+
|
|
119
|
+
new LambdaPythonFunction(scope: Construct, id: string, props: LambdaFunctionProps)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
##### `scope`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaPythonFunction.parameter.scope"></a>
|
|
123
|
+
|
|
124
|
+
- *Type:* [`constructs.Construct`](#constructs.Construct)
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
##### `id`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaPythonFunction.parameter.id"></a>
|
|
129
|
+
|
|
130
|
+
- *Type:* `string`
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
##### `props`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaPythonFunction.parameter.props"></a>
|
|
135
|
+
|
|
136
|
+
- *Type:* [`cdk-certbot-dns-route53.LambdaFunctionProps`](#cdk-certbot-dns-route53.LambdaFunctionProps)
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
#### Properties <a name="Properties"></a>
|
|
143
|
+
|
|
144
|
+
##### `handler`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaPythonFunction.property.handler"></a>
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
public readonly handler: PythonFunction;
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
- *Type:* [`@aws-cdk/aws-lambda-python-alpha.PythonFunction`](#@aws-cdk/aws-lambda-python-alpha.PythonFunction)
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
|
|
80
155
|
## Structs <a name="Structs"></a>
|
|
81
156
|
|
|
82
157
|
### BashExecFunctionProps <a name="cdk-certbot-dns-route53.BashExecFunctionProps"></a>
|
|
@@ -282,7 +357,7 @@ public readonly domainName: string;
|
|
|
282
357
|
|
|
283
358
|
- *Type:* `string`
|
|
284
359
|
|
|
285
|
-
the domain must host on route53 like example.com.
|
|
360
|
+
the domain must host on route53 like example.com. the domain must host on route53 like example.com.
|
|
286
361
|
|
|
287
362
|
---
|
|
288
363
|
|
|
@@ -296,6 +371,8 @@ public readonly email: string;
|
|
|
296
371
|
|
|
297
372
|
Email address for important account notifications.
|
|
298
373
|
|
|
374
|
+
Email address for important account notifications.
|
|
375
|
+
|
|
299
376
|
---
|
|
300
377
|
|
|
301
378
|
##### `customPrefixDirectory`<sup>Optional</sup> <a name="cdk-certbot-dns-route53.CertbotOptions.property.customPrefixDirectory"></a>
|
|
@@ -309,6 +386,58 @@ public readonly customPrefixDirectory: string;
|
|
|
309
386
|
|
|
310
387
|
Custom prefix directory on s3 bucket object path.
|
|
311
388
|
|
|
389
|
+
Custom prefix directory on s3 bucket object path.
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
### LambdaFunctionProps <a name="cdk-certbot-dns-route53.LambdaFunctionProps"></a>
|
|
394
|
+
|
|
395
|
+
#### Initializer <a name="[object Object].Initializer"></a>
|
|
396
|
+
|
|
397
|
+
```typescript
|
|
398
|
+
import { LambdaFunctionProps } from 'cdk-certbot-dns-route53'
|
|
399
|
+
|
|
400
|
+
const lambdaFunctionProps: LambdaFunctionProps = { ... }
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
##### `architecture`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaFunctionProps.property.architecture"></a>
|
|
404
|
+
|
|
405
|
+
```typescript
|
|
406
|
+
public readonly architecture: Architecture;
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
- *Type:* [`aws-cdk-lib.aws_lambda.Architecture`](#aws-cdk-lib.aws_lambda.Architecture)
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
##### `timeout`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaFunctionProps.property.timeout"></a>
|
|
414
|
+
|
|
415
|
+
```typescript
|
|
416
|
+
public readonly timeout: Duration;
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
- *Type:* [`aws-cdk-lib.Duration`](#aws-cdk-lib.Duration)
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
##### `environment`<sup>Optional</sup> <a name="cdk-certbot-dns-route53.LambdaFunctionProps.property.environment"></a>
|
|
424
|
+
|
|
425
|
+
```typescript
|
|
426
|
+
public readonly environment: {[ key: string ]: string};
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
- *Type:* {[ key: string ]: `string`}
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
##### `role`<sup>Optional</sup> <a name="cdk-certbot-dns-route53.LambdaFunctionProps.property.role"></a>
|
|
434
|
+
|
|
435
|
+
```typescript
|
|
436
|
+
public readonly role: IRole;
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
- *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
|
|
440
|
+
|
|
312
441
|
---
|
|
313
442
|
|
|
314
443
|
|
package/README.md
CHANGED
|
@@ -86,3 +86,33 @@ new CertbotDnsRoute53Job(stack, 'Testtask', {
|
|
|
86
86
|
|
|
87
87
|
### Example: Renew certificate to store on S3 Bucket
|
|
88
88
|

|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### Support Python Lambda Runtime. 2023/12/17
|
|
92
|
+
> Support enabled Lambda Function Url.
|
|
93
|
+
```ts
|
|
94
|
+
import * as r53 from 'aws-cdk-lib/aws-route53';
|
|
95
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
96
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
97
|
+
import * as cdk from 'aws-cdk-lib';
|
|
98
|
+
import { CertbotDnsRoute53JobPython } from 'cdk-certbot-dns-route53';
|
|
99
|
+
|
|
100
|
+
const mockApp = new cdk.App();
|
|
101
|
+
const stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });
|
|
102
|
+
const bucket = new s3.Bucket(stack, 'testingBucket');
|
|
103
|
+
const zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {
|
|
104
|
+
zoneName: mock.zoneName, hostedZoneId: mock.zoneId,
|
|
105
|
+
});
|
|
106
|
+
new CertbotDnsRoute53JobPython(stack, 'Testtask', {
|
|
107
|
+
certbotOptions: {
|
|
108
|
+
domainName: 'example.com',
|
|
109
|
+
email: 'user@example.com',
|
|
110
|
+
customPrefixDirectory: '/',
|
|
111
|
+
},
|
|
112
|
+
zone,
|
|
113
|
+
destinationBucket: bucket,
|
|
114
|
+
schedule: events.Schedule.cron({ month: '2' }),
|
|
115
|
+
enabledLambdaFunctionUrl: true,
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
```
|
package/assets/main.py
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import datetime
|
|
3
|
+
import boto3
|
|
4
|
+
import sys
|
|
5
|
+
from certbot.main import main
|
|
6
|
+
import json
|
|
7
|
+
sys.path.append('/var/task')
|
|
8
|
+
def handler(events, contexts):
|
|
9
|
+
events = events
|
|
10
|
+
contexts = contexts
|
|
11
|
+
DOMAIN_NAME=os.getenv('DOMAIN_NAME')
|
|
12
|
+
MAIL=os.getenv('EMAIL')
|
|
13
|
+
BUCKET_NAME = os.getenv('BUCKET_NAME')
|
|
14
|
+
|
|
15
|
+
print('start to renew cert from route53...')
|
|
16
|
+
try:
|
|
17
|
+
main(['certonly', '--agree-tos',
|
|
18
|
+
'--dns-route53',
|
|
19
|
+
'-d', DOMAIN_NAME,
|
|
20
|
+
'-m', MAIL,
|
|
21
|
+
'--no-eff-email',
|
|
22
|
+
'--config-dir', '/tmp',
|
|
23
|
+
'--work-dir', '/tmp',
|
|
24
|
+
'--logs-dir', '/tmp',
|
|
25
|
+
])
|
|
26
|
+
except Exception as e:
|
|
27
|
+
print(e)
|
|
28
|
+
return json.dumps({
|
|
29
|
+
"message": f'Execute certbot command fail {e}'
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
today = datetime.date.today()
|
|
33
|
+
CUSTOM_PREFIX_DIRECTORY= os.getenv('CUSTOM_PREFIX_DIRECTORY')
|
|
34
|
+
s3_path = ''
|
|
35
|
+
if CUSTOM_PREFIX_DIRECTORY == None:
|
|
36
|
+
print('CUSTOM_PREFIX_DIRECTORY is not set')
|
|
37
|
+
print(f'S3_PATH is set to {today}')
|
|
38
|
+
s3_path = f'{today}/'
|
|
39
|
+
elif CUSTOM_PREFIX_DIRECTORY == '/':
|
|
40
|
+
print('S3_PATH is set to /')
|
|
41
|
+
s3_path = ''
|
|
42
|
+
else:
|
|
43
|
+
print('S3_PATH CUSTOM_PREFIX_DIRECTORY is set')
|
|
44
|
+
s3_path = f'{CUSTOM_PREFIX_DIRECTORY}/'
|
|
45
|
+
print('sync file to S3 bucket s3://{BUCKET_NAME}/{S3_PATH}')
|
|
46
|
+
|
|
47
|
+
client = boto3.client('s3')
|
|
48
|
+
domain_path = domain_path_helper(DOMAIN_NAME)
|
|
49
|
+
dirs = os.listdir(f'/tmp/live/{domain_path}')
|
|
50
|
+
for file_name in dirs:
|
|
51
|
+
try:
|
|
52
|
+
client.upload_file('/tmp/live/' + domain_path + '/' + file_name, BUCKET_NAME, s3_path + domain_path + '/' + file_name)
|
|
53
|
+
except Exception as e:
|
|
54
|
+
print(e)
|
|
55
|
+
|
|
56
|
+
return json.dumps({
|
|
57
|
+
"message": f'{e}'
|
|
58
|
+
})
|
|
59
|
+
if s3_path == '':
|
|
60
|
+
print(f'find your certificates in your bucket s3://{BUCKET_NAME}/{domain_path}')
|
|
61
|
+
return json.dumps({
|
|
62
|
+
"message": f'find your certificates in your bucket s3://{BUCKET_NAME}/{domain_path}'
|
|
63
|
+
})
|
|
64
|
+
else:
|
|
65
|
+
print(f'find your certificates in your bucket s3://{BUCKET_NAME}/{s3_path}/{domain_path}')
|
|
66
|
+
return json.dumps({
|
|
67
|
+
"message": f'find your certificates in your bucket s3://{BUCKET_NAME}/{s3_path}/{domain_path}'
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def domain_path_helper(domain: str):
|
|
73
|
+
d = domain.split('.')
|
|
74
|
+
try:
|
|
75
|
+
d.remove('*')
|
|
76
|
+
except:
|
|
77
|
+
pass
|
|
78
|
+
r = '.'.join(d)
|
|
79
|
+
return r
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
acme==2.8.0
|
|
2
|
+
boto3==1.34.2
|
|
3
|
+
botocore==1.34.2
|
|
4
|
+
certbot==2.8.0
|
|
5
|
+
certbot-dns-route53==2.8.0
|
|
6
|
+
certifi==2023.11.17
|
|
7
|
+
cffi==1.16.0
|
|
8
|
+
charset-normalizer==3.3.2
|
|
9
|
+
ConfigArgParse==1.7
|
|
10
|
+
configobj==5.0.8
|
|
11
|
+
cryptography==41.0.7
|
|
12
|
+
distro==1.8.0
|
|
13
|
+
idna==3.6
|
|
14
|
+
jmespath==1.0.1
|
|
15
|
+
josepy==1.14.0
|
|
16
|
+
parsedatetime==2.6
|
|
17
|
+
pycparser==2.21
|
|
18
|
+
pyOpenSSL==23.3.0
|
|
19
|
+
pyRFC3339==1.1
|
|
20
|
+
python-dateutil==2.8.2
|
|
21
|
+
pytz==2023.3.post1
|
|
22
|
+
requests==2.31.0
|
|
23
|
+
s3transfer==0.9.0
|
|
24
|
+
six==1.16.0
|
|
25
|
+
urllib3==2.0.7
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -12,4 +12,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./main"), exports);
|
|
14
14
|
__exportStar(require("./lambda-bash"), exports);
|
|
15
|
-
|
|
15
|
+
__exportStar(require("./lambda-python"), exports);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLGdEQUE4QjtBQUM5QixrREFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21haW4nO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGEtYmFzaCc7XG5leHBvcnQgKiBmcm9tICcuL2xhbWJkYS1weXRob24nOyJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const cdk = require("aws-cdk-lib");
|
|
4
|
+
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
5
|
+
const r53 = require("aws-cdk-lib/aws-route53");
|
|
6
|
+
const s3 = require("aws-cdk-lib/aws-s3");
|
|
7
|
+
const _1 = require(".");
|
|
8
|
+
const devEnv = {
|
|
9
|
+
account: process.env.CDK_DEFAULT_ACCOUNT,
|
|
10
|
+
region: process.env.CDK_DEFAULT_REGION,
|
|
11
|
+
};
|
|
12
|
+
const app = new cdk.App();
|
|
13
|
+
const stack = new cdk.Stack(app, 'lambda-certbot-dev-python', { env: devEnv });
|
|
14
|
+
new _1.CertbotDnsRoute53JobPython(stack, 'Demo', {
|
|
15
|
+
certbotOptions: {
|
|
16
|
+
domainName: stack.node.tryGetContext('DOMAIN'),
|
|
17
|
+
email: stack.node.tryGetContext('EMAIL'),
|
|
18
|
+
customPrefixDirectory: '/',
|
|
19
|
+
},
|
|
20
|
+
zone: r53.HostedZone.fromHostedZoneAttributes(stack, 'myZone', {
|
|
21
|
+
zoneName: stack.node.tryGetContext('ZONENAME'),
|
|
22
|
+
hostedZoneId: stack.node.tryGetContext('HOSTZONEID'),
|
|
23
|
+
}),
|
|
24
|
+
destinationBucket: s3.Bucket.fromBucketName(stack, 'myBucket', stack.node.tryGetContext('BUCKETNAME')),
|
|
25
|
+
architecture: lambda.Architecture.X86_64,
|
|
26
|
+
enabledLambdaFunctionUrl: true,
|
|
27
|
+
});
|
|
28
|
+
app.synth();
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcucHl0aG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ludGVnLnB5dGhvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFtQztBQUNuQyxpREFBaUQ7QUFDakQsK0NBQStDO0FBQy9DLHlDQUF5QztBQUN6Qyx3QkFBK0M7QUFFL0MsTUFBTSxNQUFNLEdBQUc7SUFDYixPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUI7SUFDeEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCO0NBQ3ZDLENBQUM7QUFFRixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUUxQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFL0UsSUFBSSw2QkFBMEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQzVDLGNBQWMsRUFBRTtRQUNkLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFDOUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxxQkFBcUIsRUFBRSxHQUFHO0tBQzNCO0lBQ0QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUM3RCxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQzlDLFlBQVksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7S0FDckQsQ0FBQztJQUNGLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEcsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTTtJQUN4Qyx3QkFBd0IsRUFBRSxJQUFJO0NBRS9CLENBQUMsQ0FBQztBQUVILEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyByNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENlcnRib3REbnNSb3V0ZTUzSm9iUHl0aG9uIH0gZnJvbSAnLic7XG5cbmNvbnN0IGRldkVudiA9IHtcbiAgYWNjb3VudDogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCxcbiAgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG59O1xuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuXG5jb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soYXBwLCAnbGFtYmRhLWNlcnRib3QtZGV2LXB5dGhvbicsIHsgZW52OiBkZXZFbnYgfSk7XG5cbm5ldyBDZXJ0Ym90RG5zUm91dGU1M0pvYlB5dGhvbihzdGFjaywgJ0RlbW8nLCB7XG4gIGNlcnRib3RPcHRpb25zOiB7XG4gICAgZG9tYWluTmFtZTogc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCdET01BSU4nKSxcbiAgICBlbWFpbDogc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCdFTUFJTCcpLFxuICAgIGN1c3RvbVByZWZpeERpcmVjdG9yeTogJy8nLFxuICB9LFxuICB6b25lOiByNTMuSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoc3RhY2ssICdteVpvbmUnLCB7XG4gICAgem9uZU5hbWU6IHN0YWNrLm5vZGUudHJ5R2V0Q29udGV4dCgnWk9ORU5BTUUnKSxcbiAgICBob3N0ZWRab25lSWQ6IHN0YWNrLm5vZGUudHJ5R2V0Q29udGV4dCgnSE9TVFpPTkVJRCcpLFxuICB9KSxcbiAgZGVzdGluYXRpb25CdWNrZXQ6IHMzLkJ1Y2tldC5mcm9tQnVja2V0TmFtZShzdGFjaywgJ215QnVja2V0Jywgc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCdCVUNLRVROQU1FJykpLFxuICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuWDg2XzY0LFxuICBlbmFibGVkTGFtYmRhRnVuY3Rpb25Vcmw6IHRydWUsXG4gIC8vIGVuYWJsZWRMYW1iZGFGdW5jdGlvblVybDogZmFsc2UsXG59KTtcblxuYXBwLnN5bnRoKCk7Il19
|
package/lib/lambda-bash.js
CHANGED
|
@@ -23,7 +23,7 @@ class BashExecFunction extends constructs_1.Construct {
|
|
|
23
23
|
logRetention: logs.RetentionDays.ONE_DAY,
|
|
24
24
|
environment: props.environment,
|
|
25
25
|
role: props.role,
|
|
26
|
-
architecture: props.architecture
|
|
26
|
+
architecture: props.architecture,
|
|
27
27
|
memorySize: 1024,
|
|
28
28
|
});
|
|
29
29
|
new aws_cdk_lib_1.CfnOutput(this, 'LogGroup', { value: this.handler.logGroup.logGroupName });
|
|
@@ -31,5 +31,5 @@ class BashExecFunction extends constructs_1.Construct {
|
|
|
31
31
|
}
|
|
32
32
|
exports.BashExecFunction = BashExecFunction;
|
|
33
33
|
_a = JSII_RTTI_SYMBOL_1;
|
|
34
|
-
BashExecFunction[_a] = { fqn: "cdk-certbot-dns-route53.BashExecFunction", version: "2.
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
BashExecFunction[_a] = { fqn: "cdk-certbot-dns-route53.BashExecFunction", version: "2.4.1" };
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWJhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGFtYmRhLWJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQUFrRDtBQUVsRCxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLDJDQUF1QztBQXdDdkMsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQUU3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUVoQywyR0FBMkc7UUFDM0csTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxFQUMxRCxDQUFDO1lBQ0YsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU87WUFDeEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOztBQXZCSCw0Q0F3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaEV4ZWNGdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBzaGVsbCBzY3JpcHQgdG8gYmUgZXhlY3V0ZWQuXG4gICAqL1xuICByZWFkb25seSBzY3JpcHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgeW91ciBjdXN0b20gZG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlcmZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhbWJkYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiBleGVjdXRpb24gdGltZSAoaW4gc2Vjb25kcykgYWZ0ZXIgd2hpY2ggTGFtYmRhIHRlcm1pbmF0ZXMgdGhlIGZ1bmN0aW9uLlxuICAgKiBCZWNhdXNlIHRoZSBleGVjdXRpb24gdGltZSBhZmZlY3RzIGNvc3QsIHNldCB0aGlzIHZhbHVlIGJhc2VkIG9uIHRoZSBmdW5jdGlvbidzIGV4cGVjdGVkIGV4ZWN1dGlvbiB0aW1lLlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLnNlY29uZHMoNjApXG4gICAqICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQ3VzdG9tIGxhbWJkYSBleGVjdXRpb24gcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvIGdlbmVyYXRlZCByb2xlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogQ3VzdG9tIGxhbWJkYSBJbWFnZSBBcmNoaXRlY3R1cmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjRcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZT86IGxhbWJkYS5BcmNoaXRlY3R1cmU7XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNoRXhlY0Z1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhLkRvY2tlckltYWdlRnVuY3Rpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCYXNoRXhlY0Z1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZG9ja2VyRGlyUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9kb2NrZXIuZCcpO1xuICAgIGNvbnN0IHNjcmlwdFBhdGggPSBwcm9wcy5zY3JpcHQ7XG5cbiAgICAvLyBjb3B5IHRoZSB1c2VyIHNjcmlwdCB0byB0aGUgZG9ja2VyLmQgZGlyZWN0b3J5IGFzIG1haW4uc2ggc28gd2UgY2FuIGJ1bmRsZSBpdCB1cCBpbnRvIGEgbmV3IGRvY2tlciBpbWFnZVxuICAgIGNvbnN0IG1haW5GaWxlID0gcGF0aC5qb2luKGRvY2tlckRpclBhdGgsICcvbWFpbi5zaCcpO1xuICAgIGZzLmNvcHlGaWxlU3luYyhzY3JpcHRQYXRoLCBtYWluRmlsZSk7XG5cbiAgICB0aGlzLmhhbmRsZXIgPSBuZXcgbGFtYmRhLkRvY2tlckltYWdlRnVuY3Rpb24odGhpcywgJ0Jhc2hFeGVjRnVuY3Rpb24nLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuRG9ja2VySW1hZ2VDb2RlLmZyb21JbWFnZUFzc2V0KGRvY2tlckRpclBhdGgsIHtcbiAgICAgIH0pLFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCA/PyBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICBlbnZpcm9ubWVudDogcHJvcHMuZW52aXJvbm1lbnQsXG4gICAgICByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBwcm9wcy5hcmNoaXRlY3R1cmUsXG4gICAgICBtZW1vcnlTaXplOiAxMDI0LFxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ0xvZ0dyb3VwJywgeyB2YWx1ZTogdGhpcy5oYW5kbGVyLmxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSB9KTtcbiAgfVxufSJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as lambdaPython from '@aws-cdk/aws-lambda-python-alpha';
|
|
2
|
+
import { Duration } from 'aws-cdk-lib';
|
|
3
|
+
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
4
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
5
|
+
import { Construct } from 'constructs';
|
|
6
|
+
export interface LambdaFunctionProps {
|
|
7
|
+
readonly timeout: Duration;
|
|
8
|
+
readonly environment?: {
|
|
9
|
+
[key: string]: string;
|
|
10
|
+
};
|
|
11
|
+
readonly role?: iam.IRole;
|
|
12
|
+
readonly architecture: lambda.Architecture;
|
|
13
|
+
}
|
|
14
|
+
export declare class LambdaPythonFunction extends Construct {
|
|
15
|
+
readonly handler: lambdaPython.PythonFunction;
|
|
16
|
+
constructor(scope: Construct, id: string, props: LambdaFunctionProps);
|
|
17
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LambdaPythonFunction = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const lambdaPython = require("@aws-cdk/aws-lambda-python-alpha");
|
|
8
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
9
|
+
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
10
|
+
const logs = require("aws-cdk-lib/aws-logs");
|
|
11
|
+
const constructs_1 = require("constructs");
|
|
12
|
+
class LambdaPythonFunction extends constructs_1.Construct {
|
|
13
|
+
constructor(scope, id, props) {
|
|
14
|
+
super(scope, id);
|
|
15
|
+
this.handler = new lambdaPython.PythonFunction(this, 'PythonFunction', {
|
|
16
|
+
entry: path.join(__dirname, '../assets/'),
|
|
17
|
+
handler: 'handler',
|
|
18
|
+
index: 'main.py',
|
|
19
|
+
runtime: lambda.Runtime.PYTHON_3_12,
|
|
20
|
+
timeout: props.timeout ?? aws_cdk_lib_1.Duration.seconds(60),
|
|
21
|
+
logRetention: logs.RetentionDays.ONE_DAY,
|
|
22
|
+
environment: props.environment,
|
|
23
|
+
role: props.role,
|
|
24
|
+
memorySize: 1024,
|
|
25
|
+
bundling: {
|
|
26
|
+
platform: props.architecture.dockerPlatform,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
new aws_cdk_lib_1.CfnOutput(this, 'LogGroup', { value: this.handler.logGroup.logGroupName });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.LambdaPythonFunction = LambdaPythonFunction;
|
|
33
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
34
|
+
LambdaPythonFunction[_a] = { fqn: "cdk-certbot-dns-route53.LambdaPythonFunction", version: "2.4.1" };
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLXB5dGhvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9sYW1iZGEtcHl0aG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLGlFQUFpRTtBQUNqRSw2Q0FBa0Q7QUFFbEQsaURBQWlEO0FBQ2pELDZDQUE2QztBQUM3QywyQ0FBdUM7QUFVdkMsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUVqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3JFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7WUFDekMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN4QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFFBQVEsRUFBRTtnQkFDUixRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjO2FBQzVDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOztBQW5CSCxvREFvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhUHl0aG9uIGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtcHl0aG9uLWFscGhhJztcbmltcG9ydCB7IENmbk91dHB1dCwgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uUHJvcHMge1xuICByZWFkb25seSB0aW1lb3V0OiBEdXJhdGlvbjtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuICByZWFkb25seSBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmU7XG59XG5cblxuZXhwb3J0IGNsYXNzIExhbWJkYVB5dGhvbkZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhUHl0aG9uLlB5dGhvbkZ1bmN0aW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGFtYmRhRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5oYW5kbGVyID0gbmV3IGxhbWJkYVB5dGhvbi5QeXRob25GdW5jdGlvbih0aGlzLCAnUHl0aG9uRnVuY3Rpb24nLCB7XG4gICAgICBlbnRyeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2Fzc2V0cy8nKSxcbiAgICAgIGhhbmRsZXI6ICdoYW5kbGVyJyxcbiAgICAgIGluZGV4OiAnbWFpbi5weScsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMixcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXQgPz8gRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBsb2dSZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfREFZLFxuICAgICAgZW52aXJvbm1lbnQ6IHByb3BzLmVudmlyb25tZW50LFxuICAgICAgcm9sZTogcHJvcHMucm9sZSxcbiAgICAgIG1lbW9yeVNpemU6IDEwMjQsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBwbGF0Zm9ybTogcHJvcHMuYXJjaGl0ZWN0dXJlLmRvY2tlclBsYXRmb3JtLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsICdMb2dHcm91cCcsIHsgdmFsdWU6IHRoaXMuaGFuZGxlci5sb2dHcm91cC5sb2dHcm91cE5hbWUgfSk7XG4gIH1cbn0iXX0=
|
package/lib/main.d.ts
CHANGED
|
@@ -62,3 +62,27 @@ export interface CertbotDnsRoute53JobProps {
|
|
|
62
62
|
export declare class CertbotDnsRoute53Job extends Construct {
|
|
63
63
|
constructor(scope: Construct, id: string, props: CertbotDnsRoute53JobProps);
|
|
64
64
|
}
|
|
65
|
+
export interface CertbotOptions {
|
|
66
|
+
/**
|
|
67
|
+
* the domain must host on route53 like example.com.
|
|
68
|
+
*
|
|
69
|
+
* @example - `*.example.com` or `a.example.com` .
|
|
70
|
+
*/
|
|
71
|
+
readonly domainName: string;
|
|
72
|
+
/**
|
|
73
|
+
* Email address for important account notifications.
|
|
74
|
+
*/
|
|
75
|
+
readonly email: string;
|
|
76
|
+
/**
|
|
77
|
+
* Custom prefix directory on s3 bucket object path.
|
|
78
|
+
* @default - `s3://YOUR_BUCKET_NAME/2021-01-01/your.domain.name/`
|
|
79
|
+
*
|
|
80
|
+
* @example - customPrefixDirectory: '/' -> `s3://YOUR_BUCKET_NAME/your.domain.name/`
|
|
81
|
+
*
|
|
82
|
+
* @example - customPrefixDirectory: 'abc' -> `s3://YOUR_BUCKET_NAME/abc/your.domain.name/`
|
|
83
|
+
*/
|
|
84
|
+
readonly customPrefixDirectory?: string;
|
|
85
|
+
}
|
|
86
|
+
export declare class CertbotDnsRoute53JobPython extends Construct {
|
|
87
|
+
constructor(scope: Construct, id: string, props: CertbotDnsRoute53JobProps);
|
|
88
|
+
}
|
package/lib/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
2
|
+
var _a, _b;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.CertbotDnsRoute53Job = void 0;
|
|
4
|
+
exports.CertbotDnsRoute53JobPython = exports.CertbotDnsRoute53Job = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const path = require("path");
|
|
7
7
|
const cdk = require("aws-cdk-lib");
|
|
@@ -11,6 +11,7 @@ const iam = require("aws-cdk-lib/aws-iam");
|
|
|
11
11
|
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
12
12
|
const constructs_1 = require("constructs");
|
|
13
13
|
const lambda_bash_1 = require("./lambda-bash");
|
|
14
|
+
const lambda_python_1 = require("./lambda-python");
|
|
14
15
|
class CertbotDnsRoute53Job extends constructs_1.Construct {
|
|
15
16
|
constructor(scope, id, props) {
|
|
16
17
|
super(scope, id);
|
|
@@ -75,5 +76,69 @@ class CertbotDnsRoute53Job extends constructs_1.Construct {
|
|
|
75
76
|
}
|
|
76
77
|
exports.CertbotDnsRoute53Job = CertbotDnsRoute53Job;
|
|
77
78
|
_a = JSII_RTTI_SYMBOL_1;
|
|
78
|
-
CertbotDnsRoute53Job[_a] = { fqn: "cdk-certbot-dns-route53.CertbotDnsRoute53Job", version: "2.
|
|
79
|
-
|
|
79
|
+
CertbotDnsRoute53Job[_a] = { fqn: "cdk-certbot-dns-route53.CertbotDnsRoute53Job", version: "2.4.1" };
|
|
80
|
+
class CertbotDnsRoute53JobPython extends constructs_1.Construct {
|
|
81
|
+
constructor(scope, id, props) {
|
|
82
|
+
super(scope, id);
|
|
83
|
+
const certOptions = {
|
|
84
|
+
BUCKET_NAME: props.destinationBucket.bucketName,
|
|
85
|
+
EMAIL: props.certbotOptions.email,
|
|
86
|
+
DOMAIN_NAME: props.certbotOptions.domainName,
|
|
87
|
+
CUSTOM_PREFIX_DIRECTORY: props.certbotOptions.customPrefixDirectory,
|
|
88
|
+
};
|
|
89
|
+
const lambdaFun = new lambda_python_1.LambdaPythonFunction(this, 'certbotDnsRoute53JobPythonLambda', {
|
|
90
|
+
timeout: cdk.Duration.minutes(5),
|
|
91
|
+
architecture: lambda.Architecture.X86_64,
|
|
92
|
+
environment: {
|
|
93
|
+
...certOptions,
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
props.destinationBucket.grantReadWrite(lambdaFun.handler.role);
|
|
97
|
+
const route53PolicyJsonList = [{
|
|
98
|
+
Effect: 'Allow',
|
|
99
|
+
Action: [
|
|
100
|
+
'route53:ListHostedZones',
|
|
101
|
+
'route53:GetChange',
|
|
102
|
+
],
|
|
103
|
+
Resource: [
|
|
104
|
+
'*',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
Effect: 'Allow',
|
|
109
|
+
Action: [
|
|
110
|
+
'route53:ChangeResourceRecordSets',
|
|
111
|
+
],
|
|
112
|
+
Resource: [
|
|
113
|
+
`arn:${new cdk.ScopedAws(this).partition}:route53:::hostedzone/${props.zone.hostedZoneId}`,
|
|
114
|
+
],
|
|
115
|
+
}];
|
|
116
|
+
route53PolicyJsonList.forEach(e => {
|
|
117
|
+
lambdaFun.handler.role.addToPrincipalPolicy(iam.PolicyStatement.fromJson(e));
|
|
118
|
+
});
|
|
119
|
+
if (props.schedule) {
|
|
120
|
+
new events.Rule(this, 'ScheduleRule', {
|
|
121
|
+
schedule: props.schedule,
|
|
122
|
+
targets: [
|
|
123
|
+
new target.LambdaFunction(lambdaFun.handler),
|
|
124
|
+
],
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
;
|
|
128
|
+
if (props.enabledLambdaFunctionUrl) {
|
|
129
|
+
const url = new lambda.FunctionUrl(this, 'LambdaFunctionUrl', {
|
|
130
|
+
function: lambdaFun.handler,
|
|
131
|
+
authType: lambda.FunctionUrlAuthType.NONE,
|
|
132
|
+
...props.functionUrlOptions,
|
|
133
|
+
});
|
|
134
|
+
new cdk.CfnOutput(this, 'lambdaFunctionUrl', {
|
|
135
|
+
value: url.url,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
exports.CertbotDnsRoute53JobPython = CertbotDnsRoute53JobPython;
|
|
142
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
143
|
+
CertbotDnsRoute53JobPython[_b] = { fqn: "cdk-certbot-dns-route53.CertbotDnsRoute53JobPython", version: "2.4.1" };
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyxpREFBaUQ7QUFDakQseURBQXlEO0FBQ3pELDJDQUEyQztBQUMzQyxpREFBaUQ7QUFHakQsMkNBQXVDO0FBQ3ZDLCtDQUFpRDtBQUNqRCxtREFBdUQ7QUFvRXZELE1BQWEsb0JBQXFCLFNBQVEsc0JBQVM7SUFDakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQztRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFdBQVcsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBVTtZQUMvQyxLQUFLLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLO1lBQ2pDLFdBQVcsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVU7WUFDNUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxxQkFBc0I7U0FDckUsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLElBQUksOEJBQWdCLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQ3pFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztZQUN6RCxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUM5RCxXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxXQUFXO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSyxDQUFDLENBQUM7UUFDaEUsTUFBTSxx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QUFDOztBQWpFSCxnRUFrRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgcjUzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2hFeGVjRnVuY3Rpb24gfSBmcm9tICcuL2xhbWJkYS1iYXNoJztcbmltcG9ydCB7IExhbWJkYVB5dGhvbkZ1bmN0aW9uIH0gZnJvbSAnLi9sYW1iZGEtcHl0aG9uJztcblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0Ym90T3B0aW9ucyB7XG4gIC8qKlxuICAgKiB0aGUgZG9tYWluIG11c3QgaG9zdCBvbiByb3V0ZTUzIGxpa2UgZXhhbXBsZS5jb20uXG4gICAqXG4gICAqIEBleGFtcGxlIC0gYCouZXhhbXBsZS5jb21gIG9yIGBhLmV4YW1wbGUuY29tYCAuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVtYWlsIGFkZHJlc3MgZm9yIGltcG9ydGFudCBhY2NvdW50IG5vdGlmaWNhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBlbWFpbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gcHJlZml4IGRpcmVjdG9yeSBvbiBzMyBidWNrZXQgb2JqZWN0IHBhdGguXG4gICAqIEBkZWZhdWx0IC0gYHMzOi8vWU9VUl9CVUNLRVRfTkFNRS8yMDIxLTAxLTAxL3lvdXIuZG9tYWluLm5hbWUvYFxuICAgKlxuICAgKiBAZXhhbXBsZSAtIGN1c3RvbVByZWZpeERpcmVjdG9yeTogJy8nIC0+IGBzMzovL1lPVVJfQlVDS0VUX05BTUUveW91ci5kb21haW4ubmFtZS9gXG4gICAqXG4gICAqIEBleGFtcGxlIC0gY3VzdG9tUHJlZml4RGlyZWN0b3J5OiAnYWJjJyAtPiBgczM6Ly9ZT1VSX0JVQ0tFVF9OQU1FL2FiYy95b3VyLmRvbWFpbi5uYW1lL2BcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVByZWZpeERpcmVjdG9yeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0Ym90RG5zUm91dGU1M0pvYlByb3BzIHtcbiAgLyoqXG4gICAqIHJ1biB0aGUgSm9iIHdpdGggZGVmaW5lZCBzY2hlZHVsZVxuICAgKiBAZGVmYXVsdCAtIG5vIHNjaGVkdWxlXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IGV2ZW50cy5TY2hlZHVsZTtcblxuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB0byBzdG9yZSBjZXJ0aWZpY2F0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uQnVja2V0OiBzMy5JQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgSG9zdFpvbmUgb24gcm91dGU1MyB0byBkbnMtMDEgY2hhbGxlbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgem9uZTogcjUzLklIb3N0ZWRab25lO1xuXG4gIC8qKlxuICAgKiBjZXJ0Ym90IGNtZCBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGJvdE9wdGlvbnM6IENlcnRib3RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gbGFtYmRhIEltYWdlIEFyY2hpdGVjdHVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlPzogbGFtYmRhLkFyY2hpdGVjdHVyZTtcblxuICAvKipcbiAgICogRW5hYmxlZCBMYW1iZGEgRnVuY3Rpb24gVVJMXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWRMYW1iZGFGdW5jdGlvblVybD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gYWRkIGEgdXJsIHRvIGEgTGFtYmRhIGZ1bmN0aW9uXG4gICAqIEBkZWZhdWx0IC0gYXV0aFR5cGU6IGxhbWJkYS5GdW5jdGlvblVybEF1dGhUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uVXJsT3B0aW9ucz86IGxhbWJkYS5GdW5jdGlvblVybE9wdGlvbnM7XG59XG5cbmV4cG9ydCBjbGFzcyBDZXJ0Ym90RG5zUm91dGU1M0pvYiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZXJ0Ym90RG5zUm91dGU1M0pvYlByb3BzICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgY2VydE9wdGlvbnMgPSB7XG4gICAgICBCVUNLRVRfTkFNRTogcHJvcHMuZGVzdGluYXRpb25CdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIEVNQUlMOiBwcm9wcy5jZXJ0Ym90T3B0aW9ucy5lbWFpbCxcbiAgICAgIERPTUFJTl9OQU1FOiBwcm9wcy5jZXJ0Ym90T3B0aW9ucy5kb21haW5OYW1lLFxuICAgICAgQ1VTVE9NX1BSRUZJWF9ESVJFQ1RPUlk6IHByb3BzLmNlcnRib3RPcHRpb25zLmN1c3RvbVByZWZpeERpcmVjdG9yeSEsXG4gICAgfTtcblxuICAgIGNvbnN0IGxhbWJkYUZ1biA9IG5ldyBCYXNoRXhlY0Z1bmN0aW9uKHRoaXMsICdjZXJ0Ym90RG5zUm91dGU1M0pvYkxhbWJkYScsIHtcbiAgICAgIHNjcmlwdDogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2RvY2tlci5kL2VudHJ5cG9pbnQuc2gnKSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBwcm9wcy5hcmNoaXRlY3R1cmUgPz8gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAuLi5jZXJ0T3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBwcm9wcy5kZXN0aW5hdGlvbkJ1Y2tldC5ncmFudFJlYWRXcml0ZShsYW1iZGFGdW4uaGFuZGxlci5yb2xlISk7XG4gICAgY29uc3Qgcm91dGU1M1BvbGljeUpzb25MaXN0ID0gW3tcbiAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgIEFjdGlvbjogW1xuICAgICAgICAncm91dGU1MzpMaXN0SG9zdGVkWm9uZXMnLFxuICAgICAgICAncm91dGU1MzpHZXRDaGFuZ2UnLFxuICAgICAgXSxcbiAgICAgIFJlc291cmNlOiBbXG4gICAgICAgICcqJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICBBY3Rpb246IFtcbiAgICAgICAgJ3JvdXRlNTM6Q2hhbmdlUmVzb3VyY2VSZWNvcmRTZXRzJyxcbiAgICAgIF0sXG4gICAgICBSZXNvdXJjZTogW1xuICAgICAgICBgYXJuOiR7bmV3IGNkay5TY29wZWRBd3ModGhpcykucGFydGl0aW9ufTpyb3V0ZTUzOjo6aG9zdGVkem9uZS8ke3Byb3BzLnpvbmUuaG9zdGVkWm9uZUlkfWAsXG4gICAgICBdLFxuICAgIH1dO1xuICAgIHJvdXRlNTNQb2xpY3lKc29uTGlzdC5mb3JFYWNoKFxuICAgICAgZSA9PiB7XG4gICAgICAgIGxhbWJkYUZ1bi5oYW5kbGVyLnJvbGUhLmFkZFRvUHJpbmNpcGFsUG9saWN5KGlhbS5Qb2xpY3lTdGF0ZW1lbnQuZnJvbUpzb24oZSkpO1xuICAgICAgfSxcbiAgICApO1xuXG5cbiAgICBpZiAocHJvcHMuc2NoZWR1bGUpIHtcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnU2NoZWR1bGVSdWxlJywge1xuICAgICAgICBzY2hlZHVsZTogcHJvcHMuc2NoZWR1bGUsXG4gICAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgICBuZXcgdGFyZ2V0LkxhbWJkYUZ1bmN0aW9uKGxhbWJkYUZ1bi5oYW5kbGVyKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBpZiAocHJvcHMuZW5hYmxlZExhbWJkYUZ1bmN0aW9uVXJsKSB7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uVXJsKHRoaXMsICdMYW1iZGFGdW5jdGlvblVybCcsIHtcbiAgICAgICAgZnVuY3Rpb246IGxhbWJkYUZ1bi5oYW5kbGVyLFxuICAgICAgICBhdXRoVHlwZTogbGFtYmRhLkZ1bmN0aW9uVXJsQXV0aFR5cGUuTk9ORSxcbiAgICAgICAgLi4ucHJvcHMuZnVuY3Rpb25VcmxPcHRpb25zLFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdsYW1iZGFGdW5jdGlvblVybCcsIHtcbiAgICAgICAgdmFsdWU6IHVybC51cmwsXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VydGJvdE9wdGlvbnMge1xuICAvKipcbiAgICogdGhlIGRvbWFpbiBtdXN0IGhvc3Qgb24gcm91dGU1MyBsaWtlIGV4YW1wbGUuY29tLlxuICAgKlxuICAgKiBAZXhhbXBsZSAtIGAqLmV4YW1wbGUuY29tYCBvciBgYS5leGFtcGxlLmNvbWAgLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWFpbCBhZGRyZXNzIGZvciBpbXBvcnRhbnQgYWNjb3VudCBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgZW1haWw6IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIHByZWZpeCBkaXJlY3Rvcnkgb24gczMgYnVja2V0IG9iamVjdCBwYXRoLlxuICAgKiBAZGVmYXVsdCAtIGBzMzovL1lPVVJfQlVDS0VUX05BTUUvMjAyMS0wMS0wMS95b3VyLmRvbWFpbi5uYW1lL2BcbiAgICpcbiAgICogQGV4YW1wbGUgLSBjdXN0b21QcmVmaXhEaXJlY3Rvcnk6ICcvJyAtPiBgczM6Ly9ZT1VSX0JVQ0tFVF9OQU1FL3lvdXIuZG9tYWluLm5hbWUvYFxuICAgKlxuICAgKiBAZXhhbXBsZSAtIGN1c3RvbVByZWZpeERpcmVjdG9yeTogJ2FiYycgLT4gYHMzOi8vWU9VUl9CVUNLRVRfTkFNRS9hYmMveW91ci5kb21haW4ubmFtZS9gXG4gICAqL1xuICByZWFkb25seSBjdXN0b21QcmVmaXhEaXJlY3Rvcnk/OiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGNsYXNzIENlcnRib3REbnNSb3V0ZTUzSm9iUHl0aG9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENlcnRib3REbnNSb3V0ZTUzSm9iUHJvcHMgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBjZXJ0T3B0aW9ucyA9IHtcbiAgICAgIEJVQ0tFVF9OQU1FOiBwcm9wcy5kZXN0aW5hdGlvbkJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgRU1BSUw6IHByb3BzLmNlcnRib3RPcHRpb25zLmVtYWlsLFxuICAgICAgRE9NQUlOX05BTUU6IHByb3BzLmNlcnRib3RPcHRpb25zLmRvbWFpbk5hbWUsXG4gICAgICBDVVNUT01fUFJFRklYX0RJUkVDVE9SWTogcHJvcHMuY2VydGJvdE9wdGlvbnMuY3VzdG9tUHJlZml4RGlyZWN0b3J5ISxcbiAgICB9O1xuXG4gICAgY29uc3QgbGFtYmRhRnVuID0gbmV3IExhbWJkYVB5dGhvbkZ1bmN0aW9uKHRoaXMsICdjZXJ0Ym90RG5zUm91dGU1M0pvYlB5dGhvbkxhbWJkYScsIHtcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIC4uLmNlcnRPcHRpb25zLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHByb3BzLmRlc3RpbmF0aW9uQnVja2V0LmdyYW50UmVhZFdyaXRlKGxhbWJkYUZ1bi5oYW5kbGVyLnJvbGUhKTtcbiAgICBjb25zdCByb3V0ZTUzUG9saWN5SnNvbkxpc3QgPSBbe1xuICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgQWN0aW9uOiBbXG4gICAgICAgICdyb3V0ZTUzOkxpc3RIb3N0ZWRab25lcycsXG4gICAgICAgICdyb3V0ZTUzOkdldENoYW5nZScsXG4gICAgICBdLFxuICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgJyonLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgIEFjdGlvbjogW1xuICAgICAgICAncm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHMnLFxuICAgICAgXSxcbiAgICAgIFJlc291cmNlOiBbXG4gICAgICAgIGBhcm46JHtuZXcgY2RrLlNjb3BlZEF3cyh0aGlzKS5wYXJ0aXRpb259OnJvdXRlNTM6Ojpob3N0ZWR6b25lLyR7cHJvcHMuem9uZS5ob3N0ZWRab25lSWR9YCxcbiAgICAgIF0sXG4gICAgfV07XG4gICAgcm91dGU1M1BvbGljeUpzb25MaXN0LmZvckVhY2goXG4gICAgICBlID0+IHtcbiAgICAgICAgbGFtYmRhRnVuLmhhbmRsZXIucm9sZSEuYWRkVG9QcmluY2lwYWxQb2xpY3koaWFtLlBvbGljeVN0YXRlbWVudC5mcm9tSnNvbihlKSk7XG4gICAgICB9LFxuICAgICk7XG5cblxuICAgIGlmIChwcm9wcy5zY2hlZHVsZSkge1xuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdTY2hlZHVsZVJ1bGUnLCB7XG4gICAgICAgIHNjaGVkdWxlOiBwcm9wcy5zY2hlZHVsZSxcbiAgICAgICAgdGFyZ2V0czogW1xuICAgICAgICAgIG5ldyB0YXJnZXQuTGFtYmRhRnVuY3Rpb24obGFtYmRhRnVuLmhhbmRsZXIpLFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5lbmFibGVkTGFtYmRhRnVuY3Rpb25VcmwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBsYW1iZGEuRnVuY3Rpb25VcmwodGhpcywgJ0xhbWJkYUZ1bmN0aW9uVXJsJywge1xuICAgICAgICBmdW5jdGlvbjogbGFtYmRhRnVuLmhhbmRsZXIsXG4gICAgICAgIGF1dGhUeXBlOiBsYW1iZGEuRnVuY3Rpb25VcmxBdXRoVHlwZS5OT05FLFxuICAgICAgICAuLi5wcm9wcy5mdW5jdGlvblVybE9wdGlvbnMsXG4gICAgICB9KTtcblxuICAgICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ2xhbWJkYUZ1bmN0aW9uVXJsJywge1xuICAgICAgICB2YWx1ZTogdXJsLnVybCxcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cbn0iXX0=
|
package/package.json
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/node": "^16",
|
|
42
42
|
"@typescript-eslint/eslint-plugin": "^6",
|
|
43
43
|
"@typescript-eslint/parser": "^6",
|
|
44
|
-
"aws-cdk-lib": "2.
|
|
44
|
+
"aws-cdk-lib": "2.115.0",
|
|
45
45
|
"constructs": "10.0.5",
|
|
46
46
|
"eslint": "^8",
|
|
47
47
|
"eslint-import-resolver-typescript": "^2.7.1",
|
|
@@ -59,9 +59,12 @@
|
|
|
59
59
|
"typescript": "^4.9"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"aws-cdk-lib": "^2.
|
|
62
|
+
"aws-cdk-lib": "^2.115.0",
|
|
63
63
|
"constructs": "^10.0.5"
|
|
64
64
|
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@aws-cdk/aws-lambda-python-alpha": "2.115.0-alpha.0"
|
|
67
|
+
},
|
|
65
68
|
"resolutions": {
|
|
66
69
|
"@types/babel__traverse": "7.18.2",
|
|
67
70
|
"@types/prettier": "2.6.0"
|
|
@@ -73,7 +76,7 @@
|
|
|
73
76
|
],
|
|
74
77
|
"main": "lib/index.js",
|
|
75
78
|
"license": "Apache-2.0",
|
|
76
|
-
"version": "2.
|
|
79
|
+
"version": "2.4.1",
|
|
77
80
|
"jest": {
|
|
78
81
|
"testMatch": [
|
|
79
82
|
"<rootDir>/src/**/__tests__/**/*.ts?(x)",
|