Mercurial > public > tweet-analysis
annotate README.md @ 5:54e71cf6e324
refactor code
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Fri, 17 Sep 2021 17:42:30 +0200 |
parents | 5c36f51105c2 |
children | 6541622b6127 |
rev | line source |
---|---|
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
1 # tweet-analysis |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
2 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
3 ## Structure |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
4 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
5 - src - Code for the application's Lambda function. |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
6 - events - Invocation events that you can use to invoke the function. |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
7 - tests - Unit tests for the application code. |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
8 - template.yaml - A template that defines the application's AWS resources. |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
9 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
10 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
|
11 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
|
12 resources through the same deployment process that updates your application code. |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
13 |
3
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
14 ## Secrets |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
15 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
|
16 the application do the following: |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
17 |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
18 **Create Twitter keys**: |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
19 - Go to AWS Secrets Manager Console |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
20 - Create `Other type of secrets` |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
21 - Create two keys called `KEY` and `BEARER` |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
22 - Add the values for each one |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
23 - Name the secret `tweet-analysis-keys` |
5c36f51105c2
fetch tweets working
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
1
diff
changeset
|
24 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
25 ## Deploy the application |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
26 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
27 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
|
28 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
|
29 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
|
30 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
31 To use the SAM CLI, you need the following tools. |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
32 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
33 * SAM CLI - |
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
34 [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
|
35 * [Python 3 installed](https://www.python.org/downloads/) |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
36 * 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
|
37 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
38 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
|
39 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
40 ```bash |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
41 sam build --use-container |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
42 sam deploy --guided |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
43 ``` |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
44 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
45 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
|
46 to AWS, with a series of prompts: |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
47 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
48 * **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
|
49 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
|
50 * **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
|
51 * **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
|
52 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
|
53 * **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
|
54 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
|
55 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
|
56 `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
|
57 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
|
58 * **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
|
59 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
|
60 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
61 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
|
62 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
63 **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
|
64 validation record to issue the certificate** |
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
65 |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
66 ## Use the SAM CLI to build and test locally |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
67 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
68 Build your application with the `sam build --use-container` command. |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
69 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
70 ```bash |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
71 tweet-analysis$ sam build --use-container |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
72 ``` |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
73 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
74 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
|
75 `.aws-sam/build` folder. |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
76 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
77 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
|
78 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
|
79 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
80 Run functions locally and invoke them with the `sam local invoke` command. |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
81 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
82 ```bash |
5
54e71cf6e324
refactor code
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
3
diff
changeset
|
83 tweet-analysis$ sam local invoke HelloWorldFunction --event events/sentiment_event.json |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
84 ``` |
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 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
|
87 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
88 ```bash |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
89 tweet-analysis$ sam local start-api |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
90 tweet-analysis$ curl http://localhost:3000/ |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
91 ``` |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
92 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
93 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
|
94 `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
|
95 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
96 ```yaml |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
97 Events: |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
98 HelloWorld: |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
99 Type: Api |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
100 Properties: |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
101 Path: /hello |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
102 Method: get |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
103 ``` |
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 ## Add a resource to your application |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
106 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
|
107 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
|
108 functions, triggers, and APIs. For resources not included in |
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
109 [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
|
110 you can use standard |
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
111 [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
|
112 resource types. |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
113 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
114 ## Fetch, tail, and filter Lambda function logs |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
115 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
116 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
|
117 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
|
118 several nifty features to help you quickly find the bug. |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
119 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
120 `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
|
121 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
122 ```bash |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
123 tweet-analysis$ sam logs -n HelloWorldFunction --stack-name tweet-analysis --tail |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
124 ``` |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
125 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
126 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
|
127 [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
|
128 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
129 ## Tests |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
130 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
131 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
|
132 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
133 ```bash |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
134 tweet-analysis$ pip install -r tests/requirements.txt --user |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
135 # unit test |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
136 tweet-analysis$ python -m pytest tests/unit -v |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
137 # integration test, requiring deploying the stack first. |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
138 # 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
|
139 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
|
140 ``` |
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 ## Cleanup |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
143 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
144 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
|
145 name, you can run the following: |
0
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
146 |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
147 ```bash |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
148 aws cloudformation delete-stack --stack-name tweet-analysis |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
149 ``` |
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 ## Resources |
cea9500dca25
first commit
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
152 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
153 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
|
154 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
|
155 |
1
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
156 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
|
157 and learn how authors developed their applications: |
0277e7fc0f0a
first successful sam deploy
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
0
diff
changeset
|
158 [AWS Serverless Application Repository main page](https://aws.amazon.com/serverless/serverlessrepo/) |