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:

  • 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 .
BASH
{{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
                }
            ]
        ..
        }
    ]
}
TEXT

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}}"}
}'
BASH
{{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"
}
TEXT

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 .
BASH
{{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}}'
BASH

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 .
BASH

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": ""
    }
}
TEXT

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:

oder ein beliebiges anderes. Die meisten Tools unterstützen den Import der OpenAPI-Spezifikation.

Weitere Informationen