Hướng dẫn python lambda local is not recognized as an internal or external command - python lambda local không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài

Xin chào, tôi đang làm việc trên một chức năng Lambda trên môi trường AWS (Node.js). Theo đó để kiểm tra chức năng cục bộ, tôi đã sử dụng tiện ích

$ pip install python-lambda-local
1. Bây giờ có thể là do thay đổi phiên bản, đó là lỗi ném

$ pip install python-lambda-local
2

Nhưng tôi không thể tìm ra cách làm cho nó hoạt động. Tôi đã thử hạ cấp xuống phiên bản trước của

$ pip install python-lambda-local
1 nhưng không có kết quả. Ngoài ra, không có gì nhiều trên Internet liên quan đến một số loại vấn đề.

Phiên bản:

$ pip install python-lambda-local
4

gói khóa hiện tại.

"lambda-local": {
      "version": "1.5.0",
      "resolved": "https://registry.npmjs.org/lambda-local/-/lambda-local-1.5.0.tgz",
      "integrity": "sha512-wXzmj/DtcR/NuupdrFPW7/jiO2TTacYMA8+EiaOhA2YD5dzv2XsDHIlstUseRhXiiG2vPZcFtiBASRkcEOMGMg==",
      "requires": {
        "aws-sdk": "^2.1.6",
        "chai": "^3.5.0",
        "commander": "^2.6.0",
        "dotenv": "^4.0.0",
        "fs": "^0.0.2",
        "mute": "^2.0.6",
        "winston": "^2.2.0"
      }
    }

Tôi không chắc những gì thực sự gây ra vấn đề này, bất kỳ sự giúp đỡ nào cũng được đánh giá cao. Cảm ơn!

Tên của tệp cấu hình ..

Xin chào @SoaperGem, tôi đánh giá cao sự giúp đỡ của bạn.

Hướng dẫn python lambda local is not recognized as an internal or external command - python lambda local không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài

Vì vậy, tôi đang sử dụng Windows 10 Pro và liên quan đến các gói bạn đã đề cập, đây là những phiên bản:

Tôi không có Pyenv, tôi có Conda, nhưng nó chưa được cài đặt trên toàn cầu (thêm vào đường dẫn biến môi trường của tôi). Vì vậy, tôi nghi ngờ nó không nên tác động đến điều này. Khi tôi cần sử dụng

$ pip install python-lambda-local
5, tôi hoặc sử dụng pycharm IDE hoặc mở lời nhắc Anaconda thay vì PowerShell và CMD.

Sau khi thử lần đầu tiên, tôi đã tìm thấy

$ pip install python-lambda-local
6 này (đây là một trình bao bọc cho Windows), tôi đã cài đặt phiên bản 1.2.5 nhưng nó cũng thất bại.

Ngay bây giờ tôi đang triển khai mã Python của mình cho các chức năng Azure, tuy nhiên tôi muốn thử sử dụng AWS Lambda. Vì vậy, Azure cung cấp CLI được sử dụng để triển khai mã. Nếu bạn đã cài đặt Docker, đằng sau hậu trường, họ sử dụng Docker để kéo một số hình ảnh Linux, xây dựng mọi thứ họ cần ở đó và cuối cùng là triển khai. Tôi tin rằng gói này nhằm mục đích làm điều tương tự, đó sẽ là một cái gì đó thực sự hữu ích.

Hướng dẫn python lambda local is not recognized as an internal or external command - python lambda local không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài

Tên của tệp cấu hình ..

Chạy chức năng Lambda trên máy cục bộ

Chuẩn bị môi trường phát triển

Vui lòng sử dụng Virtualenv mới được tạo của Python 3.7+.

Cài đặt

$ pip install python-lambda-local

Trong VirtualEnv, chạy lệnh sau.python-lambda-local in the virtualenv. Now you can use the command python-lambda-local to run your AWS Lambda function written in Python on your own machine.

Điều này sẽ cài đặt gói với tên Python-Lambda-Local trong ảo. Bây giờ bạn có thể sử dụng lệnh Python-Lambda-Local để chạy chức năng AWS Lambda của bạn được viết bằng Python trên máy của riêng bạn.

Sử dụng như một lệnh shellpython-lambda-local -h to see the help.

usage: python-lambda-local [-h] [-l LIBRARY_PATH] [-f HANDLER_FUNCTION]
                           [-t TIMEOUT] [-a ARN_STRING] [-v VERSION_NAME]
                           [-e ENVIRONMENT_VARIABLES] [--version]
                           FILE EVENT

Run AWS Lambda function written in Python on local machine.

positional arguments:
  FILE                  lambda function file name
  EVENT                 event data file name

optional arguments:
  -h, --help            show this help message and exit
  -l LIBRARY_PATH, --library LIBRARY_PATH
                        path of 3rd party libraries
  -f HANDLER_FUNCTION, --function HANDLER_FUNCTION
                        lambda function handler name, default: "handler"
  -t TIMEOUT, --timeout TIMEOUT
                        seconds until lambda function timeout, default: 3
  -a ARN_STRING, --arn-string ARN_STRING
                        ARN string for lambda function
  -v VERSION_NAME, --version-name VERSION_NAME
                        lambda function version name
  -e ENVIRONMENT_VARIABLES, --environment-variables ENVIRONMENT_VARIABLES
                        path to flat json file with environment variables
  --version             print the version of python-lambda-local and exit

