레이어 준비
먼저, 레이어의 폴더 구조를 설정해야합니다. 나는 레이어라는 폴더를 만들고 싶고 각 레이어마다 자체 폴더를 만듭니다. AWS Lambda는 레이어에 대한 특정 폴더 구조가 필요하며 각 계층의 코드는 파이썬/ 폴더에 있습니다. 자세한 내용은 다음 링크를 참조하십시오. https://docs.aws.amazon.com/lambda/latest/dg/packaging-layers.html
우리의 계층은 layer_utils라고합니다. 그런 다음 Python 폴더 내부에 폴더 Layer_utils를 넣고 내부에 Code와 함께 request_handler.py 및 processor.py 파일을 만듭니다. 또한 Python이 패키지로 인식하는 데 필요한 init 처럼 보이는 방식입니다
request_handler.py는 URL로 요청을 받고 라이브러리 요청을 사용하여 데이터를 가져 와서 반환 할 프로세서를 호출합니다.
./ Layers/Layer_utils/Python/Layer_Utils/Processor.py
./ Layers/Layer_utils/Python/Layer_utils/request_handler.py
layers/
└── layer_utils/
└── python/
├── layer_utils/
│ ├── __init__.py
│ └── request_handler.py
│ └── processor.py
여기서, 프로세서 import process_data 만 대신 layer_utils.processor import process_data에서 호출하여 프로세서 함수를 가져 오는 방법에 유의해야합니다. 절대 경로를 사용하면 나중에 가져 오기 오류를 피할 수 있습니다
레이어 포장
좋아, 이제 우리는 계층 코드를 만들었습니다. 그러나 우리는 아직 끝나지 않았습니다. 우리는 이제 Lambda 코드에서 사용할 수 있도록 PIP로 편집 가능한 패키지를 만들어야합니다. 우리는 PEP 660 스타일을 따라야합니다. 요구 사항 .txt 및 pyproject.toml의 두 파일을 만들어야합니다. 첫 번째에는이 레이어에 필요한 모든 외부 라이브러리가 포함됩니다. 두 번째는 PIP를 사용하여 편집 가능한 패키지를 만들고 모든 종속성이 설치되도록 해야하는 파일입니다. 이렇게하면 끊임없이 다시 포장 할 필요없이 레이어 코드를 편집 할 수 있습니다 (디버그해야합니다).
이것은 나무가 처럼 보이는 방식입니다
pyproject.toml은 PIP에서 우리의 레이어와 함께 패키지를 만드는 데 사용됩니다.
./ Layers/Layer_utils/Python/pyproject.toml
이 파일에서는 패키지를 만들려면 SetUptools 패키지가 필요하며 휠 패키지는 코드를 분산 형식으로 포장하는 데 사용됩니다.
요구 사항 .txt는 계층에 필요한 모든 외부 모듈을 나타냅니다. 우리의 경우 우리는 요청 모듈 만 필요하지만 필요한만큼 추가 할 수 있습니다.
./ Layers/Layer_Utils/Python/reamustry.txt layers/
└── layer_utils/
└── python/
├── layer_utils/
│ ├── __init__.py
│ └── request_handler.py
│ └── processor.py
나는 AWS에서 직접 AWS Lambda 레이어 리소스를 호출하여 외부 패키지를 가져 오기 때문에 사용중인 패키지 버전을 추적하는 것이 중요하다고 생각합니다. SAM Local Invoke 또는 SAM Local Start-API를 사용하는 대신 Python 환경에서 직접 Lambda를 실행하여 시스템에서 직접 디버깅하는 경우 PIP에 설치된 로컬 패키지가 배포 된 것과 동일해야합니다. 레이어 패키지. 그에 대한 좋은 튜토리얼이 많기 때문에 외부 계층을 만드는 방법을 설명하지 않을 것입니다 (예 : https://www.keyq.cloud/en/blog/creating-an-aws lambda-layer-for- Python-Requests-Module
).
가상 환경 설정
이제 가상 환경을 만들어 봅시다. 이것은 필요하지 않지만 종속성을 분리하고 Python 환경이 Lambda가 사용할 환경과 일치하도록 권장합니다. 이렇게하려면 프로젝트의 콘솔에서 input
첫 번째는 Python이 -m venv와 함께 Venv 모듈을 실행하고 Venv라는 가상 환경을 만듭니다.
두 번째는 가상 환경 활성화 스크립트를 실행하는 내장 명령 소스를 호출하여 가상 환경을 활성화합니다. Visual Studio 코드를 사용하는 경우 가상 환경으로 전환하라는 메시지가 표시됩니다. 네 라고 말하다. import requests
def process_data(url):
"""
Fetches data from a URL.
Args:
url (str): The URL to fetch data from.
Returns:
str: The fetched content or an error message.
"""
try:
response = requests.get(url)
response.raise_for_status() # Raise an error for bad status codes
return response.text[:200] # Return the first 200 characters of the response
except requests.RequestException as e:
return f"Error fetching data: {str(e)}"
이 후에, 당신은 당신의 껍질에서 이런 것을 볼 수 있습니다. .
처음의 (VENV)는 가상 환경에 있음을 나타냅니다.
때때로 SAM 도구 대신 Python 파일을 직접 실행하는 것을 디버깅하는 것을 좋아합니다 (빠르기 때문에). 이렇게하려면 가상 환경에 모든 외부 패키지를 설치하여 개발 및 디버깅을 위해 로컬로 사용할 수 있습니다.
이것은 SAM 도구없이 로컬 및 직접 디버그하는 데만 필요 하므로이 작업을 수행하지 않으면이 단계를 건너 뛸 수 있습니다.
우리는 이제 레이어를 패키지해야하므로 Lambda는 레이어를 파이썬 패키지로 찾을 수 있습니다.
from layer_utils.processor import process_data
def handle_request(request):
"""
Handles an incoming request and processes it.
Args:
request (dict): The input request data.
Returns:
dict: The processed result.
"""
# Example: Extract 'url' from the request and process it
if "url" not in request:
return {"error": "Missing 'data' in request"}
data = request["url"]
processed_result = process_data(data)
return {"result": processed_result}
-e 플래그는 이것이 편집 가능한 패키지임을 나타냅니다. 경로는 pyproject.toml 파일의 위치를 가리 킵니다. 이것을 실행하면 새로운 폴더 layer_utils.egg-info가 생성됩니다. 거기서 할 일이없고 그냥 남겨 두십시오.
디버깅
좋아, 이제 우리가 이것을 어떻게 디버그 할 것인지 봅시다. 이것은 레이어와 람다를 갖춘 내 폴더 구조입니다.
이것은 내 람다의 코드 <pre class="brush:php;toolbar:false">layers/
└── layer_utils/
└── python/
├── layer_utils/
│ ├── __init__.py
│ └── request_handler.py
│ └── processor.py
</pre>입니다
<p>
<br>
<the> 파일을 실행할 수 있고 오류없이 유효한 결과를 얻을 수 있습니다.
<using> Pylance와 함께 Visual Studio Code를 사용하는 경우 코드가 작동하더라도 레이어 가져 오기가 해결되지 않을 수 있습니다. </using></the></p>
<pre class="brush:php;toolbar:false">import requests
def process_data(url):
"""
Fetches data from a URL.
Args:
url (str): The URL to fetch data from.
Returns:
str: The fetched content or an error message.
"""
try:
response = requests.get(url)
response.raise_for_status() # Raise an error for bad status codes
return response.text[:200] # Return the first 200 characters of the response
except requests.RequestException as e:
return f"Error fetching data: {str(e)}"
</pre> <p>
이를 해결하려면 작업 공간의 Settings.json을 편집 할 수 있습니다. Control/Command Shift P를 수행하고 환경 설정을 입력하십시오 : 작업 공간 설정 (JSON)을 열고 브래킷 내부에 다음을 추가하십시오 (더 많은 엑스트라 경로가있는 경우 경로를 추가하시면) </p>.
<p>
</p>
<ance> 이제 Pylance는 이것을 잘 해결해야합니다. <p>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173816779174617.png?x-oss-process=image/resize,p_40" class="lazy" alt="Pylance complaining on VSCode" loading="lazy" style="max-width:90%" style="max-width:90%">
스택에 레이어를 추가합니다
</p>
<to> 이제 Lambdas Template.yml에 레이어를 설정해야합니다. 우리는 리소스 내부에 다음을 추가해야합니다. 섹션 (프로젝트에 따라 콘텐츠를 적응) <p>
./ lambdas/mylambda/template.yml <br>
</p>
<pre class="brush:php;toolbar:false">from layer_utils.processor import process_data
def handle_request(request):
"""
Handles an incoming request and processes it.
Args:
request (dict): The input request data.
Returns:
dict: The processed result.
"""
# Example: Extract 'url' from the request and process it
if "url" not in request:
return {"error": "Missing 'data' in request"}
data = request["url"]
processed_result = process_data(data)
return {"result": processed_result}
</pre>
<ur> condenturi에서는 레이어 코드가있는 상대 경로를 어떻게 지칭하는지 알 수 있습니다. AWS SAM 시스템이 Python 폴더를 찾을 것이기 때문에 Python 폴더를 가리키지 않는 방법을 확인하십시오. 런타임이 가상 환경과 LAMNBDA에서 사용하는 런타임과 일치하는지 확인하십시오. <p>
또한 파일의 람다 섹션의 레이어를 참조해야합니다.
</p>
<h2>
<the> 템플릿 파일의 레이어 섹션에 이미 AWS에있는 요청 계층도 있습니다. 이것은 레이어를 로컬로 생성하므로 Sam은 읽어야한다는 것을 알게 될 것입니다. 또한 AWS 배포를 호출 할 때 마다이 레이어를 AWS에 배포합니다.
</the>
</h2>
샘과의 디버깅
<p>
<this> 이것을 테스트합시다. 먼저 구축합시다. 템플릿에 소스 코드의 위치에 표시가 있기 때문에 템플릿을 다른 경로에서 구축하는 데 문제가있었습니다. 이를 피하려면 템플릿 파일의 경로에서 직접 빌드하는 것이 좋습니다.
</this></p>
<p>
<all> 이것은 필요한 모든 종속성을 구축합니다. <strong>
<inv> 이제 우리는 그것을 호출 할 수 있습니다. 람다를 테스트하기위한 이벤트 파일을 만들었습니다.
./ lambdas/mylambda/events/event.json
<br>
</inv></strong></all></p>
<inv> 이제 디버깅을 위해 파일을 호출 할 수 있습니다. 이를 위해 Docker를 설치하고 실행해야한다는 것을 기억하십시오. 다시 말하지만, 템플릿 파일이있는 곳에서 이것을 호출해야합니다. <pre class="brush:php;toolbar:false">└── layer_utils
└── python
├── layer_utils
│ ├── __init__.py
│ ├── processor.py
│ └── request_handler.py
├── pyproject.toml
└── requirements.txt
</pre>.
<p>
<br>
<oke> 이것은 template.yml에서 함수를 호출합니다. -D 플래그는 디버그 포트가 5678임을 나타냅니다. -E 플래그는 Lambda에 제출 될 이벤트 파일이 어디에 있는지 나타냅니다. <br><h2>
람다와 레이어를 AWS에 배포하십시오
</h2>
<final> 이제 코드를 AWS에 배치하여이를 마무리합시다. <p>
<br>
</p>
<u> -람다를 아직 배치하지 않은 경우 -유도 플래그는 프로세스에 도움이 될 수 있으므로 처음으로 사용할 수 있습니다. 이 작업을 마치면 AWS 콘솔로 가서 레이어를 찾을 수 있습니다. 이제 레이어의 ARN을 사용하여 다른 람다와 함께 레이어를 사용할 수 있습니다. <pre class="brush:php;toolbar:false">layers/
└── layer_utils/
└── python/
├── layer_utils/
│ ├── __init__.py
│ └── request_handler.py
│ └── processor.py
</pre>
</u><p> </p>
<p>
VSCODE 설정 디버그
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173816779293205.png?x-oss-process=image/resize,p_40" class="lazy" alt="The lambda layer on the AWS Console" loading="lazy" style="max-width:90%" style="max-width:90%">
<to> vscode를 사용하여 디버그, 브레이크 포인트 설정 등을 사용하려면 몇 가지 추가 단계를 수행해야합니다. </to></p>
<add> 디버그 구성을 추가해야합니다. 이렇게하려면 Control/Command Shift P 및 유형 디버그 : 구성 추가 .... 런치 .JSON 파일이 열립니다. 구성을 추가해야합니다. <h2>
</h2> ./. vscode/unker.json <p>
</p>
<p>
<deb> 우리는 Sam Local Invoke에 부착 할 디버시를 사용하고 있으며, 여기서 -D 플래그로 호출 할 때 본 포트 5678을 설정합니다. Lambda 코드가있는 디렉토리를 가리키는지 확인하십시오. 더 많은 구성이있는 경우 구성 내부의 부품을 목록에 추가하십시오. </deb></p>
<the> 우리는 디버시 라이브러리가 필요합니다. 먼저 요구 사항에 추가하겠습니다.
./ lambdas/mylambda/reimpings.txt <p>
<strong>
</strong>
<install> 이제 pip 로 설치합시다
<br>
</install></p>
<also also> 또는 요구 사항을 통해 설치할 수도 있습니다 .txt 파일
<pre class="brush:php;toolbar:false">import requests
def process_data(url):
"""
Fetches data from a URL.
Args:
url (str): The URL to fetch data from.
Returns:
str: The fetched content or an error message.
"""
try:
response = requests.get(url)
response.raise_for_status() # Raise an error for bad status codes
return response.text[:200] # Return the first 200 characters of the response
except requests.RequestException as e:
return f"Error fetching data: {str(e)}"
</pre>
<p>
<create> 우리는 AWS_SAM_LOCAL 환경 변수를 정의 할 수있는 환경 파일을 만들어야합니다. 작업 공간 폴더에서 파일 .env를 만듭니다. </create></p>
<p> ./
</p>
<p>
<ine> 여기서 우리는 AWS_SAM_LOCAL을 정의하여 Lambda는 AWS SAM을 통해 로컬로 실행되고 있음을 알게됩니다. <strong>
<to> 우리는 또한 파이썬 환경에 환경 파일의 환경 변수를 사용해야한다고 말해야합니다. 이것이 바로 </to></strong>처럼 보이는 방법입니다
./. vscode/settings.json
</ine></p>
<pre class="brush:php;toolbar:false">from layer_utils.processor import process_data
def handle_request(request):
"""
Handles an incoming request and processes it.
Args:
request (dict): The input request data.
Returns:
dict: The processed result.
"""
# Example: Extract 'url' from the request and process it
if "url" not in request:
return {"error": "Missing 'data' in request"}
data = request["url"]
processed_result = process_data(data)
return {"result": processed_result}
</pre>
<need> 마지막으로 Lambda 코드를 수정하여 로컬로 실행할 때 디버거에 첨부 해야하는 것을 알 수 있습니다. 파일의 시작 부분에서 다음 코드 <p>를 추가합니다.
./ lambdas/mylambda/src/lambda_function.py <br>
</p>
<pre class="brush:php;toolbar:false">└── layer_utils
└── python
├── layer_utils
│ ├── __init__.py
│ ├── processor.py
│ └── request_handler.py
├── pyproject.toml
└── requirements.txt
</pre>
<inv inv> 이제 우리는 함수를 호출합니다 (다시 함수가있는 경로에서) :
<p>
<br>
<ole> 콘솔이 디버거가 첨부 될 때까지 대기하는 것을 보여 주면 ... F5를 누르거나 Python Debugger : Debug를 선택하여 Debug를 선택하십시오.
</ole></p> <pre class="brush:php;toolbar:false">[project]
name = "layer_utils"
version = "0.1.0"
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
</pre>
<are> 그리고 이제 당신은 로컬 레이어와 람다를 디버깅 할 준비가되었습니다!
<p>
</p></are></inv></need></also></the></add></final></oke></p></inv></ur></to></ance>
./ Layers/Layer_utils/Python/Layer_utils/request_handler.py
layers/ └── layer_utils/ └── python/ ├── layer_utils/ │ ├── __init__.py │ └── request_handler.py │ └── processor.py
이 파일에서는 패키지를 만들려면 SetUptools 패키지가 필요하며 휠 패키지는 코드를 분산 형식으로 포장하는 데 사용됩니다.
첫 번째는 Python이 -m venv와 함께 Venv 모듈을 실행하고 Venv라는 가상 환경을 만듭니다. .
./ Layers/Layer_utils/Python/pyproject.toml
layers/
└── layer_utils/
└── python/
├── layer_utils/
│ ├── __init__.py
│ └── request_handler.py
│ └── processor.py
import requests
def process_data(url):
"""
Fetches data from a URL.
Args:
url (str): The URL to fetch data from.
Returns:
str: The fetched content or an error message.
"""
try:
response = requests.get(url)
response.raise_for_status() # Raise an error for bad status codes
return response.text[:200] # Return the first 200 characters of the response
except requests.RequestException as e:
return f"Error fetching data: {str(e)}"
from layer_utils.processor import process_data
def handle_request(request):
"""
Handles an incoming request and processes it.
Args:
request (dict): The input request data.
Returns:
dict: The processed result.
"""
# Example: Extract 'url' from the request and process it
if "url" not in request:
return {"error": "Missing 'data' in request"}
data = request["url"]
processed_result = process_data(data)
return {"result": processed_result}
디버깅
좋아, 이제 우리가 이것을 어떻게 디버그 할 것인지 봅시다. 이것은 레이어와 람다를 갖춘 내 폴더 구조입니다.
이것은 내 람다의 코드 <pre class="brush:php;toolbar:false">layers/
└── layer_utils/
└── python/
├── layer_utils/
│ ├── __init__.py
│ └── request_handler.py
│ └── processor.py
</pre>입니다
<p>
<br>
<the> 파일을 실행할 수 있고 오류없이 유효한 결과를 얻을 수 있습니다.
<using> Pylance와 함께 Visual Studio Code를 사용하는 경우 코드가 작동하더라도 레이어 가져 오기가 해결되지 않을 수 있습니다. </using></the></p>
<pre class="brush:php;toolbar:false">import requests
def process_data(url):
"""
Fetches data from a URL.
Args:
url (str): The URL to fetch data from.
Returns:
str: The fetched content or an error message.
"""
try:
response = requests.get(url)
response.raise_for_status() # Raise an error for bad status codes
return response.text[:200] # Return the first 200 characters of the response
except requests.RequestException as e:
return f"Error fetching data: {str(e)}"
</pre> <p>
이를 해결하려면 작업 공간의 Settings.json을 편집 할 수 있습니다. Control/Command Shift P를 수행하고 환경 설정을 입력하십시오 : 작업 공간 설정 (JSON)을 열고 브래킷 내부에 다음을 추가하십시오 (더 많은 엑스트라 경로가있는 경우 경로를 추가하시면) </p>.
<p>
</p>
<ance> 이제 Pylance는 이것을 잘 해결해야합니다. <p>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173816779174617.png?x-oss-process=image/resize,p_40" class="lazy" alt="Pylance complaining on VSCode" loading="lazy" style="max-width:90%" style="max-width:90%">
스택에 레이어를 추가합니다
</p>
<to> 이제 Lambdas Template.yml에 레이어를 설정해야합니다. 우리는 리소스 내부에 다음을 추가해야합니다. 섹션 (프로젝트에 따라 콘텐츠를 적응) <p>
./ lambdas/mylambda/template.yml <br>
</p>
<pre class="brush:php;toolbar:false">from layer_utils.processor import process_data
def handle_request(request):
"""
Handles an incoming request and processes it.
Args:
request (dict): The input request data.
Returns:
dict: The processed result.
"""
# Example: Extract 'url' from the request and process it
if "url" not in request:
return {"error": "Missing 'data' in request"}
data = request["url"]
processed_result = process_data(data)
return {"result": processed_result}
</pre>
<ur> condenturi에서는 레이어 코드가있는 상대 경로를 어떻게 지칭하는지 알 수 있습니다. AWS SAM 시스템이 Python 폴더를 찾을 것이기 때문에 Python 폴더를 가리키지 않는 방법을 확인하십시오. 런타임이 가상 환경과 LAMNBDA에서 사용하는 런타임과 일치하는지 확인하십시오. <p>
또한 파일의 람다 섹션의 레이어를 참조해야합니다.
</p>
<h2>
<the> 템플릿 파일의 레이어 섹션에 이미 AWS에있는 요청 계층도 있습니다. 이것은 레이어를 로컬로 생성하므로 Sam은 읽어야한다는 것을 알게 될 것입니다. 또한 AWS 배포를 호출 할 때 마다이 레이어를 AWS에 배포합니다.
</the>
</h2>
샘과의 디버깅
<p>
<this> 이것을 테스트합시다. 먼저 구축합시다. 템플릿에 소스 코드의 위치에 표시가 있기 때문에 템플릿을 다른 경로에서 구축하는 데 문제가있었습니다. 이를 피하려면 템플릿 파일의 경로에서 직접 빌드하는 것이 좋습니다.
</this></p>
<p>
<all> 이것은 필요한 모든 종속성을 구축합니다. <strong>
<inv> 이제 우리는 그것을 호출 할 수 있습니다. 람다를 테스트하기위한 이벤트 파일을 만들었습니다.
./ lambdas/mylambda/events/event.json
<br>
</inv></strong></all></p>
<inv> 이제 디버깅을 위해 파일을 호출 할 수 있습니다. 이를 위해 Docker를 설치하고 실행해야한다는 것을 기억하십시오. 다시 말하지만, 템플릿 파일이있는 곳에서 이것을 호출해야합니다. <pre class="brush:php;toolbar:false">└── layer_utils
└── python
├── layer_utils
│ ├── __init__.py
│ ├── processor.py
│ └── request_handler.py
├── pyproject.toml
└── requirements.txt
</pre>.
<p>
<br>
<oke> 이것은 template.yml에서 함수를 호출합니다. -D 플래그는 디버그 포트가 5678임을 나타냅니다. -E 플래그는 Lambda에 제출 될 이벤트 파일이 어디에 있는지 나타냅니다. <br><h2>
람다와 레이어를 AWS에 배포하십시오
</h2>
<final> 이제 코드를 AWS에 배치하여이를 마무리합시다. <p>
<br>
</p>
<u> -람다를 아직 배치하지 않은 경우 -유도 플래그는 프로세스에 도움이 될 수 있으므로 처음으로 사용할 수 있습니다. 이 작업을 마치면 AWS 콘솔로 가서 레이어를 찾을 수 있습니다. 이제 레이어의 ARN을 사용하여 다른 람다와 함께 레이어를 사용할 수 있습니다. <pre class="brush:php;toolbar:false">layers/
└── layer_utils/
└── python/
├── layer_utils/
│ ├── __init__.py
│ └── request_handler.py
│ └── processor.py
</pre>
</u><p> </p>
<p>
VSCODE 설정 디버그
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173816779293205.png?x-oss-process=image/resize,p_40" class="lazy" alt="The lambda layer on the AWS Console" loading="lazy" style="max-width:90%" style="max-width:90%">
<to> vscode를 사용하여 디버그, 브레이크 포인트 설정 등을 사용하려면 몇 가지 추가 단계를 수행해야합니다. </to></p>
<add> 디버그 구성을 추가해야합니다. 이렇게하려면 Control/Command Shift P 및 유형 디버그 : 구성 추가 .... 런치 .JSON 파일이 열립니다. 구성을 추가해야합니다. <h2>
</h2> ./. vscode/unker.json <p>
</p>
<p>
<deb> 우리는 Sam Local Invoke에 부착 할 디버시를 사용하고 있으며, 여기서 -D 플래그로 호출 할 때 본 포트 5678을 설정합니다. Lambda 코드가있는 디렉토리를 가리키는지 확인하십시오. 더 많은 구성이있는 경우 구성 내부의 부품을 목록에 추가하십시오. </deb></p>
<the> 우리는 디버시 라이브러리가 필요합니다. 먼저 요구 사항에 추가하겠습니다.
./ lambdas/mylambda/reimpings.txt <p>
<strong>
</strong>
<install> 이제 pip 로 설치합시다
<br>
</install></p>
<also also> 또는 요구 사항을 통해 설치할 수도 있습니다 .txt 파일
<pre class="brush:php;toolbar:false">import requests
def process_data(url):
"""
Fetches data from a URL.
Args:
url (str): The URL to fetch data from.
Returns:
str: The fetched content or an error message.
"""
try:
response = requests.get(url)
response.raise_for_status() # Raise an error for bad status codes
return response.text[:200] # Return the first 200 characters of the response
except requests.RequestException as e:
return f"Error fetching data: {str(e)}"
</pre>
<p>
<create> 우리는 AWS_SAM_LOCAL 환경 변수를 정의 할 수있는 환경 파일을 만들어야합니다. 작업 공간 폴더에서 파일 .env를 만듭니다. </create></p>
<p> ./
</p>
<p>
<ine> 여기서 우리는 AWS_SAM_LOCAL을 정의하여 Lambda는 AWS SAM을 통해 로컬로 실행되고 있음을 알게됩니다. <strong>
<to> 우리는 또한 파이썬 환경에 환경 파일의 환경 변수를 사용해야한다고 말해야합니다. 이것이 바로 </to></strong>처럼 보이는 방법입니다
./. vscode/settings.json
</ine></p>
<pre class="brush:php;toolbar:false">from layer_utils.processor import process_data
def handle_request(request):
"""
Handles an incoming request and processes it.
Args:
request (dict): The input request data.
Returns:
dict: The processed result.
"""
# Example: Extract 'url' from the request and process it
if "url" not in request:
return {"error": "Missing 'data' in request"}
data = request["url"]
processed_result = process_data(data)
return {"result": processed_result}
</pre>
<need> 마지막으로 Lambda 코드를 수정하여 로컬로 실행할 때 디버거에 첨부 해야하는 것을 알 수 있습니다. 파일의 시작 부분에서 다음 코드 <p>를 추가합니다.
./ lambdas/mylambda/src/lambda_function.py <br>
</p>
<pre class="brush:php;toolbar:false">└── layer_utils
└── python
├── layer_utils
│ ├── __init__.py
│ ├── processor.py
│ └── request_handler.py
├── pyproject.toml
└── requirements.txt
</pre>
<inv inv> 이제 우리는 함수를 호출합니다 (다시 함수가있는 경로에서) :
<p>
<br>
<ole> 콘솔이 디버거가 첨부 될 때까지 대기하는 것을 보여 주면 ... F5를 누르거나 Python Debugger : Debug를 선택하여 Debug를 선택하십시오.
</ole></p> <pre class="brush:php;toolbar:false">[project]
name = "layer_utils"
version = "0.1.0"
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
</pre>
<are> 그리고 이제 당신은 로컬 레이어와 람다를 디버깅 할 준비가되었습니다!
<p>
</p></are></inv></need></also></the></add></final></oke></p></inv></ur></to></ance>
위 내용은 코드를 재사용 가능한 AWS Lambda 레이어로 작성, 디버그 및 배포하십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

파이썬은 자동화, 스크립팅 및 작업 관리가 탁월합니다. 1) 자동화 : 파일 백업은 OS 및 Shutil과 같은 표준 라이브러리를 통해 실현됩니다. 2) 스크립트 쓰기 : PSUTIL 라이브러리를 사용하여 시스템 리소스를 모니터링합니다. 3) 작업 관리 : 일정 라이브러리를 사용하여 작업을 예약하십시오. Python의 사용 편의성과 풍부한 라이브러리 지원으로 인해 이러한 영역에서 선호하는 도구가됩니다.

제한된 시간에 Python 학습 효율을 극대화하려면 Python의 DateTime, Time 및 Schedule 모듈을 사용할 수 있습니다. 1. DateTime 모듈은 학습 시간을 기록하고 계획하는 데 사용됩니다. 2. 시간 모듈은 학습과 휴식 시간을 설정하는 데 도움이됩니다. 3. 일정 모듈은 주간 학습 작업을 자동으로 배열합니다.

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

드림위버 CS6
시각적 웹 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

Dreamweaver Mac版
시각적 웹 개발 도구
