Skip to content

Commit 130ec30

Browse files
committed
add sample code, update README
1 parent 6680411 commit 130ec30

File tree

4 files changed

+158
-46
lines changed

4 files changed

+158
-46
lines changed

README.md

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -15,62 +15,67 @@ goacm is a simple package for using AWS Certificate Manager from applications im
1515

1616
# Example
1717

18-
```go
19-
package main
18+
## Create goacm client
2019

21-
import (
22-
"fmt"
20+
```go
21+
g, err := goacm.NewGoACM("ap-northeast-1")
22+
if err != nil {
23+
fmt.Println(err.Error())
24+
return
25+
}
26+
```
2327

24-
"github.com/michimani/goacm"
25-
)
28+
## List Certificats
2629

27-
func main() {
28-
gacm, err := goacm.NewGoACM("ap-northeast-1")
29-
if err != nil {
30-
fmt.Println(err.Error())
31-
return
30+
```go
31+
if certificates, err := goacm.ListCertificates(g.ACMClient); err != nil {
32+
fmt.Println(err.Error())
33+
} else {
34+
fmt.Println("DomainName\tStatus\tARN")
35+
for _, c := range certificates {
36+
fmt.Printf("%s\t%s\t%s\n", c.DomainName, c.Status, c.Arn)
3237
}
38+
}
39+
```
3340

34-
// List certificates and print each ARN.
35-
fmt.Println("List certificates and print each ARN.")
36-
listCertificate(gacm)
41+
## Get a Certificate
3742

38-
// Issue an SSL certificate.
39-
fmt.Println("Issue an SSL certificate.")
40-
issueCertificate(gacm)
43+
```go
44+
arn := "arn:aws:acm:ap-northeast-1:000000000000:certificate/xxxxxxxx-1111-1111-1111-11111111xxxx"
45+
c, err := goacm.GetCertificate(g.ACMClient, arn)
46+
if err != nil {
47+
fmt.Println(err.Error())
48+
return
4149
}
4250

43-
func listCertificate(g *goacm.GoACM) {
44-
if certificates, err := goacm.ListCertificates(g.ACMClient); err != nil {
45-
fmt.Println(err.Error())
46-
} else {
47-
for _, c := range certificates {
48-
fmt.Println(c.Arn)
49-
}
50-
}
51-
}
51+
fmt.Println("DomainName\tStatus\tARN")
52+
fmt.Printf("%s\t%s\t%s\n", c.DomainName, c.Status, c.Arn)
53+
```
5254

53-
func issueCertificate(g *goacm.GoACM) {
54-
targetDomain := "goacm.example.com"
55-
hostedDomain := "example.com"
56-
var validationMethod goacm.ValidationMethod = "DNS"
57-
if res, err := goacm.IssueCertificate(g.ACMClient, g.Route53Client, validationMethod, targetDomain, hostedDomain); err != nil {
58-
fmt.Println(err.Error())
59-
} else {
60-
fmt.Printf("%v", res)
61-
}
55+
## Issue a SSL Certificate
56+
57+
Request an ACM Certificate and create a RecordSet in Route 53 to validate the domain.
58+
59+
```go
60+
method := "DNS"
61+
targetDomain := "sample.exapmle.com"
62+
hostedDomain := "example.com"
63+
res, err := goacm.IssueCertificate(g.ACMClient, g.Route53Client, method, targetDomain, hostedDomain)
64+
if err != nil {
65+
fmt.Println(err.Error())
66+
return
6267
}
68+
69+
fmt.Printf("ARN: %v", res.CertificateArn)
6370
```
6471

65-
```bash
66-
$ go run main.go
67-
68-
List certificates and print each ARN.
69-
arn:aws:acm:ap-northeast-1:000000000000:certificate/00000000-xxxx-xxxx-0000-xxxxxxxxxxxx
70-
arn:aws:acm:ap-northeast-1:000000000000:certificate/00000001-xxxx-xxxx-0000-xxxxxxxxxxxx
71-
arn:aws:acm:ap-northeast-1:000000000000:certificate/00000002-xxxx-xxxx-0000-xxxxxxxxxxxx
72-
arn:aws:acm:ap-northeast-1:000000000000:certificate/00000003-xxxx-xxxx-0000-xxxxxxxxxxxx
73-
arn:aws:acm:ap-northeast-1:000000000000:certificate/00000004-xxxx-xxxx-0000-xxxxxxxxxxxx
74-
Issue an SSL certificate.
75-
{arn:aws:acm:ap-northeast-1:000000000000:certificate/00000005-xxxx-xxxx-0000-xxxxxxxxxxxx goacm.example.com example.com /hostedzone/Z3XXXXXXXXXXXX DNS _32xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.goacm.example.com. _80xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxx.acm-validations.aws.}
72+
## Delete a Certificate
73+
74+
Delete the Route 53 RecordSet that was created for ACM Certificate and Domain validation.
75+
76+
```go
77+
arn := "arn:aws:acm:ap-northeast-1:000000000000:certificate/xxxxxxxx-1111-1111-1111-11111111xxxx"
78+
if err := goacm.DeleteCertificate(g.ACMClient, g.Route53Client, arn); err != nil {
79+
fmt.Println(err.Error())
80+
}
7681
```

