目錄
示例項目實踐實施:一個動手項目示例
docker組成
接下來,我們創建一個EC2實例。我們將附加基本政策,主要用於與ECR和AWS Secrets Manager互動。此外,我們將安全組附加到控製網絡訪問。對於此設置,我們將打開:
>我們的主要目的是,當我們推向Github的特定分支時,將自動開始部署到AWS。為此,我們將選擇“ Main'Branch。
結論
首頁 科技週邊 人工智慧 AWS雲形式:簡化雲部署

AWS雲形式:簡化雲部署

Mar 10, 2025 am 11:32 AM

>在本文中,我們將探討AWS CloudFormation如何簡化設置和管理雲基礎架構。您可以在文件中寫下您的要求,而不是手動創建諸如服務器或數據庫之類的資源,而CloudFormation為您帶來了繁重的提升。這種方法被稱為基礎架構(IAC),節省了時間,減少錯誤並確保一切一致。

>

>我們還將研究Docker和Github的動作如何適合該過程。 Docker可以輕鬆打包和運行您的應用程序,而GitHub Actions則可以自動化測試和部署等任務。這些工具與雲形式一起創建了一個強大的工作流程,用於在雲中構建和部署應用程序。

學習目標

    學習如何使用基礎結構作為代碼(IAC)來簡化雲基礎架構管理。
  • >了解如何將Docker和GitHub操作與AWS CloudFormation集成以進行簡化的應用程序部署。
  • 探索一個示例項目,該項目使用Langchain和GPT-4等AI工具來自動化Python文檔生成。
  • >學習如何使用Docker容器化應用程序,使用GitHub操作自動部署並通過AWS CloudFormation部署。
  • >了解如何使用CloudFormation模板設置和管理EC2,ECR和安全組(例如EC2,ECR和安全組)的AWS資源。
  • >本文是

> > data Science Blogathon的一部分。 目錄的目錄>什麼是AWS雲形成?

>示例項目示例實現:一個動手示例示例

> dockerize dockerized application
  • 經理
  • >結論
  • >
  • >
  • 什麼是AWS雲形成?
  • 在雲計算世界中,有效管理基礎架構至關重要。因此,AWS CloudFormation出現了圖片,這使設置和管理您的雲資源變得更加容易。它允許您定義所需的所有內容 - 簡單文件中的服務器,存儲和網絡。
  • >
  • aws CloudFormation是一項服務,可幫助您使用用YAML或JSON編寫的模板來定義和管理雲資源。將其視為為您的基礎架構創建藍圖。一旦您遞交了此藍圖,雲形象就會按照您描述的方式逐步設置所有內容。
。 作為代碼(IAC)的基礎架構,就像將雲變成可以建立,重建甚至可以通過幾行代碼改進的東西。不再有手動單擊,不再猜測 - 只需一致,可靠的部署即可節省您的時間並減少錯誤。

示例項目實踐實施:一個動手項目示例

用AI的簡化代碼文檔:

>

開始雲形成,我們需要一個示例項目才能在AWS中部署。

我已經使用lang-chain並打開AI GPT-4創建了一個項目。讓我們討論該項目,然後我們將使用Cloud Formation中的AWS部署該項目。

> github代碼鏈接: https://github.com/harshitha-gh/cloudformation

在軟件開發的世界中,文檔在確保代碼庫可理解和可維護方面起著重要作用。但是,創建詳細的文檔通常是一項耗時且無聊的任務。但是我們是技術人員,我們希望在所有事物中自動化。因此,要使用CloudFormation在AWS中部署一個項目,我使用AI(Lang-Chain和Open AI GPT-4)開發了一個自動化項目來創建文檔生成項目 - 一種創新的解決方案,它利用AI自動化Python代碼的文檔過程。

這是我們如何構建此工具及其旨在創建的影響的細分。為了創建這個項目,我們正在遵循幾個步驟。

>

>在開始一個新項目之前,我們必須創建一個Python環境來安裝所有必需的軟件包。這將有助於我們維護必要的軟件包。

>我寫了一個函數來解析輸入文件,該文件通常將python文件作為輸入並打印所有函數的名稱。

從代碼生成文檔

