AWS: Add fallback support in ${cf} and ${s3} #5758
Merged
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.
What did you implement:
Add fallback support in
${cf}
and${s3}
, so every variable syntaxes support fallback.Closes #4940.
Closes #5756.
How did you implement it:
Currently,
${cf}
and${s3}
will throw error if AWS request fails.This behavior is supposed to be expected since it can prevent deploying broken service.
However, since current implementation of fallback (
Variable#overwrite
) requires all of Promises is fulfilled,${cf}
and${s3}
does not support fallback.After this PR,
#overwrite
rid rejected promises, so first fulfilled value is used as fallback.Note: I think this change makes it easier to address #3367, #5057, #5369 and #5757.
How can we verify it:
npm install -g exoego/serverless#default-values
sls deploy
below and confirm it complete successfully.sls deploy
below and confirm it aborts due to lack of fallback.Todos:
Write documentationN/AIs this ready for review?: YES
Is it a breaking change?: NO