Rumah > Peranti teknologi > AI > AWS CloudFormation: Memudahkan penyebaran awan

AWS CloudFormation: Memudahkan penyebaran awan

Christopher Nolan
Lepaskan: 2025-03-10 11:32:09
asal
220 orang telah melayarinya

Dalam artikel ini, kami akan meneroka bagaimana AWS CloudFormation memudahkan menubuhkan dan menguruskan infrastruktur awan. Daripada secara manual mencipta sumber seperti pelayan atau pangkalan data, anda boleh menuliskan keperluan anda dalam fail, dan CloudFormation melakukan mengangkat berat untuk anda. Pendekatan ini, yang dikenali sebagai infrastruktur sebagai kod (IAC), menjimatkan masa, mengurangkan kesilapan, dan memastikan semuanya konsisten.

Kami juga akan melihat bagaimana tindakan Docker dan GitHub sesuai dengan proses. Docker memudahkan untuk membungkus dan menjalankan aplikasi anda, sementara tindakan GitHub mengautomasikan tugas seperti ujian dan penempatan. Bersama -sama dengan CloudFormation, alat ini mewujudkan aliran kerja yang kuat untuk membina dan menggunakan aplikasi di awan.

Objektif Pembelajaran

  • Ketahui cara memudahkan pengurusan infrastruktur awan dengan AWS CloudFormation menggunakan infrastruktur sebagai kod (IAC).
  • fahami bagaimana tindakan Docker dan GitHub diintegrasikan dengan AWS CloudFormation untuk penggunaan aplikasi yang diselaraskan.
  • meneroka projek sampel yang mengautomasikan penjanaan dokumentasi Python menggunakan alat AI seperti Langchain dan GPT-4.
  • Ketahui cara membekalkan aplikasi dengan Docker, mengautomasikan penggunaan dengan tindakan GitHub, dan digunakan melalui AWS CloudFormation.
  • memahami cara menubuhkan dan menguruskan sumber AWS seperti EC2, ECR, dan kumpulan keselamatan menggunakan templat CloudFormation.
Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data

Jadual Kandungan Apa itu pembentukan awan AWS? Pengurus Kesimpulan

