Heim >Technologie-Peripheriegeräte >KI >AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

Christopher Nolan
Christopher NolanOriginal
2025-03-10 11:32:09214Durchsuche

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.

Lernziele

  • Erfahren Sie, wie Sie das Management der Cloud -Infrastruktur mit AWS -CloudFormation mithilfe der Infrastruktur als Code (IAC) vereinfachen.
  • Verstehen Sie, wie Docker- und Github -Aktionen in die AWS -CloudFormation für die Bereitstellung von Anwendungen integriert werden.
  • Erforschen Sie ein Beispielprojekt, das die Erzeugung der Python-Dokumentation mit AI-Tools wie Langchain und GPT-4 automatisiert.
  • Erfahren Sie, wie Sie Anwendungen mit Docker containerieren, die Bereitstellung mit GitHub -Aktionen automatisieren und über AWS CloudFormation bereitstellen.
  • Verstehen Sie, wie Sie AWS -Ressourcen wie EC2-, ECR- und Sicherheitsgruppen mit CloudFormation -Vorlagen einrichten und verwalten.

Dieser Artikel wurde als Teil des Data Science -Blogathon veröffentlicht.

Inhaltsverzeichnis

  • Was ist AWS Cloud-Bildung? Manager
  • Schlussfolgerung
  • Häufig gestellte Fragen
  • Was ist AWS Cloud-Formation?
  • in der Welt des Cloud -Computing ist die effiziente Verwaltung der Infrastruktur von entscheidender Bedeutung. AWS CloudFormation kommt also ins Bild, was es einfacher macht, Ihre Cloud -Ressourcen einzurichten und zu verwalten. Sie können alles definieren, was Sie benötigen - Server, Speicher und Vernetzung in einer einfachen Datei.
  • AWS CloudFormation ist ein Dienst, mit dem Sie Ihre Cloud -Ressourcen mithilfe von Vorlagen in YAML oder JSON definieren und verwalten können. Stellen Sie sich vor, dass es eine Blaupause für Ihre Infrastruktur erstellt. Sobald Sie diese Blaupause übergeben, kümmert sich CloudFormation darauf, alles Schritt für Schritt genau wie Sie beschrieben zu haben.
  • Infrastruktur als Code (IAC) ist wie das Umwandeln Ihrer Cloud in etwas, das Sie mit nur wenigen Codezeilen erstellen, wieder aufbauen und sogar verbessern können. Kein manuelles Klicken mehr, keine Vermutungen mehr - nur konsistente, zuverlässige Bereitstellungen, die Ihnen Zeit sparen und Fehler reduzieren.

BeispielprojektPraktische Implementierung: Ein praktisches Projektbeispiel

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

Dokumentation aus Code

generieren

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.

Flask -API -Integration

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.

AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

Dockieren der Anwendung

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.

Erstellung von Docker komponieren

Wir erstellen die Docker -Datei. Die Docker -Datei ist dafür verantwortlich, unsere jeweiligen Container

zu spinnen
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

Docker komponieren

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ühren
version: '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.

AWS-Dienste für Cloud-Formation Stack

erstellen

AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

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!

    Stellen Sie sich CloudFormation als ein einfaches Bedienungsanweis für AWS vor. Dieses Handbuch, das als "Vorlage" bezeichnet wird, sagt AWS zu:
  • Starten Sie die für das Projekt erforderlichen Server.
  • Ziehen Sie die Containerbilder des Projekts aus dem ECR -Speicher -Repository.
Stellen Sie alle anderen Abhängigkeiten und Konfigurationen ein, die für das Projekt ausgeführt werden müssen.

Durch die Verwendung dieses automatisierten Setups muss ich nicht jedes Mal, wenn ich das Projekt bereitstellt oder aktualisiere, die gleichen Schritte wiederholen - alles wird automatisch von AWS durchgeführt.

Cloud-Bildungsvorlage

docker-compose up –build#import csv
AWS 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.

    Als nächstes erstellen wir eine EC2 -Instanz. Wir werden wesentliche Richtlinien damit hinzufügen, hauptsächlich für die Interaktion mit dem ECR- und AWS Secrets Manager. Darüber hinaus fügen wir eine Sicherheitsgruppe zum Steuerung des Netzwerkzugriffs bei. Für dieses Setup werden wir uns öffnen:
  • Port 22 für SSH -Zugriff.
  • Port 80 für HTTP -Zugriff.
Port 5000 für Backend Application Access.

at2.microinstance wird verwendet, und im Inneren der Datenerstellung definieren wir die Anweisungen, um die Instanz zu konfigurieren:
  • Installieren Sie die erforderlichen Abhängigkeiten wie Python, Boto3 und Docker.
  • Zugriffsgeheimnisse in AWS Secrets Manager gespeichert und speichern Sie sie in einer config.py -Datei.
  • Melden Sie sich bei ECR an, ziehen Sie das Docker -Bild an und führen Sie es mit Docker aus.

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.

Hochladen und Speichern von Geheimnissen in AWS Secret Manager

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.

AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

GitHub -Aktionen erstellen

AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

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

speichern die Geheimnisse in Github

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.

AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

Initiieren des Workflows

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:

  • Wir ziehen den Code aus dem Repository und richten AWS -Anmeldeinformationen mit den in Github gespeicherten Geheimnissen ein.
  • Anmelden wir uns bei ECR an und erstellen/schieben Sie das Docker -Bild der Anwendung.
  • Wir überprüfen, ob ein vorhandener CloudFormation -Stapel mit demselben Namen vorhanden ist. Wenn ja, löschen Sie es.
  • Schließlich verwenden wir die CloudFormation -Vorlage, um die Ressourcen zu starten und alles einzurichten.

testen

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.

AWS CloudFormation: Vereinfachung der Cloud -Bereitstellungen

Schlussfolgerung

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.

Key Takeaways

  • AWS CloudFormation vereinfacht das Cloud -Ressourcenmanagement mit der Infrastruktur als Code.
  • Docker-Container rationalisieren die Anwendungsbereitstellung auf der AWS-verwalteten Infrastruktur.
  • GitHub -Aktionen automatisiert Build- und Bereitstellungspipelines für die nahtlose Integration.
  • Langchain und GPT-4 verbessern die Automatisierung der Python-Dokumentation in Projekten.
  • kombiniert IAC, Docker und CI/CD erzeugen skalierbare, effiziente und moderne Workflows.

häufig gestellte Fragen

Q1. Was ist AWS CloudFormation?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn