annotate README.md @ 11:c94e93830b3d

Update issue templates committer: GitHub <noreply@github.com>
author Dennis C. M. <dennis@denniscm.com>
date Tue, 05 Oct 2021 18:12:56 +0200
parents 6541622b6127
children 6f34b658af3c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
1 # tweet-analysis
8
6541622b6127 add tweet analysis method
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 5
diff changeset
2 Serverless application to fetch & analyse tweets using AWS Comprehend.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
3
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
4 ## Structure
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
5
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
6 - src - Code for the application's Lambda function.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
7 - events - Invocation events that you can use to invoke the function.
8
6541622b6127 add tweet analysis method
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 5
diff changeset
8 - tests - Unit and integration tests for the application code.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
9 - template.yaml - A template that defines the application's AWS resources.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
10
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
11 The application uses several AWS resources, including Lambda functions and an API Gateway API.
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
12 These resources are defined in the `template.yaml` file in this project. You can update the template to add AWS
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
13 resources through the same deployment process that updates your application code.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
14
3
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
15 ## Secrets
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
16 There are some process that must be made manually, such us secrets creation in AWS Secrets Manager. Before deploying
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
17 the application do the following:
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
18
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
19 **Create Twitter keys**:
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
20 - Go to AWS Secrets Manager Console
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
21 - Create `Other type of secrets`
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
22 - Create two keys called `KEY` and `BEARER`
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
23 - Add the values for each one
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
24 - Name the secret `tweet-analysis-keys`
5c36f51105c2 fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 1
diff changeset
25
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
26 ## Deploy the application
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
27
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
28 The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
29 for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
30 matches Lambda. It can also emulate your application's build environment and API.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
31
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
32 To use the SAM CLI, you need the following tools.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
33
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
34 * SAM CLI -
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
35 [Install the SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
36 * [Python 3 installed](https://www.python.org/downloads/)
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
37 * Docker - [Install Docker community edition](https://hub.docker.com/search/?type=edition&offering=community)
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
38
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
39 To build and deploy your application for the first time, run the following in your shell:
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
40
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
41 ```bash
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
42 sam build --use-container
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
43 sam deploy --guided
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
44 ```
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
45
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
46 The first command will build the source of your application. The second command will package and deploy your application
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
47 to AWS, with a series of prompts:
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
48
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
49 * **Stack Name**: The name of the stack to deploy to CloudFormation. This should be unique to your account and region,
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
50 and a good starting point would be something matching your project name.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
51 * **AWS Region**: The AWS region you want to deploy your app to.
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
52 * **Confirm changes before deploy**: If set to yes, any change sets will be shown to you before execution for manual
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
53 review. If set to no, the AWS SAM CLI will automatically deploy application changes.
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
54 * **Allow SAM CLI IAM role creation**: Many AWS SAM templates, including this example, create AWS IAM roles required
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
55 for the AWS Lambda function(s) included to access AWS services. By default, these are scoped down to minimum required
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
56 permissions. To deploy an AWS CloudFormation stack which creates or modifies IAM roles, the `CAPABILITY_IAM` value for
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
57 `capabilities` must be provided. If permission isn't provided through this prompt, to deploy this example you must
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
58 explicitly pass `--capabilities CAPABILITY_IAM` to the `sam deploy` command.
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
59 * **Save arguments to `samconfig.toml`**: If set to yes, your choices will be saved to a configuration file inside the
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
60 project, so that in the future you can just re-run `sam deploy` without parameters to deploy changes to your application.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
61
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
62 You can find your API Gateway Endpoint URL in the output values displayed after deployment.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
63
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
64 **If a certificate in AWS Certificate Manager is created with the template, you have to create manually the DNS
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
65 validation record to issue the certificate**
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
66
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
67 ## Use the SAM CLI to build and test locally
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
68
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
69 Build your application with the `sam build --use-container` command.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
70
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
71 ```bash
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
72 tweet-analysis$ sam build --use-container
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
73 ```
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
74
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
75 The SAM CLI installs dependencies defined in `src/requirements.txt`, creates a deployment package, and saves it in the
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
76 `.aws-sam/build` folder.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
77
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
78 Test a single function by invoking it directly with a test event. An event is a JSON document that represents the input
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
79 that the function receives from the event source. Test events are included in the `events` folder in this project.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
80
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
81 Run functions locally and invoke them with the `sam local invoke` command.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
82
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
83 ```bash
5
54e71cf6e324 refactor code
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 3
diff changeset
84 tweet-analysis$ sam local invoke HelloWorldFunction --event events/sentiment_event.json
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
85 ```
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
86
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
87 The SAM CLI can also emulate your application's API. Use the `sam local start-api` to run the API locally on port 3000.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
88
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
89 ```bash
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
90 tweet-analysis$ sam local start-api
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
91 tweet-analysis$ curl http://localhost:3000/
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
92 ```
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
93
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
94 The SAM CLI reads the application template to determine the API's routes and the functions that they invoke. The
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
95 `Events` property on each function's definition includes the route and method for each path.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
96
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
97 ```yaml
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
98 Events:
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
99 HelloWorld:
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
100 Type: Api
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
101 Properties:
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
102 Path: /hello
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
103 Method: get
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
104 ```
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
105
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
106 ## Add a resource to your application
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
107 The application template uses AWS Serverless Application Model (AWS SAM) to define application resources. AWS SAM is an
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
108 extension of AWS CloudFormation with a simpler syntax for configuring common serverless application resources such as
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
109 functions, triggers, and APIs. For resources not included in
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
110 [the SAM specification](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md),
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
111 you can use standard
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
112 [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
113 resource types.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
114
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
115 ## Fetch, tail, and filter Lambda function logs
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
116
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
117 To simplify troubleshooting, SAM CLI has a command called `sam logs`. `sam logs` lets you fetch logs generated by your
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
118 deployed Lambda function from the command line. In addition to printing the logs on the terminal, this command has
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
119 several nifty features to help you quickly find the bug.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
120
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
121 `NOTE`: This command works for all AWS Lambda functions; not just the ones you deploy using SAM.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
122
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
123 ```bash
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
124 tweet-analysis$ sam logs -n HelloWorldFunction --stack-name tweet-analysis --tail
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
125 ```
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
126
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
127 You can find more information and examples about filtering Lambda function logs in the
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
128 [SAM CLI Documentation](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-logging.html).
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
129
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
130 ## Tests
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
131
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
132 Tests are defined in the `tests` folder in this project. Use PIP to install the test dependencies and run tests.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
133
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
134 ```bash
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
135 tweet-analysis$ pip install -r tests/requirements.txt --user
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
136 # unit test
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
137 tweet-analysis$ python -m pytest tests/unit -v
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
138 # integration test, requiring deploying the stack first.
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
139 # Create the env variable AWS_SAM_STACK_NAME with the name of the stack we are testing
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
140 tweet-analysis$ AWS_SAM_STACK_NAME=<stack-name> python -m pytest tests/integration -v
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
141 ```
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
142
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
143 ## Cleanup
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
144
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
145 To delete the sample application that you created, use the AWS CLI. Assuming you used your project name for the stack
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
146 name, you can run the following:
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
147
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
148 ```bash
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
149 aws cloudformation delete-stack --stack-name tweet-analysis
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
150 ```
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
151
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
152 ## Resources
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
153
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
154 See the [AWS SAM developer guide](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html)
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
155 for an introduction to SAM specification, the SAM CLI, and serverless application concepts.
0
cea9500dca25 first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
156
1
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
157 Next, you can use AWS Serverless Application Repository to deploy ready to use Apps that go beyond hello world samples
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
158 and learn how authors developed their applications:
0277e7fc0f0a first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
159 [AWS Serverless Application Repository main page](https://aws.amazon.com/serverless/serverlessrepo/)