Soalan -soalan yang sering ditanya

  • Apakah pembentukan awan AWS?
  • Di dunia pengkomputeran awan, menguruskan infrastruktur dengan cekap adalah penting. Oleh itu, AWS CloudFormation datang ke dalam gambar, yang menjadikannya lebih mudah untuk menubuhkan dan menguruskan sumber awan anda. Ia membolehkan anda menentukan semua yang anda perlukan - pelayan, penyimpanan, dan rangkaian dalam fail mudah. ​​
  • AWS CloudFormation adalah perkhidmatan yang membantu anda menentukan dan menguruskan sumber awan anda menggunakan templat yang ditulis dalam YAML atau JSON. Fikirkannya sebagai membuat pelan tindakan untuk infrastruktur anda. Sebaik sahaja anda menyerahkan cetak biru ini, CloudFormation menjaga menetapkan segala -galanya, langkah demi langkah, tepat seperti yang anda nyatakan.
  • Infrastruktur sebagai Kod (IAC), seperti mengubah awan anda menjadi sesuatu yang anda boleh bina, membina semula, dan juga memperbaiki dengan hanya beberapa baris kod. Tidak ada lagi manual yang mengklik di sekitar, tidak ada lagi tekaan - hanya konsisten, penyebaran yang boleh dipercayai yang menjimatkan masa dan mengurangkan kesilapan.
  • Sampel Projek Pelaksanaan: Contoh Projek Hands-On

    menyelaraskan dokumentasi kod dengan AI: Projek Penjanaan Dokumen:

    Untuk memulakan pembentukan awan, kami memerlukan satu projek sampel untuk menggunakannya dalam AWS.

    Saya sudah membuat projek menggunakan Lang-Chain dan membuka AI GPT-4. Mari kita bincangkan mengenai projek itu maka kita akan melihat bagaimana projek itu digunakan dalam AWS menggunakan pembentukan awan.

    Pautan kod github:

    Dalam dunia pembangunan perisian, dokumentasi memainkan peranan utama dalam memastikan kod kod dapat difahami dan dikekalkan. Walau bagaimanapun, mewujudkan dokumentasi terperinci selalunya merupakan tugas yang memakan masa dan membosankan. Tetapi kami adalah teknisi, kami mahu automasi dalam segala -galanya. Jadi untuk menggunakan projek di AWS menggunakan CloudFormation, saya membangunkan projek automasi menggunakan AI (Lang-Chain dan Open AI GPT-4) untuk membuat projek penjanaan dokumen-penyelesaian inovatif yang menggunakan AI untuk mengautomasikan proses dokumentasi untuk kod Python.

    Berikut adalah pecahan bagaimana kami membina alat ini dan kesannya bertujuan untuk dicipta. Untuk membuat projek ini, kami mengikuti beberapa langkah.

    Sebelum memulakan projek baru, kita perlu membuat persekitaran Python untuk memasang semua pakej yang diperlukan. Ini akan membantu kami mengekalkan pakej yang diperlukan.

    Saya menulis fungsi untuk menghuraikan fail input, yang biasanya mengambil fail python sebagai input dan mencetak nama semua fungsi.

    Menjana dokumentasi dari kod

    Setelah butiran fungsi diekstrak, langkah seterusnya adalah untuk memberi makan kepada model GPT-4 OpenAI untuk menghasilkan dokumentasi terperinci. Menggunakan rantaian lang, kami membina satu petikan yang menerangkan tugas yang kami mahu GPT-4 untuk melaksanakan.

    Dengan bantuan fungsi Generator Doc ini, ini mengambil butiran yang dihuraikan dan menghasilkan penjelasan yang lengkap dan boleh dibaca manusia untuk setiap fungsi.
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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Integrasi API Flask

Untuk membuat alat mesra pengguna, saya membina API Flask di mana pengguna boleh memuat naik fail python. API mengepam fail, menghasilkan dokumentasi menggunakan GPT-4, dan mengembalikannya dalam format JSON.

Kami boleh menguji API Flask ini menggunakan postman untuk memeriksa output kami.

dockerizing aplikasi AWS CloudFormation: Memudahkan penyebaran awan

Untuk menggunakan AWS dan menggunakan aplikasi kami, kami perlu membekalkan aplikasi kami menggunakan Docker dan kemudian menggunakan tindakan GitHub untuk mengautomasikan proses penempatan. Kami akan menggunakan AWS CloudFormation untuk automasi di AWS. Perkhidmatan-bijak Kami akan menggunakan pendaftaran kontena elastik untuk menyimpan bekas kami dan EC2 untuk menggunakan permohonan kami. Mari kita lihat langkah ini dengan langkah.

Penciptaan Docker Compose

kami akan membuat fail Docker. Fail Docker bertanggungjawab untuk berputar pada bekas masing -masing

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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Docker Compose

Sebaik sahaja fail Docker dibuat, kami akan membuat fail pengarang Docker yang akan memutar bekas.

# 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
Salin selepas log masuk

anda boleh menguji ini dengan menjalankan arahan

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
Salin selepas log masuk

Selepas perintah dijalankan dengan jayanya, kod itu akan berfungsi dengan tepat seperti sebelumnya.

Membuat perkhidmatan AWS untuk timbunan pembentukan awan

AWS CloudFormation: Memudahkan penyebaran awan

Saya membuat repositori ECR. Selain itu kami akan membuat tindakan GitHub kemudian untuk membuat semua perkhidmatan yang diperlukan kami.

Repositori, saya telah mencipta mempunyai nama Repo Cloud_Formation nama Asdemo. Kemudian, saya akan meneruskan dengan TheCloudFormationTemplate, fail YAML yang membantu dalam berputar contoh yang diperlukan, menarik imej dari ECR dan sumber -sumber lain.

