mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-07-05 17:52:38 +00:00
[TF] Add max_instances to cloudfunctions functions (#3433)
Signed-off-by: Modular Magician <magic-modules@google.com>
This commit is contained in:
parent
e1091340f4
commit
b21921fad2
|
@ -268,6 +268,13 @@ func resourceCloudFunctionsFunction() *schema.Resource {
|
||||||
Computed: true,
|
Computed: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"max_instances": {
|
||||||
|
Type: schema.TypeInt,
|
||||||
|
Optional: true,
|
||||||
|
Default: 0,
|
||||||
|
ValidateFunc: validation.IntAtLeast(0),
|
||||||
|
},
|
||||||
|
|
||||||
"project": {
|
"project": {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
@ -366,6 +373,10 @@ func resourceCloudFunctionsCreate(d *schema.ResourceData, meta interface{}) erro
|
||||||
function.EnvironmentVariables = expandEnvironmentVariables(d)
|
function.EnvironmentVariables = expandEnvironmentVariables(d)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v, ok := d.GetOk("max_instances"); ok {
|
||||||
|
function.MaxInstances = int64(v.(int))
|
||||||
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] Creating cloud function: %s", function.Name)
|
log.Printf("[DEBUG] Creating cloud function: %s", function.Name)
|
||||||
op, err := config.clientCloudFunctions.Projects.Locations.Functions.Create(
|
op, err := config.clientCloudFunctions.Projects.Locations.Functions.Create(
|
||||||
cloudFuncId.locationId(), function).Do()
|
cloudFuncId.locationId(), function).Do()
|
||||||
|
@ -432,7 +443,7 @@ func resourceCloudFunctionsRead(d *schema.ResourceData, meta interface{}) error
|
||||||
}
|
}
|
||||||
|
|
||||||
d.Set("event_trigger", flattenEventTrigger(function.EventTrigger))
|
d.Set("event_trigger", flattenEventTrigger(function.EventTrigger))
|
||||||
|
d.Set("max_instances", function.MaxInstances)
|
||||||
d.Set("region", cloudFuncId.Region)
|
d.Set("region", cloudFuncId.Region)
|
||||||
d.Set("project", cloudFuncId.Project)
|
d.Set("project", cloudFuncId.Project)
|
||||||
|
|
||||||
|
@ -500,7 +511,7 @@ func resourceCloudFunctionsUpdate(d *schema.ResourceData, meta interface{}) erro
|
||||||
|
|
||||||
if d.HasChange("environment_variables") {
|
if d.HasChange("environment_variables") {
|
||||||
function.EnvironmentVariables = expandEnvironmentVariables(d)
|
function.EnvironmentVariables = expandEnvironmentVariables(d)
|
||||||
updateMaskArr = append(updateMaskArr, "environment_variables")
|
updateMaskArr = append(updateMaskArr, "environmentVariables")
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.HasChange("event_trigger") {
|
if d.HasChange("event_trigger") {
|
||||||
|
@ -508,6 +519,11 @@ func resourceCloudFunctionsUpdate(d *schema.ResourceData, meta interface{}) erro
|
||||||
updateMaskArr = append(updateMaskArr, "eventTrigger", "eventTrigger.failurePolicy.retry")
|
updateMaskArr = append(updateMaskArr, "eventTrigger", "eventTrigger.failurePolicy.retry")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if d.HasChange("max_instances") {
|
||||||
|
function.MaxInstances = int64(d.Get("max_instances").(int))
|
||||||
|
updateMaskArr = append(updateMaskArr, "maxInstances")
|
||||||
|
}
|
||||||
|
|
||||||
if len(updateMaskArr) > 0 {
|
if len(updateMaskArr) > 0 {
|
||||||
log.Printf("[DEBUG] Send Patch CloudFunction Configuration request: %#v", function)
|
log.Printf("[DEBUG] Send Patch CloudFunction Configuration request: %#v", function)
|
||||||
updateMask := strings.Join(updateMaskArr, ",")
|
updateMask := strings.Join(updateMaskArr, ",")
|
||||||
|
|
|
@ -90,6 +90,8 @@ func TestAccCloudFunctionsFunction_basic(t *testing.T) {
|
||||||
"description", "test function"),
|
"description", "test function"),
|
||||||
resource.TestCheckResourceAttr(funcResourceName,
|
resource.TestCheckResourceAttr(funcResourceName,
|
||||||
"available_memory_mb", "128"),
|
"available_memory_mb", "128"),
|
||||||
|
resource.TestCheckResourceAttr(funcResourceName,
|
||||||
|
"max_instances", "10"),
|
||||||
testAccCloudFunctionsFunctionSource(fmt.Sprintf("gs://%s/index.zip", bucketName), &function),
|
testAccCloudFunctionsFunctionSource(fmt.Sprintf("gs://%s/index.zip", bucketName), &function),
|
||||||
testAccCloudFunctionsFunctionTrigger(FUNCTION_TRIGGER_HTTP, &function),
|
testAccCloudFunctionsFunctionTrigger(FUNCTION_TRIGGER_HTTP, &function),
|
||||||
resource.TestCheckResourceAttr(funcResourceName,
|
resource.TestCheckResourceAttr(funcResourceName,
|
||||||
|
@ -157,6 +159,8 @@ func TestAccCloudFunctionsFunction_update(t *testing.T) {
|
||||||
"description", "test function updated"),
|
"description", "test function updated"),
|
||||||
resource.TestCheckResourceAttr(funcResourceName,
|
resource.TestCheckResourceAttr(funcResourceName,
|
||||||
"timeout", "91"),
|
"timeout", "91"),
|
||||||
|
resource.TestCheckResourceAttr(funcResourceName,
|
||||||
|
"max_instances", "15"),
|
||||||
testAccCloudFunctionsFunctionHasLabel("my-label", "my-updated-label-value", &function),
|
testAccCloudFunctionsFunctionHasLabel("my-label", "my-updated-label-value", &function),
|
||||||
testAccCloudFunctionsFunctionHasLabel("a-new-label", "a-new-label-value", &function),
|
testAccCloudFunctionsFunctionHasLabel("a-new-label", "a-new-label-value", &function),
|
||||||
testAccCloudFunctionsFunctionHasEnvironmentVariable("TEST_ENV_VARIABLE",
|
testAccCloudFunctionsFunctionHasEnvironmentVariable("TEST_ENV_VARIABLE",
|
||||||
|
@ -498,6 +502,7 @@ resource "google_cloudfunctions_function" "function" {
|
||||||
environment_variables = {
|
environment_variables = {
|
||||||
TEST_ENV_VARIABLE = "test-env-variable-value"
|
TEST_ENV_VARIABLE = "test-env-variable-value"
|
||||||
}
|
}
|
||||||
|
max_instances = 10
|
||||||
}
|
}
|
||||||
`, bucketName, zipFilePath, functionName)
|
`, bucketName, zipFilePath, functionName)
|
||||||
}
|
}
|
||||||
|
@ -532,6 +537,7 @@ resource "google_cloudfunctions_function" "function" {
|
||||||
TEST_ENV_VARIABLE = "test-env-variable-value"
|
TEST_ENV_VARIABLE = "test-env-variable-value"
|
||||||
NEW_ENV_VARIABLE = "new-env-variable-value"
|
NEW_ENV_VARIABLE = "new-env-variable-value"
|
||||||
}
|
}
|
||||||
|
max_instances = 15
|
||||||
}`, bucketName, zipFilePath, functionName)
|
}`, bucketName, zipFilePath, functionName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,8 @@ The following arguments are supported:
|
||||||
* `source_repository` - (Optional) Represents parameters related to source repository where a function is hosted.
|
* `source_repository` - (Optional) Represents parameters related to source repository where a function is hosted.
|
||||||
Cannot be set alongside `source_archive_bucket` or `source_archive_object`. Structure is documented below.
|
Cannot be set alongside `source_archive_bucket` or `source_archive_object`. Structure is documented below.
|
||||||
|
|
||||||
|
* `max_instances` - (Optional) The limit on the maximum number of function instances that may coexist at a given time.
|
||||||
|
|
||||||
The `event_trigger` block supports:
|
The `event_trigger` block supports:
|
||||||
|
|
||||||
* `event_type` - (Required) The type of event to observe. For example: `"google.storage.object.finalize"`.
|
* `event_type` - (Required) The type of event to observe. For example: `"google.storage.object.finalize"`.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user