Heim >Technologie-Peripheriegeräte >KI >AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen
In diesem Artikel werden wir untersuchen, wie AWS CloudFormation das Einrichten und Verwalten der Cloud -Infrastruktur vereinfacht. Anstatt manuell Ressourcen wie Server oder Datenbanken zu erstellen, können Sie Ihre Anforderungen in einer Datei aufschreiben, und CloudFormation macht das starke Anheben für Sie. Dieser Ansatz, der als Infrastruktur als Code (IAC) bekannt ist, spart Zeit, reduziert Fehler und stellt sicher, dass alles konsistent ist.
Wir werden auch untersuchen, wie Docker- und Github -Aktionen in den Prozess passen. Docker erleichtert das Verpacken und Ausführen Ihrer Anwendung, während GitHub -Aktionen Aufgaben wie Tests und Bereitstellung automatisieren. Zusammen mit CloudFormation erstellen diese Tools einen leistungsstarken Workflow zum Erstellen und Bereitstellen von Anwendungen in der Cloud.
Dieser Artikel wurde als Teil des Data Science -Blogathon veröffentlicht.
InhaltsverzeichnisStrophencodendokumentation mit AI: Das Projekt zur Erzeugung von Dokumenten:
Um die Cloud -Bildung zu starten, benötigen wir ein Beispielprojekt, um es in AWS bereitzustellen.
Ich habe bereits ein Projekt mit Lang-Chain und Open AI GPT-4 erstellt. Lassen Sie uns über dieses Projekt diskutieren, dann werden wir uns darüber ansehen, wie dieses Projekt mithilfe der Cloud -Bildung in AWS bereitgestellt wird.
GitHub-Code-Link: https://github.com/harshitha-gh/cloudFormation
In der Welt der Softwareentwicklung spielt die Dokumentation eine wichtige Rolle bei der Sicherstellung, dass Codebasen verständlich und wartbar sind. Das Erstellen einer detaillierten Dokumentation ist jedoch häufig eine zeitaufwändige und langweilige Aufgabe. Aber wir sind Techniker, wir wollen Automatisierung in allem. Um ein Projekt in AWS mithilfe von CloudFormation bereitzustellen, habe ich ein Automatisierungsprojekt mit AI (Lang-Chain und Open AI GPT-4) entwickelt, um das Projekt für Dokumentengenerierung zu erstellen-eine innovative Lösung, die AI zum Automatisieren des Dokumentationsprozesses für Python-Code verwendet.
Hier finden Sie eine Aufschlüsselung darüber, wie wir dieses Tool erstellt haben, und die Auswirkungen, die es zu erzeugen soll. Um dieses Projekt zu erstellen, folgen wir ein paar Schritte.
Bevor wir ein neues Projekt starten, müssen wir eine Python -Umgebung erstellen, um alle erforderlichen Pakete zu installieren. Dies hilft uns, die erforderlichen Pakete aufrechtzuerhalten.
Ich habe eine Funktion geschrieben, um die Eingabedatei zu analysieren, die normalerweise eine Python -Datei als Eingabe nimmt und die Namen aller Funktionen druckt.
Sobald die Funktionsdetails extrahiert werden, besteht der nächste Schritt darin, sie in das GPT-4-Modell von OpenAI zu versetzen, um eine detaillierte Dokumentation zu generieren. Mit Lang-Chain erstellen wir eine Eingabeaufforderung, die die Aufgabe erklärt, die GPT-4 ausführen soll.
prompt_template = PromptTemplate( input_variables=["function_name", "arguments", "docstring"], template=( "Generate detailed documentation for the following Python function:\n\n" "Function Name: {function_name}\n" "Arguments: {arguments}\n" "Docstring: {docstring}\n\n" "Provide a clear description of what the function does, its parameters, and the return value." ) )#import csv
Mit Hilfe dieser Eingabeaufforderung nimmt die DOC-Generatorfunktion die analysierten Details und generiert eine vollständige, menschlich lesbare Erklärung für jede Funktion.
Um das Tool benutzerfreundlich zu gestalten, habe ich eine Flask-API erstellt, in der Benutzer Python-Dateien hochladen können. Die API analysiert die Datei, generiert die Dokumentation mit GPT-4 und gibt sie im JSON-Format zurück.
Wir können diese Flask -API mit dem Postboten testen, um unsere Ausgabe zu überprüfen.
Um in AWS bereitzustellen und unsere Anwendung zu verwenden, müssen wir unsere Anwendung mithilfe von Docker Containerisieren und dann mit GitHub -Aktionen verwenden, um den Bereitstellungsprozess zu automatisieren. Wir werden AWS CloudFormation für die Automatisierung in AWS verwenden. In Bezug auf die Service werden wir die Registrierung von Elastic Container verwenden, um unsere Container und EC2 für die Bereitstellung unserer Anwendung zu speichern. Lassen Sie uns diesen Schritt für Schritt sehen.
Wir erstellen die Docker -Datei. Die Docker -Datei ist dafür verantwortlich, unsere jeweiligen Container
zu spinnenprompt_template = PromptTemplate( input_variables=["function_name", "arguments", "docstring"], template=( "Generate detailed documentation for the following Python function:\n\n" "Function Name: {function_name}\n" "Arguments: {arguments}\n" "Docstring: {docstring}\n\n" "Provide a clear description of what the function does, its parameters, and the return value." ) )#import csv
Sobald Docker -Dateien erstellt wurden, werden wir eine Docker -Komponierungsdatei erstellen, die den Container aufdreht.
# Use the official Python 3.11-slim image as the base image FROM python:3.11-slim # Set environment variables to prevent Python from writing .pyc files and buffering output ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 # Set the working directory inside the container WORKDIR /app # Install system dependencies required for Python packages and clean up apt cache afterwards RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ libffi-dev \ libpq-dev \ python3-dev \ build-essential \ && rm -rf /var/lib/apt/lists/* # Copy the requirements file to the working directory COPY requirements.txt /app/ # Upgrade pip and install Python dependencies without cache RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Copy the entire application code to the working directory COPY . /app/ # Expose port 5000 for the application EXPOSE 5000 # Run the application using Python CMD ["python", "app.py"]#import csv
Sie können dies testen, indem Sie den Befehl
ausführenversion: '3.8' services: app: build: context: . dockerfile: Dockerfile ports: - "5000:5000" volumes: - .:/app environment: - PYTHONDONTWRITEBYTECODE=1 - PYTHONUNBUFFERED=1 command: ["python", "app.py"]#import csv
Nachdem der Befehl erfolgreich ausgeführt wird, funktioniert der Code genau wie zuvor.
Ich erstelle ein ECR -Repository. Abgesehen davon werden wir später GitHub -Aktionen durchführen, um alle unsere anderen erforderlichen Dienste zu erstellen.
Das Repository, das ich erstellt habe, hat den Namespace Cloud_formation Repo -Name Asdemo. Dann werde ich mit TheCloudFormationTemplate, einer YAML -Datei, die beim Spenden der erforderlichen Instanz und der Ausnahme der Bilder aus ECR und anderen Ressourcen fortfahren.
.
.Anstatt Server manuell einzurichten und alles zu verbinden, wird AWS CloudFormation verwendet, um Cloud -Ressourcen (wie Server oder Datenbanken) automatisch ein Skript einzurichten und zu verwalten. Es ist wie eine Blaupause, Ihre Cloud -Sachen aufzubauen und zu organisieren, ohne es manuell zu tun!
Cloud-Bildungsvorlage
docker-compose up –build#import csvAWS CloudFormation Templates sind deklarative JSON- oder YAML -Skripte, die die Ressourcen und Konfigurationen beschreiben, die zur Einrichtung Ihrer Infrastruktur in AWS erforderlich sind. Sie ermöglichen es Ihnen, Ihre Infrastruktur als Code zu automatisieren und zu verwalten, um Konsistenz und Wiederholbarkeit in allen Umgebungen zu gewährleisten.
dekodieren wir die aktualisierte Vorlage Schritt für Schritt:
Wir definieren eine einzige ECR -Ressource, die das Repository ist, in dem unser Docker -Bild gespeichert ist.
at2.microinstance wird verwendet, und im Inneren der Datenerstellung definieren wir die Anweisungen, um die Instanz zu konfigurieren:
Da nur ein Docker -Container verwendet wird, vereinfacht diese Konfiguration den Bereitstellungsprozess und stellt sicher, dass der Backend -Dienst zugänglich und ordnungsgemäß konfiguriert ist.
Bis jetzt haben wir die Geheimnisse wie offener KI -Schlüssel in der Datei config.py gespeichert. Wir können diese Datei jedoch nicht nach GitHub drücken, da sie die Sektion enthält. Wir verwenden also AWS Secrets Manager, um unsere Geheimnisse zu speichern und sie dann über unsere CloudFormation -Vorlage abzurufen.
Bis jetzt haben wir die Geheimnisse wie offener KI -Schlüssel in der Datei config.py gespeichert. Wir können diese Datei jedoch nicht nach GitHub drücken, da sie die Sektion enthält. Wir verwenden also AWS Secrets Manager, um unsere Geheimnisse zu speichern und sie dann über unsere CloudFormation -Vorlage abzurufen.
GitHub -Aktionen werden verwendet, um Aufgaben wie Testcode zu automatisieren, Apps zu erstellen oder Projekte bereitzustellen, wenn Sie Änderungen vornehmen. Es ist so, als würde man einen Roboter einrichten, um sich wiederholte Arbeiten für Sie zu erledigen!
Unsere Hauptabsicht ist hier, dass die Bereitstellung für AWS automatisch starten sollte, wenn wir zu einem bestimmten Zweig von Github drängen. Dazu wählen wir "Main'Branch".
Melden Sie sich in Ihrem Github an und folgen Sie dem folgenden Pfad:
repository & gt; Einstellungen & GT; Geheimnisse und Variablen & gt; Aktionen
Dann müssen Sie Ihre von Ihrem AWS -Konto extrahierten AWS -Geheimnisse hinzufügen, wie im folgenden Bild.
Nach dem Speichern erstellen wir einen .github -Ordner und darin einen Workflows -Ordner. Im Ordner Workflows fügen wir eine Bereitstellung hinzu.yaml -Datei.
prompt_template = PromptTemplate( input_variables=["function_name", "arguments", "docstring"], template=( "Generate detailed documentation for the following Python function:\n\n" "Function Name: {function_name}\n" "Arguments: {arguments}\n" "Docstring: {docstring}\n\n" "Provide a clear description of what the function does, its parameters, and the return value." ) )#import csv
Hier ist eine vereinfachte Erklärung des Flusses:
Sobald alles bereitgestellt ist, notieren Sie die IP -Adresse der Instanz und rufen Sie es dann mit Postman an, um zu überprüfen, ob alles gut funktioniert.
In diesem Artikel haben wir untersucht, wie AWS CloudFormation verwendet wird, um die Cloud -Infrastrukturverwaltung zu vereinfachen. Wir haben gelernt, wie man ein ECR -Repository erstellt, eine dockerisierte Anwendung in der EC2 -Instanz bereitstellt und den gesamten Prozess mithilfe von GitHub -Aktionen für CI/CD automatisiert. Dieser Ansatz spart nicht nur Zeit, sondern gewährleistet auch Konsistenz und Zuverlässigkeit in den Bereitstellungen.
a. AWS CloudFormation ist ein Dienst, mit dem Sie AWS -Ressourcen mithilfe von Infrastruktur als Code (IAC) modellieren und bereitstellen können.
Q2. Wie integriert sich Docker in AWS CloudFormation?a. Docker -Pakete Anwendungen in Container, die auf AWS -Ressourcen bereitgestellt werden können, die durch CloudFormation verwaltet werden.
Q3. Welche Rolle spielt GitHub -Aktionen in diesem Workflow?a. GitHub -Aktionen automatisiert CI/CD -Pipelines, einschließlich Erstellen, Testen und Bereitstellen von Anwendungen für AWS.
Q4. Kann ich die Erzeugung der Python -Dokumentation mit Langchain automatisieren?a. Ja, Langchain und GPT-4 können Python-Dokumentation als Teil Ihres Workflows generieren und aktualisieren.
Q5. Was sind die Vorteile der Verwendung von IAC mit AWS -CloudFormation?a. IAC sorgt für ein konsequentes, wiederholbares und skalierbares Ressourcenmanagement in Ihrer Infrastruktur.
Die in diesem Artikel gezeigten Medien sind nicht im Besitz von Analytics Vidhya und wird nach Ermessen des Autors verwendet.
Das obige ist der detaillierte Inhalt vonAWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!