Wie Sie die STACKIT RabbitMQ API verwenden
In diesem Tutorial lernen Sie, wie Sie Service-Instanzen und Anmeldedaten in Ihrem STACKIT Portal Projekt mit Hilfe der STACKIT RabbitMQ API verwalten können.
Sie können Sie auch unsere STACKIT CLI verwenden, mehr Informationen finden Sie hier https://github.com/stackitcloud/stackit-cli
Voraussetzungen
Um den hier beschriebenen Schritten folgen zu können, müssen folgende Bedingungen erfüllt sein:
- Ihre Organisation verfügt über ein Kundenkonto.
(Siehe: Erstellung STACKIT Kundenkonto) - Sie haben ein Benutzerkonto mit den erforderlichen Berechtigungen.
(Siehe: Erstellen eines Benutzerkontos, Identity und Access Management) - Sie haben ein Projekt in Ihrem Kundenkonto.
(Siehe: Projekt erstellen)
- Sie haben ein Dienstkonto erstellt.
(Siehe: Erstellen eines Dienstkontos) - Sie haben diesem Dienstkonto die erforderlichen Projektberechtigungen zugewiesen.
(Siehe: Berechtigungen für ein Dienstkonto zuweisen) - Sie haben einen Zugriffstoken für dieses Dienstkonto erstellt.
(Siehe: Zugriffstoken einem Dienstkonto zuweisen)
- Sie können cURL verwenden, ein Kommandozeilentool und eine Bibliothek zur Übertragung von Daten mit URL-Syntax.
(Siehe: cURL-Webseite) - Sie können jq verwenden, einen JSON-Kommandozeilenprozessor.
(Siehe: jq-Webseite)
Nutzung der API mit curl
Get service offerings
API call
curl --location --request GET 'https://rabbitmq.api.eu01.stackit.cloud/v1/projects/{{projectId}}/offerings' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}' | jq .
{{projectId}} | ProjectId kann über das STACKIT-Portal abgerufen werden, indem Sie zu Ihrem Dashboard des Projekts im Abschnitt "Übersicht" in der Seitenleiste navigieren. |
{{token}} | Der Zugriffstoken Ihres Dienstkontos. |
Excerpt of the API response
{
"offerings": [
{
"description": "RabbitMQ is a fully managed multi-protocol messaging broker.",
"imageUrl": "data:image/png;base64,iVBOR ..",
"quotaCount": 2,
"latest": true,
"name": "RabbitMQ 3.7",
"plans": [
{
"description": "3 Nodes, 2 vCPUs, 8 GB RAM, 20 GB Disk",
"id": "da5aeea5-3418-4622-8f1c-79cbbb319ea7",
"name": "stackit-rabbitmq-cluster-medium",
"free": false
},
{
"description": "1 Node, 2 vCPUs, 8 GB RAM, 20 GB Disk",
"id": "4e7dcd06-13f0-4e4d-9c2b-6b057d166e1d",
"name": "stackit-rabbitmq-single-medium",
"free": false
},
{
"description": "3 Nodes, 4 vCPUs, 16 GB RAM, 50 GB Disk",
"id": "da71bff9-7bfc-4d31-b97c-dc107883a10e",
"name": "stackit-rabbitmq-cluster-big",
"free": false
},
{
"description": "3 Nodes, 2 vCPUs, 4 GB RAM, 10 GB Disk",
"id": "066050c3-c8c5-4fcb-864a-847b39d7d7d2",
"name": "stackit-rabbitmq-cluster-small",
"free": false
},
{
"description": "1 Node, 2 vCPUs, 4 GB RAM, 10 GB Disk",
"id": "4bc417ff-cb98-4064-bb56-8a2654120768",
"name": "stackit-rabbitmq-single-small",
"free": true
}
]
..
}
]
}
Create service instance
API call
curl --location --request POST 'https://rabbitmq.api.eu01.stackit.cloud/v1/projects/{{projectId}}/instances' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}' \
--data-raw '{
"planId": "{{planId}}",
"instanceName": "{{service_instance_name}}",
"parameters": {"sgw_acl": "{{ip_list}}"}
}'
{{planId}} | Service planId des Serviceangebots, das Sie bestellen möchten. Siehe vorheriger API-Aufruf 'Get service offerings'. Zum Beispiel: planId für "stackit-rabbitmq-single-small" lautet "4bc417ff-cb98-4064-bb56-8a2654120768" |
{{service_instance_name}} | Wählen Sie einen aussagekräftigen Namen für Ihre Instanz. |
{{ip_list}} | Durch Kommata getrennte Liste der IP-Netze in CIDR-Notation, die auf diese Instanz zugreifen dürfen. Beispiel: 193.148.160.0/19,45.129.40.0/21 |
API response
InstanceId der erstellten Service-Instanz, erforderlich für weitere API-Aufrufe.
Beispiel:
{
"instanceId": "bf743502-edcc-4e1f-a821-70a5f937cb3e"
}
Get service instance by instanceId
API call
curl --location --request GET 'https://rabbitmq.api.eu01.stackit.cloud/v1/projects/{{projectId}}/instances/{{instanceId}}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}' | jq .
{{instanceId}} | Verwenden Sie instanceId aus dem vorherigen API-Aufruf oder rufen Sie die Liste aller Service-Instanzen mittels 'get service instances list' |
Delete service instance
API call
curl --location --request DELETE 'https://rabbitmq.api.eu01.stackit.cloud/v1/projects/{{projectId}}/instances/{{instanceId}}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}'
Create service credentials
API call
curl --location --request POST 'https://rabbitmq.api.eu01.stackit.cloud/v1/projects/{{projectId}}/instances/{{instanceId}}/credentials' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}' | jq .
Example of API response
{
"id": "8616db96-989f-4b20-8f46-b85ec61b756f",
"uri": "amqps://a9s*****:*****@rad149c11-1.data.eu01.onstackit.cloud:49644",
"raw": {
"credentials": {
"port": 49644,
"username": "a9s*****",
"password": "*****",
"hosts": [
"rad149c11-mq-0-0.data.eu01.onstackit.cloud"
],
"host": "rad149c11-1.data.eu01.onstackit.cloud",
"uri": "amqps://a9s*****:*****@rad149c11-1.data.eu01.onstackit.cloud:49644",
"http_api_uri": "https://a9s*****:*****@rad149c11-2.data.eu01.onstackit.cloud:49645/api/",
"http_api_uris": [
"https://a9s*****:*****@rad149c11-mq-0-3.data.eu01.onstackit.cloud:49646/api/"
]
},
"routeServiceUrl": "",
"syslogDrainUrl": ""
}
}
Einfacherer Umgang mit API-Calls
Sie können ein API-Test- und Entwicklungstools verwenden, um die Arbeit mit der API komfortabler zu machen.
Beispiele sind:
- Postman (https://de.postman.com/)
- Thunderclient (https://de.thunderclient.com/)
- Insomnia (https://insomnia.rest/)
oder ein beliebiges anderes. Die meisten Tools unterstützen den Import der OpenAPI-Spezifikation.