From f367f527c30b83856d4f6033c5806ecb17b4e588 Mon Sep 17 00:00:00 2001 From: Tim Leguijt Date: Mon, 26 Oct 2020 16:37:29 +0100 Subject: [PATCH 1/2] Add http_api_url as attribute reference --- serverless/resource_deployment.go | 9 ++++++++- serverless/stack.go | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 serverless/stack.go diff --git a/serverless/resource_deployment.go b/serverless/resource_deployment.go index 0aa4174..e515229 100644 --- a/serverless/resource_deployment.go +++ b/serverless/resource_deployment.go @@ -67,6 +67,10 @@ func resourceDeployment() *schema.Resource { Optional: true, Computed: true, }, + "http_api_url": { + Type: schema.TypeString, + Computed: true, + }, "aws_config": &schema.Schema{ Type: schema.TypeList, Optional: true, @@ -149,9 +153,12 @@ func resourceDeploymentRead(d *schema.ResourceData, m interface{}) error { cf := cloudformation.New(sess, &aws.Config{Credentials: creds}) - _, err := cf.DescribeStacks(&cloudformation.DescribeStacksInput{ + stacksOutput, err := cf.DescribeStacks(&cloudformation.DescribeStacksInput{ StackName: aws.String(strings.Join([]string{id, stage}, "-")), }) + + setStackInfo(stacksOutput, d) + if err != nil { if aerr, ok := err.(awserr.Error); ok { if aerr.Code() == "ValidationError" && strings.Contains(aerr.Message(), "does not exist") { diff --git a/serverless/stack.go b/serverless/stack.go new file mode 100644 index 0000000..038f632 --- /dev/null +++ b/serverless/stack.go @@ -0,0 +1,22 @@ +package serverless + +import ( + "github.com/aws/aws-sdk-go/service/cloudformation" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" +) + +func setStackInfo(stacksOutput *cloudformation.DescribeStacksOutput, d *schema.ResourceData) error { + if len(stacksOutput.Stacks) == 0 { + return nil + } + + stack := stacksOutput.Stacks[0] + + for _, output := range stack.Outputs { + if *output.OutputKey == "HttpApiUrl" { + d.Set("http_api_url", *output.OutputValue) + } + } + + return nil +} From 156a9d6d81360924423f8e97da4c5cac741a22fb Mon Sep 17 00:00:00 2001 From: Tim Leguijt Date: Mon, 26 Oct 2020 16:42:34 +0100 Subject: [PATCH 2/2] Add output to example --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index b9a835e..0e58182 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,10 @@ resource "serverless_deployment" "example" { "FOO": "BAR", } } + +output "serverless_url" { + value = serverless_deployment.example.http_api_url +} ``` ## Contributing