Aggiornamento alla versione di 2022-03-29 (interfacce di rete, gruppi di protezione)
Come descritto in Versionamento, la maggior parte delle modifiche alle API VPC sono completamente compatibili con le versioni precedenti e pertanto vengono rese
disponibili a tutti i client, indipendentemente dalla versione API richiesta dal client. Tuttavia, la release 2022-03-29 dell'API VPC ha richiesto modifiche incompatibili a supporto della funzione degli indirizzi IP riservati:
- Gli indirizzi IP sono ora modellati come oggetti (risorse), piuttosto che come stringhe.
- I gruppi di protezione devono ora essere associati alle destinazioni piuttosto che alle interfacce di rete.
Se i tuoi client continuano a specificare la versione 2022-03-28 o precedente dell'API VPC, non sono richieste modifiche, ma tali client non sono in grado di beneficiare completamente degli indirizzi IP riservati. Per ulteriori informazioni
sugli indirizzi riservati, vedi Gestione degli indirizzi IP.
Anche se non prevedi di utilizzare indirizzi IP riservati, per evitare regressioni nella funzionalità del client, leggi e segui il file azione necessaria sezione prima che il client specifichi una versione 2022-03-29 o più tardi.
L' API Metadati VPC non supporta ancora gli indirizzi IP riservati. I client che utilizzano l'API dei metadati non richiedono modifiche per utilizzare la versione 2022-03-29 o successiva.
Azione necessaria
Prima che il client specifichi una versione 2022-03-29 o versione successiva, seguire queste azioni per evitare regressioni nella funzionalità del client.
Migrazione utilizzo degli indirizzi IP
Prima di eseguire la migrazione di un client a una versione API 2022-03-29 o successivamente, rivedi il tuo codice per qualsiasi utilizzo di primary_ipv4_address proprietà. Come mostrato nel esempi,
a partire dalla versione 2022-03-29, IL primary_ipv4_address la proprietà string è sostituita da primary_ip proprietà dell'oggetto, che include un file address sottoproprietà. Pertanto,
è necessario modificare tutte le istanze di primary_ipv4_address in primary_ip.address nel modo appropriato per il proprio linguaggio di programmazione.
Mentre primary_ipv4_address viene visualizzato solo negli schemi NetworkInterface, NetworkInterfaceReference e NetworkInterfacePrototype (e nei relativi schemi BareMetalNetworkInterface strettamente correlati), questi schemi sono utilizzati ampiamente nell'API VPC. Pertanto, anche se la modifica incompatibile è limitata al file primary_ipv4_address proprietà, molte operazioni furono colpite. Consultare Operazioni modificate per un elenco completo.
Migrazione utilizzo delle associazioni del gruppo di sicurezza
Come parte della 2021-02-23 release, i metodi di destinazione del gruppo di protezione sono stati resi disponibili e i metodi originali specifici per le interfacce
di rete sono stati dichiarati obsoleti. La versione API 2022-03-29 rimuove il supporto per quei metodi obsoleti. Come mostrato negli esempi, i metodi di destinazione del gruppo di protezione includono
le capacità dei metodi obsoleti. Le destinazioni del gruppo di sicurezza consentono anche ai gruppi di sicurezza di essere associati con altre risorse VPC, come i gateway endpoint e i programmi di bilanciamento del carico.
I metodi GET e PUT obsoleti hanno restituito schemi di risposta NetworkInterface, ma i nuovi metodi GET e PUT hanno restituito schemi di risposta NetworkInterfaceReference.
Se il client stava accedendo alle proprietà oltre le proprietà in NetworkInterfaceReference, il client deve richiamare GET /instances/{instance_id}/network_interfaces/{id} per richiamare tali proprietà separatamente.
Inoltre, se il tuo client stava precedentemente accedendo alla proprietà network_interfaces[] restituita da GET /security_groups, deve accedere alla proprietà targets[]. Se il client stava accedendo alle
proprietà in network_interfaces[] oltre le proprietà in NetworkInterfaceReference, il client deve richiamare GET /instances/{instance_id}/network_interfaces/{id} per richiamare tali proprietà separatamente.
Esempi
Questi esempi confronta le differenze tra prima e dopo la modifica versata 2022-03-29.
Esempi di indirizzo IP
I seguenti esempi confrontano come effettuare una chiamata POST /instances per eseguire il provisioning di un'istanza con uno specifico indirizzo IP sulla sua interfaccia di rete primaria prima e dopo la modifica della versione
2022-03-29 e come recuperare tale indirizzo IP.
Specifica della versione API 2022-03-28 o precedente:
curl -X POST \
"$vpc_api_endpoint/v1/instances?version=2022-03-28&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"image": {"id": "'"$image_id"'"},
"keys": [{"id": "'"$key_id"'"}],
"primary_network_interface": {
"primary_ipv4_address": "10.240.0.5",
"subnet": {"id": "'"$subnet_id"'"}
},
"zone": {"name": "'"$zone"'"}
}'
Per richiamare l'indirizzo:
curl -X GET \
"$vpc_api_endpoint/v1/instances/$instance_id?version=2022-03-28&generation=2" \
-H "Authorization: Bearer $iam_token" | jq '.primary_network_interface.primary_ipv4_address'
Specifica della versione API 2022-03-29 o successiva:
curl -X POST \
"$vpc_api_endpoint/v1/instances?version=2022-03-29&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"image": {"id": "'"$image_id"'"},
"keys": [{"id": "'"$key_id"'"}],
"primary_network_interface": {
"primary_ip": {
"address": "10.240.0.5"
},
"subnet": {"id": "'"$subnet_id"'"}
},
"zone": {"name": "'"$zone"'"}
}'
Per richiamare l'indirizzo:
curl -X GET \
"$vpc_api_endpoint/v1/instances/$instance_id?version=2022-03-29&generation=2" \
-H "Authorization: Bearer $iam_token" | jq '.primary_network_interface.primary_ip.address'
I seguenti esempi confrontano come effettuare una chiamata POST /instances/{id}/network_interface per creare una nuova interfaccia di rete su un'istanza esistente con un indirizzo IP specifico prima e dopo la modifica della versione
di 2022-03-29 e come richiamare l'indirizzo.
Specifica della versione API 2022-03-28 o precedente:
curl -X POST \
"$vpc_api_endpoint/v1/instances/$instance_id/network_interfaces?version=2022-03-28&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"primary_ipv4_address": "10.240.0.5",
"subnet": {"id": "'"$subnet_id"'"}
}'
Per richiamare l'indirizzo:
curl -X GET \
"$vpc_api_endpoint/v1/instances/$instance_id/network_interfaces/$network_interface_id?version=2022-03-28&generation=2" \
-H "Authorization: Bearer $iam_token" | jq '.primary_ipv4_address'
Specifica della versione API 2022-03-29 o successiva:
curl -X POST \
"$vpc_api_endpoint/v1/instances/$instance_id/network_interfaces?version=2022-03-29&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"primary_ip":
{
"address": "10.240.0.5"
},
"subnet": {"id": "'"$subnet_id"'"}
}'
Per richiamare l'indirizzo:
curl -X GET \
"$vpc_api_endpoint/v1/instances/$instance_id/network_interfaces/$network_interface_id?version=2022-03-29&generation=2" \
-H "Authorization: Bearer $iam_token" | jq '.primary_ip.address'
Negli esempi viene utilizzato jq come parser, uno strumento di terze parti distribuito sotto licenza MIT. Alcuni sistemi operativi non includono di default il programma “ jq ”. Prima dell'uso, installare jq oppure sostituirlo con un altro parser JSON.
Esempi di associazione gruppi di sicurezza
I seguenti esempi confrontano come inserire un'interfaccia di rete in un gruppo di protezione prima e dopo la modifica della versione 2022-03-29.
Specifica della versione API 2022-03-28 o precedente:
curl -X PUT \
"$vpc_api_endpoint/v1/security_groups/$security_group_id/network_interfaces/$id?version=2022-03-28&generation=2" \
-H "Authorization: Bearer $iam_token"
Specifica della versione API 2022-03-29 o successiva:
curl -X PUT \
"$vpc_api_endpoint/v1/security_groups/$security_group_id/targets/$id?version=2022-03-29&generation=2" \
-H "Authorization: Bearer $iam_token"
I seguenti esempi confrontano come rimuovere un'interfaccia di rete da un gruppo di protezione prima e dopo la modifica della versione di 2022-03-29.
Specifica della versione API 2022-03-28 o precedente:
curl -X DELETE \
"$vpc_api_endpoint/v1/security_groups/$security_group_id/network_interfaces/$id?version=2022-03-28&generation=2" \
-H "Authorization: Bearer $iam_token"
Specifica della versione API 2022-03-29 o successiva:
curl -X DELETE \
"$vpc_api_endpoint/v1/security_groups/$security_group_id/targets/$id?version=2022-03-29&generation=2" \
-H "Authorization: Bearer $iam_token"
Operazioni modificate
Indirizzi IP
La tabella seguente elenca le operazioni in cui il primary_ipv4_address cambiato in primary_ip negli organismi di richiesta, negli organismi di risposta o in entrambi. Un periodo (.) indica che primary_ipv4_address è stato modificato in primary_ip nello schema di risposta di primo livello.
| Metodo | Percorso | Proprietà di richiesta modificate | Proprietà di risposta modificate |
|---|---|---|---|
GET |
/bare_metal_servers |
.bare_metal_servers[].network_interfaces[], .bare_metal_servers[].primary_network_interface |
|
POST |
/bare_metal_servers |
.network_interfaces[], primary_network_interface |
.network_interfaces[], .primary_network_interface |
GET |
/bare_metal_servers/{id} |
.network_interfaces[], .primary_network_interface |
|
PATCH |
/bare_metal_servers/{id} |
.network_interfaces[], .primary_network_interface |
|
GET |
/bare_metal_servers/{id}/network_interfaces |
.network_interfaces[] |
|
POST |
/bare_metal_servers/{id}/network_interfaces |
. |
. |
GET |
/bare_metal_servers/{bare_metal_server_id}/network_interfaces/{id} |
. |
|
GET |
/bare_metal_servers/{bare_metal_server_id}/network_interfaces/{id}/floating_ips |
.floating_ips[].target |
|
GET |
/bare_metal_servers/{bare_metal_server_id}/network_interfaces/{network_interface_id}/floating_ips/{id} |
.target |
|
PUT |
/bare_metal_servers/{bare_metal_server_id}/network_interfaces/{network_interface_id}/floating_ips/{id} |
.target |
|
GET |
/floating_ips |
.floating_ips[].target |
|
POST |
/floating_ips |
.target |
|
GET |
/floating_ips/{id} |
. |
|
PATCH |
/floating_ips/{id} |
. |
|
GET |
/instance/templates |
.templates[].network_interfaces[], .templates[].primary_network_interface |
|
POST |
/instance/templates |
.network_interfaces[], primary_network_interface |
.network_interfaces[], .primary_network_interface |
GET |
/instance/templates/{id} |
.network_interfaces[], .primary_network_interface |
|
PATCH |
/instance/templates/{id} |
.network_interfaces[], .primary_network_interface |
|
GET |
/instances |
.instances[].network_interfaces[], .instances[].primary_network_interface |
|
POST |
/instances |
.network_interfaces[], primary_network_interface |
.network_interfaces[], .primary_network_interface |
GET |
/instances/{id} |
.network_interfaces[], .primary_network_interface |
|
PATCH |
/instances/{id} |
.network_interfaces[], .primary_network_interface |
|
GET |
/instances/{id}/network_interfaces |
.network_interfaces[] |
|
POST |
/instances/{id}/network_interfaces |
. |
. |
GET |
/instances/{instance_id}/network_interfaces/{id} |
. |
|
GET |
/instances/{instance_id}/network_interfaces/{id}/floating_ips |
.floating_ips[].target |
|
GET |
/instances/{instance_id}/network_interfaces/{network_interface_id}/floating_ips/{id} |
.target |
|
PUT |
/instances/{instance_id}/network_interfaces/{network_interface_id}/floating_ips/{id} |
.target |
|
GET |
/vpcs/{id}/default_security_group |
.network_interfaces[] |
Associazioni di gruppo di sicurezza
La seguente tabella elenca i metodi o le proprietà che sono stati rimossi come parte del completamento della migrazione alle destinazioni del gruppo di sicurezza.
| Metodo | Percorso | Proprietà di richiesta modificate | Proprietà di risposta modificate |
|---|---|---|---|
GET |
/security_groups |
.security_groups[].network_interfaces |
|
GET |
/security_groups/{id}/network_interfaces |
||
DELETE |
/security_groups/{security_group_id}/network_interfaces/{id} |
||
GET |
/security_groups/{security_group_id}/network_interfaces/{id} |
||
PUT |
/security_groups/{security_group_id}/network_interfaces/{id} |