搜尋
首頁科技週邊人工智慧AWS雲形式:簡化雲部署

>在本文中,我們將探討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
讓我們跳舞:結構化運動以微調我們的人類神經網讓我們跳舞:結構化運動以微調我們的人類神經網Apr 27, 2025 am 11:09 AM

科學家已經廣泛研究了人類和更簡單的神經網絡(如秀麗隱桿線蟲中的神經網絡),以了解其功能。 但是,出現了一個關鍵問題:我們如何使自己的神經網絡與新穎的AI一起有效地工作

新的Google洩漏揭示了雙子AI的訂閱更改新的Google洩漏揭示了雙子AI的訂閱更改Apr 27, 2025 am 11:08 AM

Google的雙子座高級:新的訂閱層即將到來 目前,訪問Gemini Advanced需要$ 19.99/月Google One AI高級計劃。 但是,Android Authority報告暗示了即將發生的變化。 最新的Google P中的代碼

數據分析加速度如何求解AI的隱藏瓶頸數據分析加速度如何求解AI的隱藏瓶頸Apr 27, 2025 am 11:07 AM

儘管圍繞高級AI功能炒作,但企業AI部署中潛伏的巨大挑戰:數據處理瓶頸。首席執行官慶祝AI的進步時,工程師努力應對緩慢的查詢時間,管道超載,一個

Markitdown MCP可以將任何文檔轉換為Markdowns!Markitdown MCP可以將任何文檔轉換為Markdowns!Apr 27, 2025 am 09:47 AM

處理文檔不再只是在您的AI項目中打開文件,而是將混亂變成清晰度。諸如PDF,PowerPoints和Word之類的文檔以各種形狀和大小淹沒了我們的工作流程。檢索結構化

如何使用Google ADK進行建築代理? - 分析Vidhya如何使用Google ADK進行建築代理? - 分析VidhyaApr 27, 2025 am 09:42 AM

利用Google的代理開發套件(ADK)的力量創建具有現實世界功能的智能代理!該教程通過使用ADK來構建對話代理,並支持Gemini和GPT等各種語言模型。 w

在LLM上使用SLM進行有效解決問題-Analytics Vidhya在LLM上使用SLM進行有效解決問題-Analytics VidhyaApr 27, 2025 am 09:27 AM

摘要: 小型語言模型 (SLM) 專為效率而設計。在資源匱乏、實時性和隱私敏感的環境中,它們比大型語言模型 (LLM) 更勝一籌。 最適合專注型任務,尤其是在領域特異性、控制性和可解釋性比通用知識或創造力更重要的情況下。 SLM 並非 LLMs 的替代品,但在精度、速度和成本效益至關重要時,它們是理想之選。 技術幫助我們用更少的資源取得更多成就。它一直是推動者,而非驅動者。從蒸汽機時代到互聯網泡沫時期,技術的威力在於它幫助我們解決問題的程度。人工智能 (AI) 以及最近的生成式 AI 也不例

如何將Google Gemini模型用於計算機視覺任務? - 分析Vidhya如何將Google Gemini模型用於計算機視覺任務? - 分析VidhyaApr 27, 2025 am 09:26 AM

利用Google雙子座的力量用於計算機視覺:綜合指南 領先的AI聊天機器人Google Gemini擴展了其功能,超越了對話,以涵蓋強大的計算機視覺功能。 本指南詳細說明瞭如何利用

Gemini 2.0 Flash vs O4-Mini:Google可以比OpenAI更好嗎?Gemini 2.0 Flash vs O4-Mini:Google可以比OpenAI更好嗎?Apr 27, 2025 am 09:20 AM

2025年的AI景觀正在充滿活力,而Google的Gemini 2.0 Flash和Openai的O4-Mini的到來。 這些尖端的車型分開了幾週,具有可比的高級功能和令人印象深刻的基準分數。這個深入的比較

See all articles

熱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

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

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1

記事本++7.3.1

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

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能