Daripada menubuhkan pelayan secara manual dan menghubungkan segala -galanya, AWS CloudFormation digunakan untuk menubuhkan dan menguruskan sumber awan (seperti pelayan atau pangkalan data) secara automatik menggunakan skrip. Ia seperti memberikan cetak biru untuk membina dan mengatur barangan awan anda tanpa melakukannya secara manual!

Fikirkan CloudFormation sebagai menulis manual arahan mudah untuk diikuti. Manual ini, yang dipanggil sebagai 'templat', memberitahu AWS untuk:

Mulakan pelayan yang diperlukan untuk projek.
  • Tarik imej kontena projek dari repositori penyimpanan ECR.
  • Sediakan semua kebergantungan dan konfigurasi yang diperlukan untuk projek yang dijalankan.
  • Dengan menggunakan persediaan automatik ini, saya tidak perlu mengulangi langkah yang sama setiap kali saya menggunakan atau mengemas kini projek - semuanya dilakukan secara automatik oleh AWS.

template pembentukan awan

Templat AWS CloudFormation adalah skrip Deklaratif JSON atau YAML yang menggambarkan sumber dan konfigurasi yang diperlukan untuk menubuhkan infrastruktur anda dalam AWS. Mereka membolehkan anda mengautomasikan dan mengurus infrastruktur anda sebagai kod, memastikan konsistensi dan kebolehulangan merentasi persekitaran.

docker-compose up –build#import csv
Salin selepas log masuk
mari kita urcode template yang dikemas kini langkah demi langkah:

Kami menentukan sumber ECR tunggal, yang merupakan repositori di mana imej docker kami disimpan.

Seterusnya, kami membuat contoh EC2. Kami akan melampirkan dasar -dasar penting kepadanya, terutamanya untuk berinteraksi dengan pengurus ECR dan AWS Secrets. Di samping itu, kami melampirkan kumpulan keselamatan untuk mengawal akses rangkaian. Untuk persediaan ini, kami akan membuka:

port 22 untuk akses ssh.
  • port 80 untuk akses http.
  • port 5000 untuk akses aplikasi backend.
  • at2.microinstance akan digunakan, dan di dalam data penumpang, kami mentakrifkan arahan untuk mengkonfigurasi contoh:
  • Pasang kebergantungan yang diperlukan seperti Python, Boto3, dan Docker.
  • Rahsia akses yang disimpan dalam Pengurus Rahsia AWS dan simpannya ke fail config.py.
  • Log masuk ke ECR, tarik imej Docker, dan jalankan menggunakan Docker.

Oleh kerana hanya satu bekas Docker yang digunakan, konfigurasi ini memudahkan proses penempatan, sambil memastikan perkhidmatan backend dapat diakses dan dikonfigurasi dengan betul.

memuat naik dan menyimpan rahsia ke Pengurus Rahsia AWS

hingga sekarang kami telah menyimpan rahsia seperti kunci AI Open dalam fail config.py. Tetapi, kita tidak boleh menolak fail ini ke GitHub, kerana ia mengandungiSecrets. Oleh itu, kami menggunakan Pengurus Rahsia AWS untuk menyimpan rahsia kami dan kemudian mengambilnya melalui template CloudFormation kami.

hingga sekarang kami telah menyimpan rahsia seperti kunci AI Open dalam fail config.py. Tetapi, kita tidak boleh menolak fail ini ke GitHub, kerana ia mengandungiSecrets. Oleh itu, kami menggunakan Pengurus Rahsia AWS untuk menyimpan rahsia kami dan kemudian mengambilnya melalui template CloudFormation kami.

AWS CloudFormation: Memudahkan penyebaran awan

AWS CloudFormation: Memudahkan penyebaran awan Membuat tindakan github

Tindakan GitHub digunakan untuk mengautomasikan tugas seperti kod ujian, aplikasi bangunan, atau menggunakan projek setiap kali anda membuat perubahan. Ia seperti menubuhkan robot untuk mengendalikan kerja berulang untuk anda! AWS CloudFormation: Memudahkan penyebaran awan

