معرفی شرکت ها


aws-lambda-ci-0.0.6


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Continuous integration pipeline for aws lambda function
ویژگی مقدار
سیستم عامل -
نام فایل aws-lambda-ci-0.0.6
نام aws-lambda-ci
نسخه کتابخانه 0.0.6
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Hamza Adami
ایمیل نویسنده me@adamihamza.com
آدرس صفحه اصلی https://github.com/kodless/aws-lambda-ci
آدرس اینترنتی https://pypi.org/project/aws-lambda-ci/
مجوز Apache License 2.0
################## AWS Lambda CI ################## Continuous integration pipeline for aws lambda function .. image:: https://github.com/obytes/aws-lambda-ci/raw/main/docs/images/demo_code_changed_deps_changed.gif ********* Features ********* ✅ Supports the two famous lambda runtimes python and nodejs. ✅ Supports installing custom packages that does not exist in lambda runtime passed to CI process as a package's descriptor file path in git repository. ✅ Supports installing custom pip/npm dependencies that does not exist in lambda runtime and passed to CI process as a package's descriptor file path, `packages.json` or `requirements.txt`. ✅ The integration/deployment process is fast thanks to code and dependencies caching. ✅ The lambda dependencies packages are built in a sandboxed local environment that replicates the live AWS Lambda environment almost identically – including installed software and libraries. ✅ The pipeline does not break the currently published version and traffic shifting between the current and new deployment is seamless. ************ Requirements ************ IAM Permissions =============== The user/role that call this pipeline should have these permissions attached to it. .. code-block:: json { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::artifacts-bucket-name/*", "arn:aws:s3:::artifacts-bucket-name" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::artifacts-bucket-name/lambda-ci/function-name/*", "arn:aws:s3:::artifacts-bucket-name/lambda-ci/function-name" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "lambda:UpdateFunctionConfiguration", "lambda:UpdateFunctionCode", "lambda:UpdateAlias", "lambda:PublishVersion", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:us-east-1:YOUR_ACCOUNT_ID:function:function-name" }, { "Sid": "", "Effect": "Allow", "Action": [ "lambda:PublishLayerVersion", "Lambda:ListLayerVersions" ], "Resource": "arn:aws:lambda:us-east-1:YOUR_ACCOUNT_ID:layer:function-layer-name" }, { "Sid": "", "Effect": "Allow", "Action": "lambda:GetLayerVersion", "Resource": "arn:aws:lambda:us-east-1:YOUR_ACCOUNT_ID:layer:function-layer-name:*" } ] } Packages ======== - ``python3`` - ``docker`` ***** Usage ***** Installation ============ .. code-block:: bash pip3 install aws-lambda-ci Arguments ========= These are the available arguments: +--------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ | ARG | USAGE | +================================+============================================================================================================================================+ | --app-s3-bucket | The s3 bucket name that will hold the application code and dependencies | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Required | Default: None | Allowed: existing S3 bucket name | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | --function-name | AWS lambda function name | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Required | Default: None | Allowed: existing lambda function name | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | --function-runtime | AWS lambda function runtime (eg: python3.7) | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Optional | Default: ``python3.8`` | Allowed: ``pythonX.x``|``nodejsX.x`` | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | --function-alias-name | AWS Lambda alias name (eg: latest) | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Optional | Default: ``latest`` | Allowed: version tag (eg: ``latest``, ``qa``, ``prod`` ...) | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | --function-layer-name | AWS Lambda layer name (eg: demo-lambda-dependencies) | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Optional | Default: ``{function-name}-deps`` | Allowed: a valid layer name | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | --app-src-path | Lambda function sources directory that will be archived (eg: demo-lambda/src) | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Optional | Default: current directory | Allowed: an existing directory with source code | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Packages descriptor path (eg: demo-lambda/requirements.txt) | | --app-packages-descriptor-path +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Optional | Default: ``requirements.txt`` | Allowed: an existing and valid ``requirements.txt`` or ``package.json`` | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | --source-version | The unique revision id (eg: github commit sha, or SemVer tag) | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Optional | Default: Random hash | Allowed: ``commit`` hash | ``tag`` ver | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | --aws-profile-name | AWS profile name (if not provided, will use default aws env variables) | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Optional | Default: None | Allowed: existing aws profile name | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ | --watch-log-stream | Watch lambda log stream in realtime after publishing the function | | +----------+--------------------------------------+------------------------------------------------------------------------------------------+ | | Optional | Default: True | Allowed: Boolean | +--------------------------------+----------+--------------------------------------+------------------------------------------------------------------------------------------+ Example ======== .. code-block:: bash aws-lambda-ci \ --app-s3-bucket "kodhive-prd-useast1-ippan-core-artifacts" \ --function-name "useast1-mimoto-api-v1-codeless" \ --function-runtime "python3.7" \ --function-alias-name "latest" \ --function-layer-name "useast1-mimoto-api-v1-codeless-deps" \ --app-src-path "app/api/src" \ --app-packages-descriptor-path "app/api/src/requirements/lambda.txt" \ --source-version "1.0.1" \ --aws-profile-name "kodhive_prd" \ --watch-log-stream Demos ====== Code and dependencies changes ----------------------------- If both code and dependencies changed, the pipeline will publish both changes. .. image:: https://github.com/obytes/aws-lambda-ci/raw/main/docs/images/demo_code_changed_deps_changed.gif Just code changed ----------------- If code changed but not dependencies, the pipeline with publish new code and the dependencies will be left intact. .. image:: https://github.com/obytes/aws-lambda-ci/raw/main/docs/images/demo_just_code_changed.gif Nothing changed --------------- If both code and dependencies not changed, the pipeline will not publish anything. .. image:: https://github.com/obytes/aws-lambda-ci/raw/main/docs/images/demo_nothing_changed.gif


نیازمندی

مقدار نام
- boto3
- awslogs


زبان مورد نیاز

مقدار نام
>=3.6 Python


نحوه نصب


نصب پکیج whl aws-lambda-ci-0.0.6:

    pip install aws-lambda-ci-0.0.6.whl


نصب پکیج tar.gz aws-lambda-ci-0.0.6:

    pip install aws-lambda-ci-0.0.6.tar.gz