Chạy Python-Lambda-Local-h để xem sự giúp đỡ.

Chuẩn bị thư mục phát triển

Cấu trúc thư mục dự án

├── event.json
├── lib
│   ├── rx
│   │   ├── abstractobserver.py
│   │   ├── ... (package content of rx)
...
│   │       └── testscheduler.py
│   └── Rx-1.6.1.dist-info
│       ├── DESCRIPTION.rst
│       ├── METADATA
│       ├── metadata.json
│       ├── pbr.json
│       ├── RECORD
│       ├── top_level.txt
│       ├── WHEEL
│       └── zip-safe
└── test.py

Giả sử thư mục dự án của bạn là như thế này:test.py and the function name of the handler is handler. The source depends on 3rd party library rx and it is installed in the directory lib. The test event in json format is in event.json file.

Nội dung của Test.py:test.py:

from __future__ import print_function
from rx import Observable


def handler(event, context):
    xs = Observable.from_(range(event['answer']))
    ys = xs.to_blocking()
    zs = (x*x for x in ys if x % 7 == 0)
    for x in zs:
        print(x)

Nội dung của event.json:event.json:

{
  "answer": 42
}

Chạy chức năng Lambda

Trong thư mục gốc dự án, bạn có thể chạy chức năng Lambda với lệnh sau

python-lambda-local -l lib/ -f handler -t 5 test.py event.json

Đầu ra sẽ giống như:

[root - INFO - 2018-11-20 17:10:53,352] Event: {'answer': 42}
[root - INFO - 2018-11-20 17:10:53,352] START RequestId: 3c8e6db4-886a-43da-a1c7-5e6f715de531 Version:
0
49
196

[root - INFO - 2018-11-20 17:10:53,359] END RequestId: 3c8e6db4-886a-43da-a1c7-5e6f715de531
[root - INFO - 2018-11-20 17:10:53,360] REPORT RequestId: 3c8e6db4-886a-43da-a1c7-5e6f715de531  Duration: 2.17 ms
[root - INFO - 2018-11-20 17:10:53,360] RESULT:
None

Sử dụng như một thư viện

Chữ ký API

call(func, event, context, environment_variables={})

Gọi một hàm Handler Func với sự kiện đã cho, bối cảnh và môi trường tùy chỉnh_varia.func with given event, context and custom environment_variables.

Vật mẫu

  1. Đảm bảo có thể nhập các thư viện của bên thứ 3 trong hàm AWS Lambda.

pip install rx==1.6.1
  1. Để gọi chức năng Lambda ở trên với mã Python của bạn:

$ pip install python-lambda-local
0

Làm cách nào để chạy chức năng Python Lambda cục bộ?

Để tạo chức năng Python..
Mở bảng điều khiển Lambda ..
Chọn Tạo chức năng ..
Định cấu hình các cài đặt sau: Tên-Hàm của tôi. Thời gian chạy - Python 3.9. ....
Chọn Tạo chức năng ..
Định cấu hình các cài đặt sau: Tên-Hàm của tôi. Thời gian chạy - Python 3.9. ....
Để định cấu hình một sự kiện kiểm tra, chọn Kiểm tra ..
Đối với tên sự kiện, hãy nhập bài kiểm tra ..
Chọn Lưu Thay đổi ..

Làm cách nào để kiểm tra Lambda tại địa phương?

Để kiểm tra chức năng Lambda của bạn với trình giả lập..
Xây dựng hình ảnh của bạn cục bộ bằng lệnh xây dựng Docker.Docker Build -t MyFunction: Mới nhất ..
Chạy hình ảnh container của bạn cục bộ bằng lệnh docker chạy.Docker Run -P 9000: 8080 MyFunction: Mới nhất ..

Python Lambda Local là gì?

Gói Python-Lambda-Local Gói này cho phép bạn kiểm tra chức năng Lambda Python của mình tại địa phương vì nó sẽ chạy bên trong AWS, vì vậy bạn có thể tạo một chức năng gọi là Lambda_Handler với sự kiện và bối cảnh làm đầu vào.This package lets you test your Lambda python function locally as it would be running inside AWS, so you can create a function called lambda_handler with event and context as input.

Làm thế nào để bạn phát triển các chức năng Lambda tại địa phương?

Triển khai một chức năng Lambda địa phương..
Tên ngăn xếp - Đặt tên cho ngăn xếp của bạn ..
Vùng - Đặt tên cho khu vực của bạn ..
Xác nhận các thay đổi trước khi triển khai - Bạn có muốn xem các thay đổi và phê duyệt chúng trước khi chúng được triển khai không?....
Cho phép Sam Cli Iam tạo ra vai trò.....
Lưu đối số (những đối số bạn vừa thực hiện) vào tệp cấu hình.....
Tên của tệp cấu hình ..