sample/go.mod

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module goacmsample
2+
3+
go 1.16
4+
5+
require github.com/michimani/goacm v0.2.8

sample/go.sum

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
github.com/aws/aws-sdk-go-v2 v1.2.0 h1:BS+UYpbsElC82gB+2E2jiCBg36i8HlubTB/dO/moQ9c=
2+
github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo=
3+
github.com/aws/aws-sdk-go-v2/config v1.1.1 h1:ZAoq32boMzcaTW9bcUacBswAmHTbvlvDJICgHFZuECo=
4+
github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y=
5+
github.com/aws/aws-sdk-go-v2/credentials v1.1.1 h1:NbvWIM1Mx6sNPTxowHgS2ewXCRp+NGTzUYb/96FZJbY=
6+
github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo=
7+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2 h1:EtEU7WRaWliitZh2nmuxEXrN0Cb8EgPUFGIoTMeqbzI=
8+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM=
9+
github.com/aws/aws-sdk-go-v2/service/acm v1.1.1 h1:LAr7oTwfOZdfJN1GrZnU05yf2aOO3HVeGv2KjJKp8d4=
10+
github.com/aws/aws-sdk-go-v2/service/acm v1.1.1/go.mod h1:LPzlCt4j2TSsD9P6NtruMhkOf0Ke7uxEHaxRCI5D1x4=
11+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2 h1:4AH9fFjUlVktQMznF+YN33aWNXaR4VgDXyP28qokJC0=
12+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8=
13+
github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1 h1:cKr6St+CtC3/dl/rEBJvlk7A/IN5D5F02GNkGzfbtVU=
14+
github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4=
15+
github.com/aws/aws-sdk-go-v2/service/sso v1.1.1 h1:37QubsarExl5ZuCBlnRP+7l1tNwZPBSTqpTBrPH98RU=
16+
github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0=
17+
github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 h1:TJoIfnIFubCX0ACVeJ0w46HEH5MwjwYN4iFhuYIhfIY=
18+
github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM=
19+
github.com/aws/smithy-go v1.1.0 h1:D6CSsM3gdxaGaqXnPgOBCeL6Mophqzu7KJOu7zW78sU=
20+
github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
21+
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
22+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
23+
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
24+
github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
25+
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
26+
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
27+
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
28+
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
29+
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
30+
github.com/michimani/goacm v0.2.8 h1:RU9G+HYENZ5U09xs7L23JD9QndTH3Rn6lczONneIFTU=
31+
github.com/michimani/goacm v0.2.8/go.mod h1:mMZ1hcwS/XPQU4iRunM4t3yFxZ8jlkXI+/fzbhdanhc=
32+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
33+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
34+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
35+
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
36+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
37+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
38+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
39+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
40+
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
41+
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
42+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
43+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

sample/main.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/michimani/goacm"
7+
)
8+
9+
func main() {
10+
gacm, err := goacm.NewGoACM("ap-northeast-1")
11+
if err != nil {
12+
fmt.Println(err.Error())
13+
return
14+
}
15+
16+
listCertificate(gacm)
17+
}
18+
19+
// List Certificate
20+
func listCertificate(g *goacm.GoACM) {
21+
if certificates, err := goacm.ListCertificates(g.ACMClient); err != nil {
22+
fmt.Println(err.Error())
23+
} else {
24+
fmt.Println("DomainName\tStatus\tARN")
25+
for _, c := range certificates {
26+
fmt.Printf("%s\t%s\t%s\n", c.DomainName, c.Status, c.Arn)
27+
}
28+
}
29+
}
30+
31+
// Get a Certificate
32+
func getCertificate(g *goacm.GoACM, arn string) {
33+
c, err := goacm.GetCertificate(g.ACMClient, arn)
34+
if err != nil {
35+
fmt.Println(err.Error())
36+
return
37+
}
38+
39+
fmt.Println("DomainName\tStatus\tARN")
40+
fmt.Printf("%s\t%s\t%s\n", c.DomainName, c.Status, c.Arn)
41+
}
42+
43+
// Issue a Certificate
44+
func issueCertificate(g *goacm.GoACM, targetDomain, hostedDomain, method string) {
45+
res, err := goacm.IssueCertificate(g.ACMClient, g.Route53Client, method, targetDomain, hostedDomain)
46+
if err != nil {
47+
fmt.Println(err.Error())
48+
return
49+
}
50+
51+
fmt.Printf("ARN: %v", res.CertificateArn)
52+
}
53+
54+
// Delete a Certificate
55+
func deleteCertificate(g *goacm.GoACM, arn string) {
56+
if err := goacm.DeleteCertificate(g.ACMClient, g.Route53Client, arn); err != nil {
57+
fmt.Println(err.Error())
58+
}
59+
}

0 commit comments

Comments
 (0)