# HG changeset patch # User Dennis # Date 1691780406 0 # Node ID 6794343ad76d5f5d6ec77bb317e2406ceb6c60a1 # Parent 6f34b658af3cc81159fbed07828e546e529c7f5a Change info files diff -r 6f34b658af3c -r 6794343ad76d .github/FUNDING.yml --- a/.github/FUNDING.yml Thu Nov 04 10:01:12 2021 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [denniscm190] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff -r 6f34b658af3c -r 6794343ad76d .github/ISSUE_TEMPLATE/bug_report.md --- a/.github/ISSUE_TEMPLATE/bug_report.md Thu Nov 04 10:01:12 2021 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff -r 6f34b658af3c -r 6794343ad76d .github/ISSUE_TEMPLATE/feature_request.md --- a/.github/ISSUE_TEMPLATE/feature_request.md Thu Nov 04 10:01:12 2021 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff -r 6f34b658af3c -r 6794343ad76d LICENSE.md --- a/LICENSE.md Thu Nov 04 10:01:12 2021 +0100 +++ b/LICENSE.md Fri Aug 11 19:00:06 2023 +0000 @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 Dennis Concepción Martín +Copyright (c) 2023 Dennis Concepción Martín Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -19,3 +19,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff -r 6f34b658af3c -r 6794343ad76d README.md --- a/README.md Thu Nov 04 10:01:12 2021 +0100 +++ b/README.md Fri Aug 11 19:00:06 2023 +0000 @@ -1,159 +1,11 @@ -# tweet-analysis [ARCHIVED] -Serverless application to fetch & analyse tweets using AWS Comprehend. - -## Structure - -- src - Code for the application's Lambda function. -- events - Invocation events that you can use to invoke the function. -- tests - Unit and integration tests for the application code. -- template.yaml - A template that defines the application's AWS resources. - -The application uses several AWS resources, including Lambda functions and an API Gateway API. -These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS -resources through the same deployment process that updates your application code. - -## Secrets -There are some process that must be made manually, such us secrets creation in AWS Secrets Manager. Before deploying -the application do the following: - -**Create Twitter keys**: -- Go to AWS Secrets Manager Console -- Create `Other type of secrets` -- Create two keys called `KEY` and `BEARER` -- Add the values for each one -- Name the secret `tweet-analysis-keys` - -## Deploy the application - -The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality -for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that -matches Lambda. It can also emulate your application's build environment and API. - -To use the SAM CLI, you need the following tools. - -* SAM CLI - -[Install the SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) -* [Python 3 installed](https://www.python.org/downloads/) -* Docker - [Install Docker community edition](https://hub.docker.com/search/?type=edition&offering=community) - -To build and deploy your application for the first time, run the following in your shell: -```bash -sam build --use-container -sam deploy --guided -``` - -The first command will build the source of your application. The second command will package and deploy your application -to AWS, with a series of prompts: +# tweet-analysis -* **Stack Name**: The name of the stack to deploy to CloudFormation. This should be unique to your account and region, -and a good starting point would be something matching your project name. -* **AWS Region**: The AWS region you want to deploy your app to. -* **Confirm changes before deploy**: If set to yes, any change sets will be shown to you before execution for manual -review. If set to no, the AWS SAM CLI will automatically deploy application changes. -* **Allow SAM CLI IAM role creation**: Many AWS SAM templates, including this example, create AWS IAM roles required -for the AWS Lambda function(s) included to access AWS services. By default, these are scoped down to minimum required -permissions. To deploy an AWS CloudFormation stack which creates or modifies IAM roles, the `CAPABILITY_IAM` value for -`capabilities` must be provided. If permission isn't provided through this prompt, to deploy this example you must -explicitly pass `--capabilities CAPABILITY_IAM` to the `sam deploy` command. -* **Save arguments to `samconfig.toml`**: If set to yes, your choices will be saved to a configuration file inside the -project, so that in the future you can just re-run `sam deploy` without parameters to deploy changes to your application. - -You can find your API Gateway Endpoint URL in the output values displayed after deployment. - -**If a certificate in AWS Certificate Manager is created with the template, you have to create manually the DNS -validation record to issue the certificate** - -## Use the SAM CLI to build and test locally - -Build your application with the `sam build --use-container` command. - -```bash -tweet-analysis$ sam build --use-container -``` - -The SAM CLI installs dependencies defined in `src/requirements.txt`, creates a deployment package, and saves it in the -`.aws-sam/build` folder. - -Test a single function by invoking it directly with a test event. An event is a JSON document that represents the input -that the function receives from the event source. Test events are included in the `events` folder in this project. +Serverless app to fetch & analyse tweets using AWS Comprehend. -Run functions locally and invoke them with the `sam local invoke` command. - -```bash -tweet-analysis$ sam local invoke HelloWorldFunction --event events/sentiment_event.json -``` - -The SAM CLI can also emulate your application's API. Use the `sam local start-api` to run the API locally on port 3000. - -```bash -tweet-analysis$ sam local start-api -tweet-analysis$ curl http://localhost:3000/ -``` - -The SAM CLI reads the application template to determine the API's routes and the functions that they invoke. The -`Events` property on each function's definition includes the route and method for each path. - -```yaml - Events: - HelloWorld: - Type: Api - Properties: - Path: /hello - Method: get -``` - -## Add a resource to your application -The application template uses AWS Serverless Application Model (AWS SAM) to define application resources. AWS SAM is an -extension of AWS CloudFormation with a simpler syntax for configuring common serverless application resources such as -functions, triggers, and APIs. For resources not included in -[the SAM specification](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md), -you can use standard -[AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) -resource types. - -## Fetch, tail, and filter Lambda function logs - -To simplify troubleshooting, SAM CLI has a command called `sam logs`. `sam logs` lets you fetch logs generated by your -deployed Lambda function from the command line. In addition to printing the logs on the terminal, this command has -several nifty features to help you quickly find the bug. +- Docs: +- Main repo on SourceHut: + - Mirrors: + - Github: + - Gitlab: -`NOTE`: This command works for all AWS Lambda functions; not just the ones you deploy using SAM. - -```bash -tweet-analysis$ sam logs -n HelloWorldFunction --stack-name tweet-analysis --tail -``` - -You can find more information and examples about filtering Lambda function logs in the -[SAM CLI Documentation](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-logging.html). - -## Tests - -Tests are defined in the `tests` folder in this project. Use PIP to install the test dependencies and run tests. - -```bash -tweet-analysis$ pip install -r tests/requirements.txt --user -# unit test -tweet-analysis$ python -m pytest tests/unit -v -# integration test, requiring deploying the stack first. -# Create the env variable AWS_SAM_STACK_NAME with the name of the stack we are testing -tweet-analysis$ AWS_SAM_STACK_NAME= python -m pytest tests/integration -v -``` - -## Cleanup - -To delete the sample application that you created, use the AWS CLI. Assuming you used your project name for the stack -name, you can run the following: - -```bash -aws cloudformation delete-stack --stack-name tweet-analysis -``` - -## Resources - -See the [AWS SAM developer guide](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) -for an introduction to SAM specification, the SAM CLI, and serverless application concepts. - -Next, you can use AWS Serverless Application Repository to deploy ready to use Apps that go beyond hello world samples -and learn how authors developed their applications: -[AWS Serverless Application Repository main page](https://aws.amazon.com/serverless/serverlessrepo/)