Aktualisierung auf die 2022-03-29-Version (Netzschnittstellen, Sicherheitsgruppen)
Wie im Abschnitt Versionierung beschrieben, sind die meisten Änderungen an den VPC-APIs vollständig kompatibel mit früheren Versionen und stehen daher allen Clients
zur Verfügung, unabhängig davon, welche API-Version der Client anfordert. Die Veröffentlichung 2022-03-29 der VPC-API machte jedoch inkompatible Änderungen zur Unterstützung der Funktion für reservierte IP-Adressen erforderlich:
- IP-Adressen werden jetzt als Objekte (Ressourcen) modelliert und nicht als Zeichenfolgen.
- Sicherheitsgruppen werden jetzt Zielen zugeordnet und nicht Netzschnittstellen.
Wenn Ihre Kunden weiterhin die Version oder 2022-03-28 eine frühere Version der VPC-API angeben, sind keine Änderungen erforderlich, allerdings können diese Kunden weiterhin nicht in vollem Umfang von reservierten IP-Adressen profitieren.
Weitere Informationen zu reservierten Adressen finden Sie unter IP-Adressen verwalten.
Auch wenn Sie nicht vorhaben, reservierte IP-Adressen zu verwenden, lesen und befolgen Sie die Handlungsbedarf Abschnitt, bevor Ihr Client eine Version angibt 2022-03-29 oder später.
Die VPC-Metadaten-API unterstützt noch keine reservierten IP-Adressen. Für Clients, die die API für Metadaten verwenden, sind keine Änderungen erforderlich, damit Version 2022-03-29 oder höher
verwendet werden kann.
Erforderliche Aktion
Bevor der Client eine Version angibt 2022-03-29 oder später, befolgen Sie diese Schritte, um Einschränkungen der Clientfunktionalität zu vermeiden.
Verwendung von IP-Adressen migrieren
Bevor Sie einen Client auf eine API-Version migrieren 2022-03-29 oder später, überprüfen Sie Ihren Code auf die Verwendung der primary_ipv4_address Eigentum. Wie in der Beispiele, ab Version
2022-03-29, Die primary_ipv4_address Die Zeichenfolgeeigenschaft wird ersetzt durch die primary_ip Objekteigenschaft, die eine address Untereigenschaft. Daher müssen Sie alle Vorkommen
von primary_ipv4_address in ersetzen, und zwar in primary_ip.address der für Ihre Programmiersprache geeigneten Weise.
Während primary_ipv4_address nur in den NetworkInterface-, NetworkInterfaceReference-und NetworkInterfacePrototype-Schemas (und ihren eng verwandten BareMetalNetworkInterface-Schemas)
angezeigt wird, werden diese Schemas in der VPC-API umfassend verwendet. Obwohl sich die inkompatible Änderung auf die Eigenschaft primary_ipv4_address beschränkte, waren daher viele Operationen davon betroffen. Eine vollständige
Liste finden Sie unter Geänderte Operationen.
Verwendung von Sicherheitsgruppenzuordnungen migrieren
Als Bestandteil des Release 2021-02-23 wurden Zielmethoden für Sicherheitsgruppen verfügbar gemacht und die ursprünglichen spezifischen Methoden für Netzschnittstellen,
wurden nicht weiter unterstützt. In API-Version 2022-03-29 wird die Unterstützung für diese veralteten Methoden entfernt. Wie unter Beispiele gezeigt, enthalten die Zielmethoden der Sicherheitsgruppe
die Funktionalität der veralteten Methoden. Sicherheitsgruppenziele ermöglichen auch die Zuordnung von Sicherheitsgruppen zu anderen VPC-Ressourcen (z. B. Endpunktgateways und Lastausgleichsfunktionen).
Von den veralteten Methoden GET und PUT wurden NetworkInterface-Antwortschemas zurückgegeben. Die neuen Methoden GET und PUT geben jedoch NetworkInterfaceReference-Antwortschemas
zurück. Wenn Ihr Client über die Eigenschaften in NetworkInterfaceReference hinaus auf Eigenschaften zugegriffen hat, muss Ihr Client GET /instances/{instance_id}/network_interfaces/{id} aufrufen, um diese Eigenschaften
separat abzurufen.
Wenn Ihr Client zuvor auf die Eigenschaft network_interfaces[] zugegriffen hat, die von GET /security_groups zurückgegeben wird, muss er außerdem auf die Eigenschaft targets[] zugreifen. Wenn Ihr Client
über die Eigenschaften in NetworkInterfaceReference hinaus auf Eigenschaften in network_interfaces[] zugegriffen hat, müssen Sie GET /instances/{instance_id}/network_interfaces/{id} aufrufen, um diese
Eigenschaften separat abzurufen.
Beispiele
In diesen Beispielen werden die Unterschiede vor und nach der versionsgesteuerten Änderung von 2022-03-29 verglichen.
Beispiele für IP-Adressen
In den folgenden Beispielen wird dargestellt, wie ein Aufruf POST /instances zum Bereitstellen einer Instanz mit einer bestimmten IP-Adresse in der zugehörigen primären Netzschnittstelle vor bzw. nach der versionsgesteuerten Änderung
von 2022-03-29 ausgeführt wurde bzw. wird, und wie die betreffende IP-Adresse abgerufen wird.
API-Version 2022-03-28 oder niedriger angeben:
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"'"}
}'
So wird die Adresse abgerufen:
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'
API-Version 2022-03-29 oder höher angeben:
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"'"}
}'
So wird die Adresse abgerufen:
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'
In den folgenden Beispielen wird dargestellt, wie ein Aufruf POST /instances/{id}/network_interface zum Erstellen einer neuen Netzschnittstelle in einer vorhandenen Instanz mit einer bestimmten IP-Adresse vor bzw. nach der versionsgesteuerten
Änderung von 2022-03-29 ausgeführt wurde bzw. wird, und wie die Adresse abgerufen wird.
API-Version 2022-03-28 oder niedriger angeben:
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"'"}
}'
So wird die Adresse abgerufen:
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'
API-Version 2022-03-29 oder höher angeben:
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"'"}
}'
So wird die Adresse abgerufen:
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'
In den Beispielen wird jq als Parser ein Drittanbieter-Tool verwendet, das unter der MIT-Lizenz lizenziert ist. Einige Betriebssysteme enthalten dies standardmäßig jq nicht. Installieren Sie diese vor jq der Verwendung oder verwenden Sie einen anderen JSON-Parser.
Beispiele für Sicherheitsgruppenzuordnungen
In den folgenden Beispielen wird dargestellt, wie eine Netzschnittstelle vor bzw. nach der versionsgesteuerten Änderung von 2022-03-29 in eine Sicherheitsgruppe eingefügt wurde bzw. wird.
API-Version 2022-03-28 oder niedriger angeben:
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"
API-Version 2022-03-29 oder höher angeben:
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"
In den folgenden Beispielen wird dargestellt, wie eine Netzschnittstelle vor bzw. nach der versionsgesteuerten Änderung von 2022-03-29 aus einer Sicherheitsgruppe entfernt wurde bzw. wird.
API-Version 2022-03-28 oder niedriger angeben:
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"
API-Version 2022-03-29 oder höher angeben:
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"
Geänderte Operationen
IP-Adressen
In der folgenden Tabelle sind die Vorgänge aufgeführt, bei denen die primary_ipv4_address gewechselt zu primary_ip in den Anforderungstexten, Antworttexten oder beiden. Ein Punkt (.) gibt an, dass primary_ipv4_address im Antwortschema der höchsten Ebene in primary_ip geändert wurde.
| Methode | Pfad | Geänderte Anforderungseigenschaften | Geänderte Antworteigenschaften |
|---|---|---|---|
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[] |
Sicherheitsgruppenzuordnungen
In der folgenden Tabelle sind die Methoden oder Eigenschaften aufgeführt, die im Rahmen der vollständigen Umstellung auf Sicherheitsgruppen-Ziele entfernt wurden.
| Methode | Pfad | Geänderte Anforderungseigenschaften | Geänderte Antworteigenschaften |
|---|---|---|---|
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} |