Skip to content

Commit 69b3a37

Browse files
authored
feat(eb): [123456789] add eb scf batch (#3531)
* add eb batch * add eb batch
1 parent 881bd41 commit 69b3a37

File tree

11 files changed

+837
-638
lines changed

11 files changed

+837
-638
lines changed

.changelog/3531.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_eb_event_target: support scf batch parameters
3+
```

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.27
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.30
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1161
@@ -58,7 +58,7 @@ require (
5858
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1056
5959
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414
6060
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.0.628
61-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.0.760
61+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.1.30
6262
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/emr v1.0.1115
6363
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.1.13
6464
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.970
@@ -107,6 +107,7 @@ require (
107107

108108
require (
109109
github.com/hashicorp/go-uuid v1.0.3
110+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.0
110111
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.1149
111112
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwdoris v1.0.993
112113
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126
@@ -312,7 +313,6 @@ require (
312313
github.com/subosito/gotenv v1.4.1 // indirect
313314
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect
314315
github.com/tdakkota/asciicheck v0.2.0 // indirect
315-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.0 // indirect
316316
github.com/tetafro/godot v1.4.11 // indirect
317317
github.com/tidwall/gjson v1.17.0 // indirect
318318
github.com/tidwall/match v1.1.1 // indirect

go.sum

Lines changed: 4 additions & 49 deletions
Large diffs are not rendered by default.

tencentcloud/services/eb/resource_tc_eb_event_target.go

Lines changed: 80 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,23 +53,27 @@ func ResourceTencentCloudEbEventTarget() *schema.Resource {
5353
Type: schema.TypeList,
5454
MaxItems: 1,
5555
Optional: true,
56+
Computed: true,
5657
Description: "cloud function parameters.",
5758
Elem: &schema.Resource{
5859
Schema: map[string]*schema.Schema{
5960
"batch_timeout": {
6061
Type: schema.TypeInt,
6162
Optional: true,
62-
Description: "Maximum waiting time for bulk delivery.",
63+
Computed: true,
64+
Description: "Maximum waiting time for batch delivery. This parameter is no longer effective, please use the batch_timeout parameter at the outer level.",
6365
},
6466
"batch_event_count": {
6567
Type: schema.TypeInt,
6668
Optional: true,
67-
Description: "Maximum number of events for batch delivery.",
69+
Computed: true,
70+
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.",
6871
},
6972
"enable_batch_delivery": {
7073
Type: schema.TypeBool,
7174
Optional: true,
72-
Description: "Enable batch delivery.",
75+
Computed: true,
76+
Description: "Enable batch delivery. This parameter is no longer effective, please use the enable_batch_delivery parameter at the outer level.",
7377
},
7478
},
7579
},
@@ -158,6 +162,27 @@ func ResourceTencentCloudEbEventTarget() *schema.Resource {
158162
Type: schema.TypeString,
159163
Description: "event rule id.",
160164
},
165+
166+
"batch_timeout": {
167+
Type: schema.TypeInt,
168+
Optional: true,
169+
Computed: true,
170+
Description: "Maximum waiting time for batch delivery.",
171+
},
172+
173+
"batch_event_count": {
174+
Type: schema.TypeInt,
175+
Optional: true,
176+
Computed: true,
177+
Description: "Maximum number of events for batch delivery.",
178+
},
179+
180+
"enable_batch_delivery": {
181+
Type: schema.TypeBool,
182+
Optional: true,
183+
Computed: true,
184+
Description: "Enable batch delivery.",
185+
},
161186
},
162187
}
163188
}
@@ -249,6 +274,18 @@ func resourceTencentCloudEbEventTargetCreate(d *schema.ResourceData, meta interf
249274
request.RuleId = helper.String(v.(string))
250275
}
251276

277+
if v, ok := d.GetOkExists("batch_timeout"); ok {
278+
request.BatchTimeout = helper.IntInt64(v.(int))
279+
}
280+
281+
if v, ok := d.GetOkExists("batch_event_count"); ok {
282+
request.BatchEventCount = helper.IntInt64(v.(int))
283+
}
284+
285+
if v, ok := d.GetOkExists("enable_batch_delivery"); ok {
286+
request.EnableBatchDelivery = helper.Bool(v.(bool))
287+
}
288+
252289
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
253290
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseEbClient().CreateTarget(request)
254291
if e != nil {
@@ -393,6 +430,16 @@ func resourceTencentCloudEbEventTargetRead(d *schema.ResourceData, meta interfac
393430
_ = d.Set("rule_id", eventTarget.RuleId)
394431
}
395432

433+
if eventTarget.BatchTimeout != nil {
434+
_ = d.Set("batch_timeout", eventTarget.BatchTimeout)
435+
}
436+
if eventTarget.BatchEventCount != nil {
437+
_ = d.Set("batch_event_count", eventTarget.BatchEventCount)
438+
}
439+
if eventTarget.EnableBatchDelivery != nil {
440+
_ = d.Set("enable_batch_delivery", eventTarget.EnableBatchDelivery)
441+
}
442+
396443
return nil
397444
}
398445

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

415-
request.EventBusId = &eventBusId
416-
request.RuleId = &ruleId
417-
request.TargetId = &targetId
418-
419462
immutableArgs := []string{"event_bus_id", "type", "target_description", "rule_id"}
420463

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

427-
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
428-
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseEbClient().UpdateTarget(request)
429-
if e != nil {
430-
return tccommon.RetryError(e)
431-
} else {
432-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
470+
if d.HasChange("batch_timeout") || d.HasChange("batch_event_count") || d.HasChange("enable_batch_delivery") {
471+
472+
request.EventBusId = &eventBusId
473+
request.RuleId = &ruleId
474+
request.TargetId = &targetId
475+
476+
if v, ok := d.GetOkExists("batch_timeout"); ok {
477+
request.BatchTimeout = helper.IntInt64(v.(int))
478+
}
479+
480+
if v, ok := d.GetOkExists("batch_event_count"); ok {
481+
request.BatchEventCount = helper.IntInt64(v.(int))
482+
}
483+
484+
if v, ok := d.GetOkExists("enable_batch_delivery"); ok {
485+
request.EnableBatchDelivery = helper.Bool(v.(bool))
486+
}
487+
488+
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
489+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseEbClient().UpdateTarget(request)
490+
if e != nil {
491+
return tccommon.RetryError(e)
492+
} else {
493+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
494+
}
495+
return nil
496+
})
497+
if err != nil {
498+
log.Printf("[CRITAL]%s update eb eventTarget failed, reason:%+v", logId, err)
499+
return err
433500
}
434-
return nil
435-
})
436-
if err != nil {
437-
log.Printf("[CRITAL]%s update eb eventTarget failed, reason:%+v", logId, err)
438-
return err
439501
}
440502

441503
return resourceTencentCloudEbEventTargetRead(d, meta)

tencentcloud/services/eb/resource_tc_eb_event_target.md

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,20 @@ resource "tencentcloud_eb_event_bus" "foo" {
2929
description = "event bus desc"
3030
enable_store = false
3131
save_days = 1
32-
tags = {
32+
tags = {
3333
"createdBy" = "terraform"
3434
}
3535
}
3636
3737
resource "tencentcloud_eb_event_rule" "foo" {
38-
event_bus_id = tencentcloud_eb_event_bus.foo.id
39-
rule_name = "tf-event_rule"
40-
description = "event rule desc"
41-
enable = true
38+
event_bus_id = tencentcloud_eb_event_bus.foo.id
39+
rule_name = "tf-event_rule"
40+
description = "event rule desc"
41+
enable = true
4242
event_pattern = jsonencode(
4343
{
4444
source = "apigw.cloud.tencent"
45-
type = [
45+
type = [
4646
"connector:apigw",
4747
]
4848
}
@@ -53,19 +53,17 @@ resource "tencentcloud_eb_event_rule" "foo" {
5353
}
5454
5555
resource "tencentcloud_eb_event_target" "scf_target" {
56-
event_bus_id = tencentcloud_eb_event_bus.foo.id
57-
rule_id = tencentcloud_eb_event_rule.foo.rule_id
58-
type = "scf"
59-
60-
target_description {
61-
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}"
56+
event_bus_id = tencentcloud_eb_event_bus.foo.id
57+
rule_id = tencentcloud_eb_event_rule.foo.rule_id
58+
type = "scf"
6259
63-
scf_params {
64-
batch_event_count = 1
65-
batch_timeout = 1
66-
enable_batch_delivery = true
67-
}
68-
}
60+
target_description {
61+
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}"
62+
}
63+
64+
batch_event_count = 2
65+
batch_timeout = 2
66+
enable_batch_delivery = true
6967
}
7068
```
7169

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)