niat utama kami di sini ialah ketika kami menolak ke cawangan GitHub tertentu, secara automatik penempatan ke AWS harus bermula. Untuk ini kita akan memilih 'Main'Branch.

Menyimpan rahsia di GitHub

masuk ke github anda dan ikuti jalan di bawah:

repositori & gt; Tetapan & gt; Rahsia dan Pembolehubah & GT; Tindakan

maka anda perlu menambah rahsia AWS anda yang diekstrak dari akaun AWS, seperti di bawah imej.

Memulakan aliran kerja

Selepas menyimpan, kami akan membuat folder .github dan, di dalamnya, folder aliran kerja. Di dalam folder aliran kerja, kami akan menambah fail deploy.yaml. AWS CloudFormation: Memudahkan penyebaran awan

Berikut adalah penjelasan yang mudah mengenai aliran:

Kami menarik kod dari repositori dan menubuhkan kelayakan AWS menggunakan rahsia yang disimpan di GitHub.
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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kemudian, kami log masuk ke ECR dan membina/menolak imej docker aplikasi.

    Kami periksa sama ada terdapat timbunan CloudFormation yang sedia ada dengan nama yang sama. Jika ya, padamkannya.
  • Akhirnya, kami menggunakan templat CloudFormation untuk melancarkan sumber dan menetapkan semuanya.
  • ujian
  • Sebaik sahaja semuanya digunakan, perhatikan alamat IP contohnya dan kemudian panggilnya menggunakan Postman untuk memeriksa semuanya berfungsi dengan baik.
  • AWS CloudFormation: Memudahkan penyebaran awan

    Kesimpulan

    Dalam artikel ini, kami meneroka cara menggunakan AWS CloudFormation untuk memudahkan pengurusan infrastruktur awan. Kami belajar bagaimana untuk membuat repositori ECR, menggunakan aplikasi dockerized pada contoh EC2, dan mengautomasikan keseluruhan proses menggunakan tindakan GitHub untuk CI/CD. Pendekatan ini bukan sahaja menjimatkan masa tetapi juga memastikan konsistensi dan kebolehpercayaan dalam penyebaran.

    Takeaways Key

      AWS CloudFormation memudahkan pengurusan sumber awan dengan infrastruktur sebagai kod.
    • bekas Docker menyelaraskan penggunaan aplikasi pada infrastruktur yang diuruskan AWS.
    • Tindakan GitHub mengautomasikan saluran paip membina dan penempatan untuk integrasi lancar.
    • Langchain dan GPT-4 meningkatkan automasi dokumentasi Python dalam projek.
    • Menggabungkan IAC, Docker, dan CI/CD mencipta aliran kerja berskala, cekap, dan moden.
    Soalan Lazim

    Q1. Apakah AWS CloudFormation? a. AWS CloudFormation adalah perkhidmatan yang membolehkan anda memodelkan dan menyediakan sumber AWS menggunakan infrastruktur sebagai kod (IAC). Q2. Bagaimanakah Docker diintegrasikan dengan AWS CloudFormation?

    a. Aplikasi pakej Docker ke dalam bekas, yang boleh digunakan pada sumber AWS yang diuruskan oleh CloudFormation. Q3. Apakah peranan yang dimainkan oleh GitHub dalam aliran kerja ini? a. Tindakan GitHub mengautomasikan saluran paip CI/CD, termasuk bangunan, ujian, dan menggunakan aplikasi ke AWS.

    Q4. Bolehkah saya mengautomasikan penjanaan dokumentasi python dengan langku?

    a. Ya, Langchain dan GPT-4 boleh menjana dan mengemas kini dokumentasi Python sebagai sebahagian daripada aliran kerja anda. Q5. Apakah faedah menggunakan IAC dengan AWS CloudFormation?

    a. IAC memastikan pengurusan sumber yang konsisten, berulang, dan berskala merentasi infrastruktur anda.

    Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan pada budi bicara penulis.

Atas ialah kandungan terperinci AWS CloudFormation: Memudahkan penyebaran awan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan