Skip to content

Lesson docs #101

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions .github/workflows/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
name: Deploy my Lambda Function

# trigger on all push events to main branch
on:
push:
branches:
- main

jobs:

lint:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install linting libraries
run: |
cd function
pip install flake8
- name: Lint with flake8
run: |
# Select identifies which errors should cause the job to fail
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# The exit zero flag will show errors as warnings and not fail the run
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

build:
runs-on: ubuntu-latest
needs: lint
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install libraries
run: |
cd function
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt -t .; fi
- name: Create zip bundle
run: |
cd function
zip -r ../${{ github.sha }}.zip .
- name: Archive artifact
uses: actions/upload-artifact@v2
with:
name: zipped-bundle
path: ${{ github.sha }}.zip

upload:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: zipped-bundle
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Upload to S3
run: aws s3 cp ${{ github.sha }}.zip s3://<YOUR BUCKET NAME HERE>/${{ github.repository }}/${{ github.sha }}.zip

nonprod:
runs-on: ubuntu-latest
needs: upload
strategy:
matrix:
input: ["Hello", "Hi"]
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Create test function
run: |
aws lambda create-function --function-name test-function-${{ matrix.input }} \
--code S3Bucket=<YOUR BUCKET NAME HERE>,S3Key=${{ github.repository }}/${{ github.sha }}.zip \
--handler lambda_function.lambda_handler --runtime python3.8 \
--role arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/<YOUR ROLE NAME HERE>
- name: Invoke test function
run: |
aws lambda invoke --function-name test-function-${{ matrix.input }} \
--payload $(echo "{\"input\": \"${{ matrix.input }}\"}" | base64) \
--output json out
if grep -q "Error" out; then
exit1
fi
- name: Destroy test function
if: ${{ always() }}
run: |
aws lambda delete-function --function-name test-function-${{ matrix.input }}

deploy:
runs-on: ubuntu-latest
needs: upload
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Update function code
run: |
aws lambda update-function-code \
--function-name <YOUR FUNCTION NAME HERE> \
--s3-bucket <YOUR BUCKET NAME HERE> \
--s3-key ${{ github.repository }}/${{ github.sha }}.zip \
--publish

docs:
runs-on: ubuntu-latest
needs: deploy
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Deploy docs
uses: mhausenblas/mkdocs-deploy-gh-pages@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CONFIG_FILE: mkdocs.yaml
17 changes: 17 additions & 0 deletions docs/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# About Us

## Consectetur adipiscing elit

Praesent at augue ornare, posuere neque nec, pharetra velit. Etiam placerat nulla et nisl tincidunt commodo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec cursus, nibh ac porttitor mollis, purus erat tempor sapien, in commodo quam nisl ac metus. Morbi maximus elit ac hendrerit accumsan. Sed vestibulum diam ligula, non scelerisque nunc eleifend ut. Nulla vel libero leo. Vestibulum eleifend ultrices eros a imperdiet. Quisque fermentum eros a dolor tincidunt, at ullamcorper augue ullamcorper. Suspendisse quis odio felis. Phasellus viverra tellus quis ex tempor, in convallis est efficitur. Suspendisse dolor risus, vestibulum sed erat et, sodales scelerisque quam. Pellentesque maximus, lacus in lacinia gravida, nibh augue lacinia lorem, et placerat ipsum enim euismod dolor. Nam ut metus ut arcu tincidunt luctus efficitur id justo.

Cras ipsum justo, tincidunt nec ultrices id, lobortis et arcu. Fusce tristique lobortis tortor sed dictum. Quisque maximus sagittis augue quis aliquam. Maecenas congue felis viverra nisi dictum commodo. Praesent nec libero at ligula mattis lobortis nec non ligula. Donec sollicitudin auctor odio et fringilla. Suspendisse semper odio id turpis tristique dapibus.

## Integer malesuada malesuada

Posuere Morbi mollis lectus vitae mi interdum, sed porttitor justo ultricies. Donec facilisis nunc lacus, quis convallis neque facilisis ullamcorper. Maecenas ligula metus, fermentum vel vehicula id, commodo mollis quam. Duis ac libero at tortor vestibulum lacinia. Cras congue lectus nec metus aliquam ornare. Suspendisse metus leo, egestas et pulvinar id, tempus eget massa.

Donec ac eros urna. Praesent ac justo a eros convallis venenatis eget quis lorem. Vestibulum posuere ligula sed pellentesque rhoncus. Donec fringilla, quam eget efficitur accumsan, felis lacus ullamcorper magna, eu pretium nibh urna sed urna. In varius sodales nibh, quis malesuada mauris convallis sed. Nunc porta ligula a vehicula faucibus. Etiam sed vehicula nisl, nec convallis nibh. Morbi rhoncus dui ipsum, at dictum mi condimentum in. Nullam placerat dignissim augue ut ultricies. Nulla ultrices dui turpis, ut ornare nibh pretium sit amet. Aliquam dictum, arcu ac rutrum consectetur, velit eros pharetra metus, a fringilla eros ligula sit amet ipsum. Sed nec magna ut diam feugiat accumsan at ut nisl. Phasellus tellus enim, porta vitae luctus sed, tincidunt ullamcorper nulla. Nunc rutrum eros a venenatis ultrices. Nullam aliquet tincidunt libero a maximus.

## Duis ac metus

Ac nisl consequat pharetra. Nunc bibendum placerat suscipit. Phasellus non scelerisque magna. Cras blandit odio eu ligula consectetur, eu volutpat leo suscipit. Curabitur pretium ipsum in consectetur sodales. Aenean nulla dolor, dictum nec viverra sit amet, mattis vitae orci. Sed pretium nisi quis molestie tristique. Proin mattis ut purus at aliquet. Nunc ipsum urna, pellentesque eu enim sed, vehicula vehicula neque. Ut posuere rhoncus quam quis rutrum. Nunc tincidunt tellus ligula, ut feugiat ligula feugiat nec. Suspendisse ipsum dolor, hendrerit eget pharetra placerat, accumsan eget ex. Maecenas sed posuere arcu.
21 changes: 21 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Welcome to the Microservice Docs

## nav:
- Home: [index.md](./docs/index.md)
- About: [about.md](./docs/about.md)

## Lorem ipsum dolor

Sit amet, consectetur adipiscing elit. Aenean et nunc a lectus dictum luctus. In eu ipsum sollicitudin, mollis massa quis, gravida urna. Praesent vitae malesuada est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean sagittis vestibulum metus vel efficitur. Fusce pulvinar, quam sed eleifend finibus, lorem risus lobortis felis, quis finibus enim ligula ac libero. Proin imperdiet odio dolor, quis mattis arcu commodo sit amet. Aliquam dignissim, turpis eget lacinia dignissim, elit lectus imperdiet urna, sed congue enim purus ac odio. Etiam dignissim sapien in justo laoreet, at euismod metus consequat. Nulla in sapien a leo aliquam vestibulum quis vel libero. Nam viverra dignissim sem vitae imperdiet. Nulla facilisi. Donec nec magna vel tortor suscipit sodales. Vestibulum pharetra, magna eu consequat porttitor, odio dui dictum odio, eget sollicitudin velit leo condimentum lorem. Duis sodales, est sit amet tempus volutpat, sapien dolor rutrum sapien, at mattis augue lorem sit amet velit. Maecenas vitae lacus vehicula, bibendum tortor quis, imperdiet risus.

## Nunc rhoncus lectus

ac urna interdum, vitae suscipit enim congue. Cras sagittis semper eleifend. Duis ut gravida neque. Donec rhoncus magna a metus dignissim, scelerisque cursus elit varius. Nullam sit amet tortor enim. Etiam finibus purus id accumsan finibus. Vestibulum venenatis neque et ligula tempor pharetra. Vestibulum molestie tellus et mi feugiat tempor. Donec vestibulum sapien eu facilisis commodo. Donec mollis consectetur rutrum. Morbi in semper nisl, in convallis ex.

Aenean magna risus, aliquet vel ex nec, imperdiet sodales tellus. Mauris a pretium sem. Quisque lectus massa, vulputate id consequat et, scelerisque vitae diam. Sed erat neque, gravida et quam eget, sagittis pulvinar nisl. Praesent pulvinar hendrerit ante sed commodo. Morbi ut ipsum placerat, placerat nunc non, fringilla lacus. Integer dapibus facilisis mi, sodales facilisis purus rhoncus sit amet.

## Praesent ut mi ut

lorem finibus dignissim vel non massa. Nulla facilisi. Aliquam a dolor sit amet enim tristique condimentum ut eu turpis. Curabitur aliquam aliquet massa ut dignissim. Sed convallis at mi sit amet eleifend. Nullam ac est nisl. Morbi gravida purus non eleifend porttitor. Nulla viverra nunc ut orci porttitor imperdiet. Curabitur placerat sit amet odio congue tempor.

Fusce sodales ipsum in volutpat sollicitudin. Nam leo odio, molestie vel elementum vel, feugiat id neque. Ut et nibh nulla. Proin luctus arcu sed massa tempor, vitae commodo nibh lacinia. Vivamus vel feugiat odio, eu tristique lacus. Aliquam in sapien scelerisque arcu blandit cursus eget at massa. Aenean mattis urna mi, in tempus libero gravida at. Vestibulum imperdiet sit amet ex ac pharetra. Nulla congue odio libero, quis cursus libero interdum at. Donec posuere tellus ut nibh ultricies, rutrum lobortis augue vehicula. Vestibulum fringilla iaculis ante, vitae finibus leo tincidunt in. Nam eget nulla quis nulla lobortis accumsan in quis dolor.
6 changes: 5 additions & 1 deletion function/lambda_function.py
Original file line number Diff line number Diff line change
@@ -8,12 +8,16 @@ def lambda_handler(event, context):
Returns:
string: greeting response
"""
print('Starting functions\n---------------------------------------------'
print('Starting functions\n---------------------------------------------')

if event["input"] == "Hello":

return "World"

if event["input"] == "Hi":

return "Hi There"

else:

raise
2 changes: 1 addition & 1 deletion function/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Github==1.55
PyGithub==1.55
boto3==1.17.96
5 changes: 5 additions & 0 deletions mkdocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
site_name: My Docs
nav:
- Home: index.md
- About: about.md
theme: readthedocs