-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Add FAQ section to docs #314
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
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
|
|
||
| FAQ | ||
| === | ||
|
|
||
| Frequently Asked Questions | ||
|
|
||
| .. contents:: | ||
| :local: | ||
|
|
||
| How to manage multiple environments? | ||
| ------------------------------------ | ||
|
|
||
| *Terminology clarification: Environment and Stage can normally be used interchangeably but since AWS API Gateway relies on a concrete concept of Stages we'll use the term Environment here to avoid confusion.* | ||
|
|
||
| **We recommend a one-to-one mapping of environment to Cloudformation Stack.** | ||
|
|
||
| This means having a separate CloudFormation stack per environment, using a single template file with a dynamically set target stack via the ``--stack-name`` parameter in the ``aws cloudformation deploy`` command. | ||
|
|
||
| For example, lets say we have 3 environments (dev, test, and prod). | ||
| Each of those would have their own CloudFormation stack — `dev-stack`, `test-stack`, `prod-stack`. Our CI/CD system will deploy to `dev-stack`, `test-stack`, and then `prod-stack` but will be pushing one template through all of these stacks. | ||
|
|
||
| This approach limits the 'blast radius' for any given deployment since all resources for each environment are scoped to a different CloudFormation Stack, so we will never be editing production resources on accident. | ||
|
|
||
| If we need to bring up separate stacks for different reasons (multiple region deployments, developer/branch stacks) it will be straightforward to do so with this approach since the same template can be used to bring up and manage a new stack independent of any others. | ||
|
|
||
| In cases where you need to manage different stages differently this can be done through a combination of Stack Parameters, Conditions, and Fn::If statements. | ||
|
|
||
| How to enable API Gateway Logs | ||
| ------------------------------ | ||
|
|
||
| Work is underway to make this functionality part of the SAM specification. Until then a suggested workaround is to use the ``aws cli update-stage`` command to enable it. | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| aws apigateway update-stage \ | ||
| --rest-api-id <api-id> \ | ||
| --stage-name <stage-name> \ | ||
| --patch-operations \ | ||
| op=replace,path=/*/*/logging/dataTrace,value=true \ | ||
| op=replace,path=/*/*/logging/loglevel,value=Info \ | ||
| op=replace,path=/*/*/metrics/enabled,value=true | ||
|
|
||
| The command above can be run as a post deployment CI step or it could be triggered by a `custom resource <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html/>`_ within the same CloudFormation template. | ||
|
|
||
| Please note that in either case you will see metric gaps between the time CloudFormation updates API Gateway and the time this command runs. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! What did you use to catch these?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just the warnings from
sphinx-buildwhen runningmake html:)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice. Will keep that in mind in the future :)