Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/3531.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:enhancement
resource/tencentcloud_eb_event_target: support scf batch parameters
```
6 changes: 3 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.27
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.30
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1161
Expand All @@ -58,7 +58,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1056
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.0.628
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.0.760
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.1.30
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/emr v1.0.1115
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.1.13
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.970
Expand Down Expand Up @@ -107,6 +107,7 @@ require (

require (
github.com/hashicorp/go-uuid v1.0.3
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.0
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.1149
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwdoris v1.0.993
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126
Expand Down Expand Up @@ -312,7 +313,6 @@ require (
github.com/subosito/gotenv v1.4.1 // indirect
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect
github.com/tdakkota/asciicheck v0.2.0 // indirect
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.0 // indirect
github.com/tetafro/godot v1.4.11 // indirect
github.com/tidwall/gjson v1.17.0 // indirect
github.com/tidwall/match v1.1.1 // indirect
Expand Down
53 changes: 4 additions & 49 deletions go.sum

Large diffs are not rendered by default.

98 changes: 80 additions & 18 deletions tencentcloud/services/eb/resource_tc_eb_event_target.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,23 +53,27 @@ func ResourceTencentCloudEbEventTarget() *schema.Resource {
Type: schema.TypeList,
MaxItems: 1,
Optional: true,
Computed: true,
Description: "cloud function parameters.",
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"batch_timeout": {
Type: schema.TypeInt,
Optional: true,
Description: "Maximum waiting time for bulk delivery.",
Computed: true,
Description: "Maximum waiting time for batch delivery. This parameter is no longer effective, please use the batch_timeout parameter at the outer level.",
},
"batch_event_count": {
Type: schema.TypeInt,
Optional: true,
Description: "Maximum number of events for batch delivery.",
Computed: true,
Description: "Maximum number of events for batch delivery. This parameter is no longer effective, please use the batch_event_count parameter at the outer level.",
},
"enable_batch_delivery": {
Type: schema.TypeBool,
Optional: true,
Description: "Enable batch delivery.",
Computed: true,
Description: "Enable batch delivery. This parameter is no longer effective, please use the enable_batch_delivery parameter at the outer level.",
},
},
},
Expand Down Expand Up @@ -158,6 +162,27 @@ func ResourceTencentCloudEbEventTarget() *schema.Resource {
Type: schema.TypeString,
Description: "event rule id.",
},

"batch_timeout": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
Description: "Maximum waiting time for batch delivery.",
},

"batch_event_count": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
Description: "Maximum number of events for batch delivery.",
},

"enable_batch_delivery": {
Type: schema.TypeBool,
Optional: true,
Computed: true,
Description: "Enable batch delivery.",
},
},
}
}
Expand Down Expand Up @@ -249,6 +274,18 @@ func resourceTencentCloudEbEventTargetCreate(d *schema.ResourceData, meta interf
request.RuleId = helper.String(v.(string))
}

if v, ok := d.GetOkExists("batch_timeout"); ok {
request.BatchTimeout = helper.IntInt64(v.(int))
}

if v, ok := d.GetOkExists("batch_event_count"); ok {
request.BatchEventCount = helper.IntInt64(v.(int))
}

if v, ok := d.GetOkExists("enable_batch_delivery"); ok {
request.EnableBatchDelivery = helper.Bool(v.(bool))
}

err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseEbClient().CreateTarget(request)
if e != nil {
Expand Down Expand Up @@ -393,6 +430,16 @@ func resourceTencentCloudEbEventTargetRead(d *schema.ResourceData, meta interfac
_ = d.Set("rule_id", eventTarget.RuleId)
}

if eventTarget.BatchTimeout != nil {
_ = d.Set("batch_timeout", eventTarget.BatchTimeout)
}
if eventTarget.BatchEventCount != nil {
_ = d.Set("batch_event_count", eventTarget.BatchEventCount)
}
if eventTarget.EnableBatchDelivery != nil {
_ = d.Set("enable_batch_delivery", eventTarget.EnableBatchDelivery)
}

return nil
}

Expand All @@ -412,10 +459,6 @@ func resourceTencentCloudEbEventTargetUpdate(d *schema.ResourceData, meta interf
ruleId := idSplit[1]
targetId := idSplit[2]

request.EventBusId = &eventBusId
request.RuleId = &ruleId
request.TargetId = &targetId

immutableArgs := []string{"event_bus_id", "type", "target_description", "rule_id"}

for _, v := range immutableArgs {
Expand All @@ -424,18 +467,37 @@ func resourceTencentCloudEbEventTargetUpdate(d *schema.ResourceData, meta interf
}
}

err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseEbClient().UpdateTarget(request)
if e != nil {
return tccommon.RetryError(e)
} else {
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
if d.HasChange("batch_timeout") || d.HasChange("batch_event_count") || d.HasChange("enable_batch_delivery") {

request.EventBusId = &eventBusId
request.RuleId = &ruleId
request.TargetId = &targetId

if v, ok := d.GetOkExists("batch_timeout"); ok {
request.BatchTimeout = helper.IntInt64(v.(int))
}

if v, ok := d.GetOkExists("batch_event_count"); ok {
request.BatchEventCount = helper.IntInt64(v.(int))
}

if v, ok := d.GetOkExists("enable_batch_delivery"); ok {
request.EnableBatchDelivery = helper.Bool(v.(bool))
}

err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseEbClient().UpdateTarget(request)
if e != nil {
return tccommon.RetryError(e)
} else {
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
}
return nil
})
if err != nil {
log.Printf("[CRITAL]%s update eb eventTarget failed, reason:%+v", logId, err)
return err
}
return nil
})
if err != nil {
log.Printf("[CRITAL]%s update eb eventTarget failed, reason:%+v", logId, err)
return err
}

return resourceTencentCloudEbEventTargetRead(d, meta)
Expand Down
34 changes: 16 additions & 18 deletions tencentcloud/services/eb/resource_tc_eb_event_target.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,20 @@ resource "tencentcloud_eb_event_bus" "foo" {
description = "event bus desc"
enable_store = false
save_days = 1
tags = {
tags = {
"createdBy" = "terraform"
}
}

resource "tencentcloud_eb_event_rule" "foo" {
event_bus_id = tencentcloud_eb_event_bus.foo.id
rule_name = "tf-event_rule"
description = "event rule desc"
enable = true
event_bus_id = tencentcloud_eb_event_bus.foo.id
rule_name = "tf-event_rule"
description = "event rule desc"
enable = true
event_pattern = jsonencode(
{
source = "apigw.cloud.tencent"
type = [
type = [
"connector:apigw",
]
}
Expand All @@ -53,19 +53,17 @@ resource "tencentcloud_eb_event_rule" "foo" {
}

resource "tencentcloud_eb_event_target" "scf_target" {
event_bus_id = tencentcloud_eb_event_bus.foo.id
rule_id = tencentcloud_eb_event_rule.foo.rule_id
type = "scf"

target_description {
resource_description = "qcs::scf:${var.zone}:uin/${data.tencentcloud_cam_users.foo.user_list.0.uin}:namespace/${var.namespace}/function/${var.function}/${var.function_version}"
event_bus_id = tencentcloud_eb_event_bus.foo.id
rule_id = tencentcloud_eb_event_rule.foo.rule_id
type = "scf"

scf_params {
batch_event_count = 1
batch_timeout = 1
enable_batch_delivery = true
}
}
target_description {
resource_description = "qcs::scf:${var.zone}:uin/${data.tencentcloud_cam_users.foo.user_list.0.uin}:namespace/${var.namespace}/function/${var.function}/${var.function_version}"
}

batch_event_count = 2
batch_timeout = 2
enable_batch_delivery = true
}
```

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading