Blog
Wie man einen Slackbot auf der Google Cloud Platform in weniger als 5 Minuten erstellt und einsetzt

In diesem Blog zeige ich Ihnen, wie Sie mit der Kopiervorlage in weniger als 5 Minuten einen Slackbot auf der Google Cloud Platform erstellen und einsetzen können. Einen Bot für Slack zu schreiben, ist nicht allzu schwierig. Mit ein paar Zeilen Code können Sie ein Programm erstellen, das auf Slack-Befehle und Erwähnungen reagiert. Aber das ist der einfache Teil: Sie müssen die Anwendung auch in Slack konfigurieren, sie bereitstellen, damit sie 7×24 verfügbar ist, Unit-Tests schreiben und CI/CD-Bereitstellungspipelines erstellen und vieles mehr. Diese Kopiervorlage hat alles!
- erstellt er den Quellcode für Ihren Slackbot.
- stellt es die Terraform-Vorlagen für die Infrastruktur, die Anwendung und die CI/CD-Pipeline bereit.
- bietet es eine CI/CD-Pipeline mit Google CloudBuild zur Erstellung und Bereitstellung der Anwendung und der Infrastrukturänderungen.
Das bedeutet, dass Sie beginnen können, mit Ihrem Slackbot zu interagieren und die Implementierung iterativ zu verbessern, bis Sie den perfekten Bot haben.
einen Slackbot auf der Google Cloud Platform bereitstellen
Um Ihren Slackbot zu erstellen und einzusetzen, müssen Sie:
- das Quellverzeichnis erzeugen
- die Anwendung in Slack erstellen
- installieren Sie die Anwendung im Arbeitsbereich
- das Anwendungs-Token erhalten
- das Unterschriftsgeheimnis erhalten
- das OAuth-Token des Bot-Benutzers erhalten
- den Slackbot einsetzen
- die Token und Geheimnisse bereitstellen
- die CI/CD-Pipeline ausführen
In den folgenden Abschnitten werden die einzelnen Schritte ausführlich erläutert.
das Quellverzeichnis erzeugen
Nehmen wir an, Sie möchten einen Slackbot erstellen, der mit Dall-e Bilder erzeugt. Um das Quellverzeichnis zu erzeugen, geben Sie ein:
$ pip install copier
$ copier https://github.com/binxio/slackbot-on-google-cloud-platform-template.git /tmp/dali
> the human readable name of your slackbot
Salvador Dali
> a short description of the Slackbot
generates images on request
> the name of the package
salvador_dali_slackbot
> the slackbot command prefix
/dali
> Your full name?
Mark van Holsteijn
> Your email address?
mark.vanholsteijn@xebia.com
> the google project to deploy to
speeltuin-mvanholsteijn
> primary region to deploy the slackbot to
europe-west4
> the replica region for slackbot artifacts
europe-west1
> the artifact repository location to deploy the image to
europe
> name of the terraform state bucket
speeltuin-mvanholsteijn-terraform-state
Jetzt liegt der Quellcode in /tmp/dali bereit. Der Inhalt dieses Verzeichnisses sieht wie folgt aus:
.
├── src # bootstrap implementation
│ └── salvador_dali_slackbot
│ ├── __init__.py
│ ├── __main__.py
│ ├── bot.py
│ ├── google_secrets.py
│ └── manifest.yaml
├── tests # skaffold tests for bot functions
│ ├── test_command_help.py
│ └── test_mention_help.py
├── terraform # deployment definitions
│ ├── pipeline.tf
│ ├── slackbot.tf
│ ├── user-data.yaml
│ ├── variables.tf
│ └── versions.tf
│ ├── providers.tf
├── cloudbuild # CI/CD pipeline definitions
│ ├── build.yaml
│ └── deploy.yaml
├── secrets
├── Dockerfile
├── Makefile
├── Makefile.mk
├── Pipfile
├── pyproject.toml
├── setup.cfg
├── tox.ini
Wie Sie sehen, ist alles vorhanden, was Sie zum Erstellen, Verwalten und Bereitstellen eines Slackbots benötigen! Als nächstes müssen Sie die Anwendung in Slack erstellen.
Erstellen Sie die Anwendung in Slack
Um den Slackbot in Slack zu erstellen, können Sie das Anwendungsmanifest manifest.yaml verwenden, das Sie im generierten Quellverzeichnis finden. Kopieren Sie den Inhalt und gehen Sie zu api.slack.com/apps und klicken Sie auf "create app from manifest". 
Ihr nächster Schritt ist die Installation der Anwendung im Slack-Arbeitsbereich.
Installieren Sie die Anwendung im Arbeitsbereich
Nachdem Sie die Anwendung erstellt haben, können Sie sie in Ihrem Arbeitsbereich installieren. Das ist ganz einfach: Klicken Sie einfach auf die Schaltfläche und folgen Sie dem Ablauf.
Sobald die Anwendung installiert ist, müssen Sie das Anwendungstoken, das Signiergeheimnis und das Bot-Token erhalten.
Beschaffen Sie sich das Anwendungs-Token
Nachdem Sie die Anwendung installiert haben, scrollen Sie auf dem Bildschirm nach unten und generieren Sie ein Anwendungstoken mit dem Bereich connections:write.
Kopieren Sie das generierte App-Token in die Datei secrets/app-token.
Dieses Token wird später in einem Google secret manager secret abgelegt. Zuerst müssen Sie das Signiergeheimnis und das Bot-Token erhalten.
Beschaffen Sie sich das Signiergeheimnis der Anwendung
Um das Signiergeheimnis der Anwendung zu erhalten, navigieren Sie zu den Basisinformationen der Anwendung und kopieren das Signiergeheimnis in die Datei secrets/signing-secret.
Dieses Geheimnis wird später in ein Geheimnis des Google-Geheimdienstmanagers eingefügt. Das Bot-Token ist das letzte Geheimnis, das wir erhalten müssen, bevor wir den Bot einsetzen können.
Erhalten Sie das OAuth-Token des Bot-Benutzers
Um das OAuth-Token des Bot-Benutzers zu erhalten, navigieren Sie zu OAuth und Berechtigungen und kopieren das Token in die Datei secrets/bot-token.
Jetzt ist alles getan, um den Slackbot mit Terraform einzusetzen
den Slackbot einsetzen
Bevor wir den Slackbot auf Google Cloud Platform bereitstellen können, müssen Sie die verwendeten Dienste aktivieren und den Terraform-Speicher-Bucket erstellen. Typ:
$ make enable-services
$ make state-bucket
Jetzt sind Sie bereit, Terraform seine Arbeit tun zu lassen. Typ:
$ cd terraform
$ terraform init
$ terraform apply
Damit haben Sie alles, was Sie brauchen, aber der Bot wird noch nicht laufen. Die Token und Geheimnisse müssen als Google-Geheimnisse verfügbar gemacht werden.
die Token und Geheimnisse bereitstellen
Um die Token und Geheimnisse des Slackbots in die entsprechenden Google-Geheimnisse einzusetzen, geben Sie ein:
$ make configure-secrets
die CI/CD-Pipeline ausführen
Stellen Sie nun Ihre Änderungen im Git-Repository bereit. Dadurch wird ein Build des Container-Images und eine Bereitstellung des neu erstellten Images mit Google CloudBuild ausgelöst.
$ git push
Überprüfen Sie die Google CloudBuild-Protokolle Sobald der Build und die Bereitstellung abgeschlossen sind, ist Ihr Bot einsatzbereit! Sie können nun mit Ihrem Bot chatten und mit der Entwicklung der Funktionen beginnen.
Fazit
Diese Kopiervorlage bietet alles, was Sie brauchen, um schnell einen Slackbot auf der Google Cloud Platform zu erstellen, bereitzustellen und zu warten. Wenn Sie Fragen, Probleme oder Feedback haben, können Sie mich gerne kontaktieren. Sie können auch direkt Themen auf Github hinzufügen
Foto von Stephen Phillips - Hostreviews.co.uk auf Unsplash
Verfasst von

Mark van Holsteijn
Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.
Unsere Ideen
Weitere Blogs
Contact



