Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neilkuan/cdk-certbot-dns-route53
cdk-certbot-dns-route53 is a CDK construct library that allows you to create Certbot Lambda Function on AWS with CDK, and setting schedule cron job to renew certificate to store on S3 Bucket.
https://github.com/neilkuan/cdk-certbot-dns-route53
Last synced: 9 days ago
JSON representation
cdk-certbot-dns-route53 is a CDK construct library that allows you to create Certbot Lambda Function on AWS with CDK, and setting schedule cron job to renew certificate to store on S3 Bucket.
- Host: GitHub
- URL: https://github.com/neilkuan/cdk-certbot-dns-route53
- Owner: neilkuan
- License: apache-2.0
- Created: 2021-06-29T16:03:20.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-14T00:30:08.000Z (7 months ago)
- Last Synced: 2024-04-14T10:45:50.416Z (7 months ago)
- Language: TypeScript
- Size: 7.36 MB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[![NPM version](https://badge.fury.io/js/cdk-certbot-dns-route53.svg)](https://badge.fury.io/js/cdk-certbot-dns-route53)
[![PyPI version](https://badge.fury.io/py/cdk-certbot-dns-route53.svg)](https://badge.fury.io/py/cdk-certbot-dns-route53)
[![Release](https://github.com/neilkuan/cdk-certbot-dns-route53/actions/workflows/release.yml/badge.svg?branch=main)](https://github.com/neilkuan/cdk-certbot-dns-route53/actions/workflows/release.yml)![Downloads](https://img.shields.io/badge/-DOWNLOADS:-brightgreen?color=gray)
![npm](https://img.shields.io/npm/dt/cdk-certbot-dns-route53?label=npm&color=orange)
![PyPI](https://img.shields.io/pypi/dm/cdk-certbot-dns-route53?label=pypi&color=blue)# cdk-certbot-dns-route53
**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.## Install
```bash
Use the npm dist tag to opt in CDKv1 or CDKv2:// for CDKv2
npm install cdk-certbot-dns-route53
or
npm install cdk-certbot-dns-route53@latest// for CDKv1
npm install cdk-certbot-dns-route53@cdkv1
```💡💡💡 please click [here](https://github.com/neilkuan/cdk-certbot-dns-route53/tree/cdkv1#readme), if you are using aws-cdk v1.x.x version.💡💡💡
```ts
import * as r53 from 'aws-cdk-lib/aws-route53';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as cdk from 'aws-cdk-lib';
import { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';const devEnv = {
account: process.env.CDK_DEFAULT_ACCOUNT,
region: process.env.CDK_DEFAULT_REGION,
};const app = new cdk.App();
const stack = new cdk.Stack(app, 'lambda-certbot-dev', { env: devEnv });
new CertbotDnsRoute53Job(stack, 'Demo', {
certbotOptions: {
domainName: '*.example.com',
email: '[email protected]',
},
zone: r53.HostedZone.fromHostedZoneAttributes(stack, 'myZone', {
zoneName: 'example.com',
hostedZoneId: 'mockId',
}),
destinationBucket: s3.Bucket.fromBucketName(stack, 'myBucket', 'mybucket'),
});
```### You can define Lambda Image Architecture now. 2022/04/19
```ts
import * as r53 from 'aws-cdk-lib/aws-route53';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as cdk from 'aws-cdk-lib';
import { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';const mockApp = new cdk.App();
const stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });
const bucket = new s3.Bucket(stack, 'testingBucket');
const zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {
zoneName: mock.zoneName, hostedZoneId: mock.zoneId,
});
new CertbotDnsRoute53Job(stack, 'Testtask', {
certbotOptions: {
domainName: 'example.com',
email: '[email protected]',
customPrefixDirectory: '/',
},
zone,
destinationBucket: bucket,
schedule: events.Schedule.cron({ month: '2' }),
architecture: lambda.Architecture.ARM_64, // <- like this way.
});```
### Example: Invoke Lambda Function log.
![](./images/lambda-logs.png)### Example: Renew certificate to store on S3 Bucket
![](./images/s3-bucket.png)### Support Python Lambda Runtime. 2023/12/17
> Support enabled Lambda Function Url.
```ts
import * as r53 from 'aws-cdk-lib/aws-route53';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as cdk from 'aws-cdk-lib';
import { CertbotDnsRoute53JobPython } from 'cdk-certbot-dns-route53';const mockApp = new cdk.App();
const stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });
const bucket = new s3.Bucket(stack, 'testingBucket');
const zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {
zoneName: mock.zoneName, hostedZoneId: mock.zoneId,
});
new CertbotDnsRoute53JobPython(stack, 'Testtask', {
certbotOptions: {
domainName: 'example.com',
email: '[email protected]',
customPrefixDirectory: '/',
},
zone,
destinationBucket: bucket,
schedule: events.Schedule.cron({ month: '2' }),
enabledLambdaFunctionUrl: true,
});```