Skip to content

Commit 389a198

Browse files
[#23232] Add region url_parameter to google_vertex_ai_index_endpoint_deployed_index (#14236) (#1018)
[upstream:04fa6d55b60584ef3dce627a5cdee8f410f938d0] Signed-off-by: Modular Magician <[email protected]>
1 parent 62f9caa commit 389a198

File tree

4 files changed

+175
-154
lines changed
  • vertex_ai_index_endpoint_deployed_index_automatic_resources
  • vertex_ai_index_endpoint_deployed_index_basic_two
  • vertex_ai_index_endpoint_deployed_index_basic
  • vertex_ai_index_endpoint_deployed_index_dedicated_resources

4 files changed

+175
-154
lines changed
Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,69 @@
11
resource "google_vertex_ai_index_endpoint_deployed_index" "automatic_resources" {
2-
depends_on = [ google_vertex_ai_index_endpoint.vertex_endpoint ]
3-
index_endpoint = google_vertex_ai_index_endpoint.vertex_endpoint.id
4-
index = google_vertex_ai_index.index.id // this is the index that will be deployed onto an endpoint
52
deployed_index_id = "deployed_index_id-${local.name_suffix}"
6-
display_name = "vertex-deployed-index-${local.name_suffix}"
7-
automatic_resources{
3+
display_name = "vertex-deployed-index-${local.name_suffix}"
4+
region = "us-central1"
5+
index = google_vertex_ai_index.index.id
6+
index_endpoint = google_vertex_ai_index_endpoint.vertex_endpoint.id
7+
deployment_group = "test"
8+
9+
automatic_resources {
810
max_replica_count = 2
911
min_replica_count = 1
1012
}
11-
deployment_group = "test"
12-
}
13-
14-
resource "google_storage_bucket" "bucket" {
15-
name = "bucket-name-${local.name_suffix}"
16-
location = "us-central1"
17-
uniform_bucket_level_access = true
18-
}
19-
20-
# The sample data comes from the following link:
21-
# https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
22-
resource "google_storage_bucket_object" "data" {
23-
name = "contents/data.json"
24-
bucket = google_storage_bucket.bucket.name
25-
content = <<EOF
26-
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
27-
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
28-
EOF
2913
}
3014

3115
resource "google_vertex_ai_index" "index" {
16+
region = "us-central1"
17+
display_name = "test-index-${local.name_suffix}"
18+
description = "index for test"
19+
index_update_method = "BATCH_UPDATE"
3220
labels = {
3321
foo = "bar"
3422
}
35-
region = "us-central1"
36-
display_name = "test-index-${local.name_suffix}"
37-
description = "index for test"
23+
3824
metadata {
3925
contents_delta_uri = "gs://${google_storage_bucket.bucket.name}/contents"
26+
4027
config {
41-
dimensions = 2
28+
dimensions = 2
4229
approximate_neighbors_count = 150
43-
shard_size = "SHARD_SIZE_MEDIUM"
44-
distance_measure_type = "DOT_PRODUCT_DISTANCE"
30+
shard_size = "SHARD_SIZE_MEDIUM"
31+
distance_measure_type = "DOT_PRODUCT_DISTANCE"
32+
4533
algorithm_config {
34+
4635
tree_ah_config {
47-
leaf_node_embedding_count = 500
36+
leaf_node_embedding_count = 500
4837
leaf_nodes_to_search_percent = 7
4938
}
5039
}
5140
}
5241
}
53-
index_update_method = "BATCH_UPDATE"
5442
}
5543

56-
5744
resource "google_vertex_ai_index_endpoint" "vertex_endpoint" {
58-
display_name = "sample-endpoint"
59-
description = "A sample vertex endpoint"
60-
region = "us-central1"
45+
display_name = "sample-endpoint"
46+
description = "A sample vertex endpoint"
47+
region = "us-central1"
48+
public_endpoint_enabled = true
6149
labels = {
6250
label-one = "value-one"
6351
}
64-
public_endpoint_enabled = true
6552
}
6653

67-
data "google_project" "project" {}
54+
resource "google_storage_bucket" "bucket" {
55+
name = "bucket-name-${local.name_suffix}"
56+
location = "us-central1"
57+
uniform_bucket_level_access = true
58+
}
59+
60+
# The sample data comes from the following link:
61+
# https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
62+
resource "google_storage_bucket_object" "data" {
63+
name = "contents/data.json"
64+
bucket = google_storage_bucket.bucket.name
65+
content = <<EOF
66+
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
67+
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
68+
EOF
69+
}
Lines changed: 47 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,83 @@
1-
resource "google_service_account" "sa" {
2-
account_id = "vertex-sa-${local.name_suffix}"
3-
}
4-
51
resource "google_vertex_ai_index_endpoint_deployed_index" "basic_deployed_index" {
6-
depends_on = [ google_vertex_ai_index_endpoint.vertex_index_endpoint_deployed, google_service_account.sa ]
7-
index_endpoint = google_vertex_ai_index_endpoint.vertex_index_endpoint_deployed.id
8-
index = google_vertex_ai_index.index.id // this is the index that will be deployed onto an endpoint
9-
deployed_index_id = "deployed_index_id-${local.name_suffix}"
10-
reserved_ip_ranges = ["vertex-ai-range-${local.name_suffix}"]
2+
deployed_index_id = "deployed_index_id-${local.name_suffix}"
3+
display_name = "vertex-deployed-index-${local.name_suffix}"
4+
region = "us-central1"
5+
index = google_vertex_ai_index.index.id
6+
index_endpoint = google_vertex_ai_index_endpoint.vertex_index_endpoint_deployed.id
117
enable_access_logging = false
12-
display_name = "vertex-deployed-index-${local.name_suffix}"
13-
deployed_index_auth_config{
14-
auth_provider{
15-
audiences = ["123456-my-app"]
8+
reserved_ip_ranges = ["vertex-ai-range-${local.name_suffix}"]
9+
10+
deployed_index_auth_config {
11+
12+
auth_provider {
13+
audiences = ["123456-my-app"]
1614
allowed_issuers = ["${google_service_account.sa.email}"]
1715
}
1816
}
1917
}
2018

21-
resource "google_storage_bucket" "bucket" {
22-
name = "bucket-name-${local.name_suffix}"
23-
location = "us-central1"
24-
uniform_bucket_level_access = true
25-
}
26-
27-
# The sample data comes from the following link:
28-
# https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
29-
resource "google_storage_bucket_object" "data" {
30-
name = "contents/data.json"
31-
bucket = google_storage_bucket.bucket.name
32-
content = <<EOF
33-
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
34-
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
35-
EOF
36-
}
37-
3819
resource "google_vertex_ai_index" "index" {
20+
region = "us-central1"
21+
display_name = "test-index-${local.name_suffix}"
22+
description = "index for test"
23+
index_update_method = "BATCH_UPDATE"
3924
labels = {
4025
foo = "bar"
4126
}
42-
region = "us-central1"
43-
display_name = "test-index-${local.name_suffix}"
44-
description = "index for test"
27+
4528
metadata {
4629
contents_delta_uri = "gs://${google_storage_bucket.bucket.name}/contents"
30+
4731
config {
48-
dimensions = 2
32+
dimensions = 2
4933
approximate_neighbors_count = 150
50-
shard_size = "SHARD_SIZE_SMALL"
51-
distance_measure_type = "DOT_PRODUCT_DISTANCE"
34+
shard_size = "SHARD_SIZE_SMALL"
35+
distance_measure_type = "DOT_PRODUCT_DISTANCE"
36+
5237
algorithm_config {
38+
5339
tree_ah_config {
54-
leaf_node_embedding_count = 500
40+
leaf_node_embedding_count = 500
5541
leaf_nodes_to_search_percent = 7
5642
}
5743
}
5844
}
5945
}
60-
index_update_method = "BATCH_UPDATE"
6146
}
6247

6348
resource "google_vertex_ai_index_endpoint" "vertex_index_endpoint_deployed" {
6449
display_name = "sample-endpoint"
6550
description = "A sample vertex endpoint"
6651
region = "us-central1"
67-
labels = {
52+
network = "projects/${data.google_project.project.number}/global/networks/${data.google_compute_network.vertex_network.name}"
53+
labels = {
6854
label-one = "value-one"
6955
}
70-
network = "projects/${data.google_project.project.number}/global/networks/${data.google_compute_network.vertex_network.name}"
56+
}
57+
58+
resource "google_service_account" "sa" {
59+
account_id = "vertex-sa-${local.name_suffix}"
60+
}
61+
62+
resource "google_storage_bucket" "bucket" {
63+
name = "bucket-name-${local.name_suffix}"
64+
location = "us-central1"
65+
uniform_bucket_level_access = true
66+
}
67+
68+
# The sample data comes from the following link:
69+
# https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
70+
resource "google_storage_bucket_object" "data" {
71+
name = "contents/data.json"
72+
bucket = google_storage_bucket.bucket.name
73+
content = <<EOF
74+
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
75+
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
76+
EOF
7177
}
7278

7379
data "google_compute_network" "vertex_network" {
74-
name = "network-name-${local.name_suffix}"
80+
name = "network-name-${local.name_suffix}"
7581
}
7682

7783
data "google_project" "project" {}
Lines changed: 46 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,87 @@
1-
resource "google_service_account" "sa" {
2-
account_id = "vertex-sa-${local.name_suffix}"
3-
}
4-
51
resource "google_vertex_ai_index_endpoint_deployed_index" "basic_deployed_index" {
6-
depends_on = [ google_vertex_ai_index_endpoint.vertex_index_endpoint_deployed, google_service_account.sa ]
7-
index_endpoint = google_vertex_ai_index_endpoint.vertex_index_endpoint_deployed.id
8-
index = google_vertex_ai_index.index.id // this is the index that will be deployed onto an endpoint
9-
deployed_index_id = "deployed_index_id-${local.name_suffix}"
10-
reserved_ip_ranges = ["vertex-ai-range-${local.name_suffix}"]
2+
deployed_index_id = "deployed_index_id-${local.name_suffix}"
3+
display_name = "vertex-deployed-index-${local.name_suffix}"
4+
region = "us-central1"
5+
index = google_vertex_ai_index.index.id
6+
index_endpoint = google_vertex_ai_index_endpoint.vertex_index_endpoint_deployed.id
7+
reserved_ip_ranges = ["vertex-ai-range-${local.name_suffix}"]
118
enable_access_logging = false
12-
display_name = "vertex-deployed-index-${local.name_suffix}"
13-
deployed_index_auth_config{
14-
auth_provider{
15-
audiences = ["123456-my-app"]
9+
10+
deployed_index_auth_config {
11+
12+
auth_provider {
13+
audiences = ["123456-my-app"]
1614
allowed_issuers = ["${google_service_account.sa.email}"]
1715
}
1816
}
19-
automatic_resources{
17+
18+
automatic_resources {
2019
max_replica_count = 4
2120
}
2221
}
2322

24-
resource "google_storage_bucket" "bucket" {
25-
name = "bucket-name-${local.name_suffix}"
26-
location = "us-central1"
27-
uniform_bucket_level_access = true
28-
}
29-
30-
# The sample data comes from the following link:
31-
# https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
32-
resource "google_storage_bucket_object" "data" {
33-
name = "contents/data.json"
34-
bucket = google_storage_bucket.bucket.name
35-
content = <<EOF
36-
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
37-
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
38-
EOF
23+
resource "google_service_account" "sa" {
24+
account_id = "vertex-sa-${local.name_suffix}"
3925
}
4026

4127
resource "google_vertex_ai_index" "index" {
28+
region = "us-central1"
29+
display_name = "test-index-${local.name_suffix}"
30+
description = "index for test"
31+
index_update_method = "BATCH_UPDATE"
4232
labels = {
4333
foo = "bar"
4434
}
45-
region = "us-central1"
46-
display_name = "test-index-${local.name_suffix}"
47-
description = "index for test"
35+
4836
metadata {
4937
contents_delta_uri = "gs://${google_storage_bucket.bucket.name}/contents"
38+
5039
config {
51-
dimensions = 2
40+
dimensions = 2
5241
approximate_neighbors_count = 150
53-
shard_size = "SHARD_SIZE_SMALL"
54-
distance_measure_type = "DOT_PRODUCT_DISTANCE"
42+
shard_size = "SHARD_SIZE_SMALL"
43+
distance_measure_type = "DOT_PRODUCT_DISTANCE"
44+
5545
algorithm_config {
46+
5647
tree_ah_config {
57-
leaf_node_embedding_count = 500
48+
leaf_node_embedding_count = 500
5849
leaf_nodes_to_search_percent = 7
5950
}
6051
}
6152
}
6253
}
63-
index_update_method = "BATCH_UPDATE"
6454
}
6555

6656
resource "google_vertex_ai_index_endpoint" "vertex_index_endpoint_deployed" {
6757
display_name = "sample-endpoint"
6858
description = "A sample vertex endpoint"
6959
region = "us-central1"
60+
network = "projects/${data.google_project.project.number}/global/networks/${data.google_compute_network.vertex_network.name}"
7061
labels = {
7162
label-one = "value-one"
7263
}
73-
network = "projects/${data.google_project.project.number}/global/networks/${data.google_compute_network.vertex_network.name}"
64+
}
65+
66+
resource "google_storage_bucket" "bucket" {
67+
name = "bucket-name-${local.name_suffix}"
68+
location = "us-central1"
69+
uniform_bucket_level_access = true
70+
}
71+
72+
# The sample data comes from the following link:
73+
# https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
74+
resource "google_storage_bucket_object" "data" {
75+
name = "contents/data.json"
76+
bucket = google_storage_bucket.bucket.name
77+
content = <<EOF
78+
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
79+
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
80+
EOF
7481
}
7582

7683
data "google_compute_network" "vertex_network" {
77-
name = "network-name-${local.name_suffix}"
84+
name = "network-name-${local.name_suffix}"
7885
}
7986

8087
data "google_project" "project" {}

0 commit comments

Comments
 (0)