提取功能詳細信息後,下一步是將它們送入OpenAI的GPT-4模型中,以生成詳細的文檔。使用Lang-Chain,我們構建了一個提示,該提示說明了我們希望GPT-4執行的任務。

>在此提示的幫助下,Doc Generator函數獲取解析的詳細信息,並為每個功能生成完整的,可讀的解釋。

>
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
登入後複製
登入後複製
登入後複製
燒瓶API集成

為使該工具用戶友好,我構建了一個燒瓶API,用戶可以在其中上傳Python文件。 API解析文件,使用GPT-4生成文檔,並以JSON格式返回。

我們可以使用Postman測試此燒瓶API來檢查我們的輸出。 >

> dockerizing應用程序

>要部署到AWS並使用我們的應用程序,我們需要使用Docker容器化應用程序,然後使用GitHub操作來自動化部署過程。我們將使用AWS CloudFormation進行AWS中的自動化。在服務方面,我們將使用彈性容器註冊表存儲我們的容器和EC2來部署我們的應用程序。讓我們逐步查看此。 AWS雲形式:簡化雲部署

創建Docker構成

我們將創建Docker文件。 Docker文件負責旋轉我們各自的容器

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組成

>創建Docker文件後,我們將創建一個Docker組成的文件,該文件將旋轉容器。

# 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
登入後複製
您可以通過運行命令

來對此進行測試

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
登入後複製
命令成功執行後,代碼將與以前完全一樣。 >

>為雲形成堆棧創建AWS服務

AWS雲形式:簡化雲部署我創建一個ECR存儲庫。除此之外

>存儲庫,我創建了具有命名空間cloud_formation repo名稱asdemo。然後,我將繼續進行ThecloudformationTemplate,這是一個有助於旋轉所需實例,從ECR和其他資源中刪除圖像的YAML文件。 >>>>> AWS CloudFormation無需手動設置服務器並連接所有內容,而是使用腳本自動設置和管理雲資源(例如服務器或數據庫)。這就像給出一個藍圖來構建和整理雲的東西而無需手動做!

>

將雲形式視為編寫簡單的說明手冊,以供AWS遵循。本手冊稱為“模板”,告訴AWS:

>

啟動項目所需的服務器。

>

>從ECR存儲存儲庫中摘取項目的容器圖像。 >

設置項目運行所需的所有其他依賴項和配置。 >
  • >通過使用此自動設置,我不必每次部署或更新項目時都重複相同的步驟 - AWS會自動完成。
  • 雲形成模板
  • AWS雲形式模板是聲明的JSON或YAML腳本,它們描述了在AWS中設置基礎架構所需的資源和配置。它們使您能夠自動化和管理基礎架構作為代碼,從而確保環境之間的一致性和可重複性。
  • >
讓我們解碼更新的模板逐步:

>

我們正在定義單個ECR資源,該資源是存儲Docker映像的存儲庫。

接下來,我們創建一個EC2實例。我們將附加基本政策,主要用於與ECR和AWS Secrets Manager互動。此外,我們將安全組附加到控製網絡訪問。對於此設置,我們將打開:

SSH訪問的

端口22。
docker-compose up –build#import csv
登入後複製
> HTTP訪問的

端口80。 端口5000用於後端應用程序訪問。 > 將使用

  • 安裝必要的依賴項,例如python,boto3和docker。
  • >存儲在AWS Secrets Manager中的訪問秘密並將其保存到config.py文件中。 >
  • 登錄到ECR,拉碼頭圖像並使用Docker運行。
>由於僅使用一個Docker容器,因此此配置簡化了部署過程,同時確保可訪問後端服務並正確配置。

>上傳並將秘密存儲給AWS Secret Manager 到目前為止,我們已經在config.py文件中保存了像打開AI密鑰一樣保存的秘密。但是,我們不能將此文件推向github,因為它包含了隔離。因此,我們使用AWS Secrets Manager存儲我們的秘密,然後通過我們的雲形式模板檢索。 到目前為止,我們已經在config.py文件中保存了像打開AI密鑰一樣保存的秘密。但是,我們不能將此文件推向github,因為它包含了隔離。因此,我們使用AWS Secrets Manager存儲我們的秘密,然後通過我們的雲形式模板檢索。

創建GitHub Action

AWS雲形式:簡化雲部署

AWS雲形式:簡化雲部署 github操作用於自動化任務,例如測試代碼,構建應用程序或在進行更改時部署項目。就像設置一個機器人為您處理重複工作一樣!

>我們的主要目的是,當我們推向Github的特定分支時,將自動開始部署到AWS。為此,我們將選擇“ Main'Branch。

將秘密存儲在github AWS雲形式:簡化雲部署

>登錄到您的github,並遵循以下路徑:

>

> repository>設置>秘密和變量>動作

然後,您需要添加從您從AWS帳戶中提取的AWS的秘密,如下圖。

啟動工作流

>存儲後,我們將創建一個.github文件夾,並在其中創建一個Workflows文件夾。在Workflows文件夾中,我們將添加一個decloy.yaml文件。

這是對流的簡化解釋:

AWS雲形式:簡化雲部署

我們從存儲庫中摘取代碼,並使用Gi​​tHub中存儲的秘密設置AWS憑據。

然後,我們登錄到ECR並構建/推動應用程序的Docker映像。

>我們檢查是否有具有相同名稱的現有云形式堆棧。如果是,請刪除它。

>最後,我們使用CloudFormation模板啟動資源並設置所有內容。
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
登入後複製
登入後複製
登入後複製

測試

    >部署了所有內容後,請記下實例的IP地址,然後使用Postman調用它以檢查一切正常。
  • AWS雲形式:簡化雲部署

    結論

    在本文中,我們探討瞭如何使用AWS CloudFormation簡化雲基礎架構管理。我們學習瞭如何創建ECR存儲庫,在EC2實例上部署Dockerized應用程序,並使用CI/CD的GitHub操作自動化整個過程。這種方法不僅節省了時間,還可以確保部署的一致性和可靠性。

    鑰匙要點

    AWS CloudFormation用代碼簡化了雲資源管理。
      >
    • docker容器簡化了AWS管理的基礎架構上的應用程序。
    • github動作自動化構建和部署管道,以進行無縫集成。
    • > Langchain和GPT-4增強項目中的Python文檔自動化。 ​​
    • 組合IAC,Docker和CI/CD創建可擴展,高效和現代工作流程。
    • 常見問題

    > Q1。什麼是AWS CloudFormation? AWS CloudFormation是一項服務,使您能夠使用基礎結構作為代碼(IAC)進行建模和提供AWS資源。

    Q2。 Docker如何與AWS CloudFormation集成? Docker將應用程序包裝到容器中,可以將其部署在通過CloudFormation管理的AWS資源上。 Q3。 GitHub動作在此工作流程中扮演什麼角色? GitHub Action自動化CI/CD管道,包括構建,測試和部署應用程序到AWS。我可以使用langchain自動化Python文檔?是的,作為工作流程的一部分,Langchain和GPT-4可以生成和更新Python文檔。

    Q5。將IAC與AWS CloudFormation一起使用有什麼好處? IAC確保基礎架構的一致,可重複和可擴展的資源管理。 >本文所示的媒體不歸Analytics Vidhya擁有,並由作者的酌情決定使用。

以上是AWS雲形式:簡化雲部署的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
開始使用Meta Llama 3.2 -Analytics Vidhya 開始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

AV字節:Meta' llama 3.2,Google的雙子座1.5等 AV字節:Meta' llama 3.2,Google的雙子座1.5等 Apr 11, 2025 pm 12:01 PM

本週的AI景觀:進步,道德考慮和監管辯論的旋風。 OpenAI,Google,Meta和Microsoft等主要參與者已經釋放了一系列更新,從開創性的新車型到LE的關鍵轉變

向員工出售AI策略:Shopify首席執行官的宣言 向員工出售AI策略:Shopify首席執行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

視覺語言模型(VLMS)的綜合指南 視覺語言模型(VLMS)的綜合指南 Apr 12, 2025 am 11:58 AM

介紹 想像一下,穿過​​美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

最新的最佳及時工程技術的年度彙編 最新的最佳及時工程技術的年度彙編 Apr 10, 2025 am 11:22 AM

對於那些可能是我專欄新手的人,我廣泛探討了AI的最新進展,包括體現AI,AI推理,AI中的高科技突破,及時的工程,AI培訓,AI,AI RE RE等主題

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

See all articles