Repository: dapr/components-contrib
Pull request #1066 (2021-08-09 18:47:41)

pubsub/aws/snssqs to support SQS dead-letter queue
# Description

I've added 2 metadata fields which define:
* the dead-letters queue (DLQ) name (mandatory)
* and the max number of times a message is not acknowledged before it is moved to DLQ by SQS (optiona)

Once those fields are set  the deletion of messages after the `messageRetryLimit` is not performed and the component assumes that the message is automatically moved by SQS to the defined DLQ.

Additionally, I've added an integration test that runs either with AWS directly or locally using `localstack` (sns,sqs,sts mockups) and tests 2 scenarios:
* current default behavior (w/o DLQ)
* new behavior with DLQ

## Issue reference
https://github.com/dapr/components-contrib/issues/1065

## Checklist

Please make sure you've completed the relevant tasks for this PR, out of the following list:

* [X] Code compiles correctly
* [X] Created/updated tests
* [ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#_[issue number]_


artursouza: @halspang Please, check this PR with Matt.
codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (98222d9) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.14%`.
> The diff coverage is `5.08%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.38%   -0.15%     
==========================================
  Files         132      132              
  Lines       10870    10934      +64     
==========================================
+ Hits         3754     3760       +6     
- Misses       6736     6792      +56     
- Partials      380      382       +2     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `24.48% <5.08%> (-4.51%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <0.00%> (-0.64%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [253ef85...98222d9](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (98222d9) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.14%`.
> The diff coverage is `5.08%`.

> :exclamation: Current head 98222d9 differs from pull request most recent head a4b5c26. Consider uploading reports for the commit a4b5c26 to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.38%   -0.15%     
==========================================
  Files         132      132              
  Lines       10870    10934      +64     
==========================================
+ Hits         3754     3760       +6     
- Misses       6736     6792      +56     
- Partials      380      382       +2     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `24.48% <5.08%> (-4.51%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <0.00%> (-0.64%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [253ef85...a4b5c26](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (a4b5c26) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.14%`.
> The diff coverage is `5.00%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.38%   -0.15%     
==========================================
  Files         132      132              
  Lines       10870    10934      +64     
==========================================
+ Hits         3754     3760       +6     
- Misses       6736     6792      +56     
- Partials      380      382       +2     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `24.48% <5.00%> (-4.51%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <0.00%> (-0.64%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [253ef85...a4b5c26](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

amimimor: hi @artursouza . My integration tests over AWS are failing with 'missing region' which indicates that other AWS related envvars are indeed present in the build context (somehow)(i've set t.Skip in cases where the credentials related envvars are missing). Am I right? If so, I need another AWS envvar, namely `AWS_REGION` to be set to a valid value in the test context
amimimor: > hi @artursouza . My integration tests over AWS are failing with 'missing region' which indicates that other AWS related envvars are indeed present in the build context (somehow)(i've set t.Skip in cases where the credentials related envvars are missing). Am I right? If so, I need another AWS envvar, namely `AWS_REGION` to be set to a valid value in the test context

well, the tests seem to pass ok now (maybe I saw a cached result). thanks anyways and sorry for the bother
codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (a4b5c26) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.14%`.
> The diff coverage is `5.00%`.

> :exclamation: Current head a4b5c26 differs from pull request most recent head d17746f. Consider uploading reports for the commit d17746f to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.38%   -0.15%     
==========================================
  Files         132      132              
  Lines       10870    10934      +64     
==========================================
+ Hits         3754     3760       +6     
- Misses       6736     6792      +56     
- Partials      380      382       +2     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `24.48% <5.00%> (-4.51%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <0.00%> (-0.64%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [4d3e4eb...d17746f](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (d17746f) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **increase** coverage by `0.03%`.
> The diff coverage is `38.32%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
+ Coverage   34.53%   34.56%   +0.03%     
==========================================
  Files         132      132              
  Lines       10870    10955      +85     
==========================================
+ Hits         3754     3787      +33     
- Misses       6736     6780      +44     
- Partials      380      388       +8     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [4d3e4eb...d17746f](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (d17746f) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **increase** coverage by `0.03%`.
> The diff coverage is `38.32%`.

> :exclamation: Current head d17746f differs from pull request most recent head aca1b3e. Consider uploading reports for the commit aca1b3e to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
+ Coverage   34.53%   34.56%   +0.03%     
==========================================
  Files         132      132              
  Lines       10870    10955      +85     
==========================================
+ Hits         3754     3787      +33     
- Misses       6736     6780      +44     
- Partials      380      388       +8     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [203da8b...aca1b3e](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (aca1b3e) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **increase** coverage by `0.03%`.
> The diff coverage is `37.33%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
+ Coverage   34.53%   34.56%   +0.03%     
==========================================
  Files         132      132              
  Lines       10870    10958      +88     
==========================================
+ Hits         3754     3788      +34     
- Misses       6736     6781      +45     
- Partials      380      389       +9     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |
| ... and [2 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [203da8b...aca1b3e](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (aca1b3e) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **increase** coverage by `0.03%`.
> The diff coverage is `37.33%`.

> :exclamation: Current head aca1b3e differs from pull request most recent head ec5c12f. Consider uploading reports for the commit ec5c12f to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
+ Coverage   34.53%   34.56%   +0.03%     
==========================================
  Files         132      132              
  Lines       10870    10958      +88     
==========================================
+ Hits         3754     3788      +34     
- Misses       6736     6781      +45     
- Partials      380      389       +9     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |
| ... and [2 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [1042314...ec5c12f](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (ec5c12f) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.42%`.
> The diff coverage is `23.33%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.10%   -0.43%     
==========================================
  Files         132      133       +1     
  Lines       10870    11115     +245     
==========================================
+ Hits         3754     3791      +37     
- Misses       6736     6934     +198     
- Partials      380      390      +10     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |
| ... and [3 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [1042314...ec5c12f](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (ec5c12f) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.42%`.
> The diff coverage is `23.33%`.

> :exclamation: Current head ec5c12f differs from pull request most recent head 811c4b2. Consider uploading reports for the commit 811c4b2 to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.10%   -0.43%     
==========================================
  Files         132      133       +1     
  Lines       10870    11115     +245     
==========================================
+ Hits         3754     3791      +37     
- Misses       6736     6934     +198     
- Partials      380      390      +10     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |
| ... and [3 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [1042314...811c4b2](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (811c4b2) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.42%`.
> The diff coverage is `23.33%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.10%   -0.43%     
==========================================
  Files         132      133       +1     
  Lines       10870    11115     +245     
==========================================
+ Hits         3754     3791      +37     
- Misses       6736     6934     +198     
- Partials      380      390      +10     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |
| ... and [3 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [1042314...811c4b2](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (811c4b2) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.42%`.
> The diff coverage is `23.33%`.

> :exclamation: Current head 811c4b2 differs from pull request most recent head 2722455. Consider uploading reports for the commit 2722455 to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.10%   -0.43%     
==========================================
  Files         132      133       +1     
  Lines       10870    11115     +245     
==========================================
+ Hits         3754     3791      +37     
- Misses       6736     6934     +198     
- Partials      380      390      +10     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |
| ... and [3 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [7aac0ab...2722455](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (2722455) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.42%`.
> The diff coverage is `23.33%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.10%   -0.43%     
==========================================
  Files         132      133       +1     
  Lines       10870    11115     +245     
==========================================
+ Hits         3754     3791      +37     
- Misses       6736     6934     +198     
- Partials      380      390      +10     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |
| ... and [3 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [7aac0ab...2722455](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (2722455) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.42%`.
> The diff coverage is `23.33%`.

> :exclamation: Current head 2722455 differs from pull request most recent head 8f4f6ab. Consider uploading reports for the commit 8f4f6ab to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.10%   -0.43%     
==========================================
  Files         132      133       +1     
  Lines       10870    11115     +245     
==========================================
+ Hits         3754     3791      +37     
- Misses       6736     6934     +198     
- Partials      380      390      +10     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| [authentication/azure/auth.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvYXV0aC5nbw==) | `57.02% <57.02%> (ø)` | |
| ... and [3 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [405ba37...8f4f6ab](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (8f4f6ab) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.49%`.
> The diff coverage is `23.45%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.03%   -0.50%     
==========================================
  Files         132      134       +2     
  Lines       10870    11194     +324     
==========================================
+ Hits         3754     3810      +56     
- Misses       6736     6992     +256     
- Partials      380      392      +12     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [bindings/aws/ses/ses.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYXdzL3Nlcy9zZXMuZ28=) | `24.05% <24.05%> (ø)` | |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| ... and [5 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [405ba37...8f4f6ab](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (8f4f6ab) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.49%`.
> The diff coverage is `23.45%`.

> :exclamation: Current head 8f4f6ab differs from pull request most recent head e5d5b37. Consider uploading reports for the commit e5d5b37 to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.03%   -0.50%     
==========================================
  Files         132      134       +2     
  Lines       10870    11194     +324     
==========================================
+ Hits         3754     3810      +56     
- Misses       6736     6992     +256     
- Partials      380      392      +12     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [bindings/aws/ses/ses.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYXdzL3Nlcy9zZXMuZ28=) | `24.05% <24.05%> (ø)` | |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| [state/azure/blobstorage/blobstorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvYmxvYnN0b3JhZ2UvYmxvYnN0b3JhZ2UuZ28=) | `24.46% <50.00%> (+0.01%)` | :arrow_up: |
| ... and [5 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [796df4d...e5d5b37](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).

codecov[bot]: # [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) Report
> Merging [#1066](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (e5d5b37) into [master](https://codecov.io/gh/dapr/components-contrib/commit/253ef854c5587b4922952b49b53707032742c55b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) (253ef85) will **decrease** coverage by `0.50%`.
> The diff coverage is `23.40%`.

[![Impacted file tree graph](https://codecov.io/gh/dapr/components-contrib/pull/1066/graphs/tree.svg?width=650&height=150&src=pr&token=DHERT4KDFA&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)

```diff
@@            Coverage Diff             @@
##           master    #1066      +/-   ##
==========================================
- Coverage   34.53%   34.03%   -0.51%     
==========================================
  Files         132      134       +2     
  Lines       10870    11195     +325     
==========================================
+ Hits         3754     3810      +56     
- Misses       6736     6993     +257     
- Partials      380      392      +12     
```


| [Impacted Files](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | Coverage Δ | |
|---|---|---|
| [authentication/azure/storage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YXV0aGVudGljYXRpb24vYXp1cmUvc3RvcmFnZS5nbw==) | `0.00% <0.00%> (ø)` | |
| [...indings/azure/servicebusqueues/servicebusqueues.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYXp1cmUvc2VydmljZWJ1c3F1ZXVlcy9zZXJ2aWNlYnVzcXVldWVzLmdv) | `15.06% <0.00%> (-0.21%)` | :arrow_down: |
| [bindings/smtp/smtp.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3Mvc210cC9zbXRwLmdv) | `53.33% <0.00%> (-1.84%)` | :arrow_down: |
| [pubsub/rocketmq/rocketmq.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3JvY2tldG1xLmdv) | `0.00% <ø> (ø)` | |
| [pubsub/rocketmq/settings.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL3JvY2tldG1xL3NldHRpbmdzLmdv) | `86.66% <ø> (ø)` | |
| [state/azure/tablestorage/tablestorage.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvYXp1cmUvdGFibGVzdG9yYWdlL3RhYmxlc3RvcmFnZS5nbw==) | `13.20% <0.00%> (ø)` | |
| [bindings/alicloud/tablestore/tablestore.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYWxpY2xvdWQvdGFibGVzdG9yZS90YWJsZXN0b3JlLmdv) | `2.54% <2.54%> (ø)` | |
| [pubsub/aws/snssqs/snssqs.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-cHVic3ViL2F3cy9zbnNzcXMvc25zc3FzLmdv) | `26.57% <14.28%> (-2.42%)` | :arrow_down: |
| [bindings/aws/ses/ses.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-YmluZGluZ3MvYXdzL3Nlcy9zZXMuZ28=) | `24.05% <24.05%> (ø)` | |
| [state/redis/redis.go](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr#diff-c3RhdGUvcmVkaXMvcmVkaXMuZ28=) | `42.22% <33.33%> (-0.64%)` | :arrow_down: |
| ... and [6 more](https://codecov.io/gh/dapr/components-contrib/pull/1066/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Last update [796df4d...e5d5b37](https://codecov.io/gh/dapr/components-contrib/pull/1066?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dapr).


Patch:
diff --git a/pubsub/aws/snssqs/snssqs.go b/pubsub/aws/snssqs/snssqs.go
index 1c8a7a33..0116fe2b 100644
--- a/pubsub/aws/snssqs/snssqs.go
+++ b/pubsub/aws/snssqs/snssqs.go
@@ -38,7 +38,8 @@ type sqsQueueInfo struct {
 type snsSqsMetadata struct {
 	// name of the queue for this application. The is provided by the runtime as "consumerID"
 	sqsQueueName string
-
+	// name of the dead letter queue for this application
+	sqsDeadLettersQueueName string
 	// aws endpoint for the component to use.
 	Endpoint string
 	// access key to use for accessing sqs/sns
@@ -54,6 +55,9 @@ type snsSqsMetadata struct {
 	messageVisibilityTimeout int64
 	// number of times to resend a message after processing of that message fails before removing that message from the queue. Default: 10
 	messageRetryLimit int64
+	// if sqsDeadLettersQueueName is set to a value, then the messageReceiveLimit defines the number of times a message is received
+	// before it is moved to the dead-letters queue. This value must be smaller than messageRetryLimit
+	messageReceiveLimit int64
 	// amount of time to await receipt of a message before making another request. Default: 1
 	messageWaitTimeSeconds int64
 	// maximum number of messages to receive from the queue at a time. Default: 10, Maximum: 10
@@ -65,6 +69,7 @@ const (
 	awsSnsTopicNameKey = "dapr-topic-name"
 )
 
+// NewSnsSqs - constructor for a new snssqs dapr component
 func NewSnsSqs(l logger.Logger) pubsub.PubSub {
 	return &snsSqs{
 		logger:        l,
@@ -86,7 +91,7 @@ func getAliasedProperty(aliases []string, metadata pubsub.Metadata) (string, boo
 func parseInt64(input string, propertyName string) (int64, error) {
 	number, err := strconv.Atoi(input)
 	if err != nil {
-		return -1, fmt.Errorf("parsing %s failed with: %v", propertyName, err)
+		return -1, fmt.Errorf("parsing %s failed with: %w", propertyName, err)
 	}
 
 	return int64(number), nil
@@ -175,6 +180,24 @@ func (s *snsSqs) getSnsSqsMetatdata(metadata pubsub.Metadata) (*snsSqsMetadata,
 		md.messageRetryLimit = retryLimit
 	}
 
+	if val, ok := getAliasedProperty([]string{"sqsDeadLettersQueueName"}, metadata); ok {
+		md.sqsDeadLettersQueueName = val
+	}
+
+	if val, ok := getAliasedProperty([]string{"messageReceiveLimit"}, metadata); ok {
+		messageReceiveLimit, err := parseInt64(val, "messageReceiveLimit")
+		if err != nil {
+			return nil, err
+		}
+		// assign: used provided configuration
+		md.messageReceiveLimit = messageReceiveLimit
+	}
+
+	// XOR on having either a valid messageReceiveLimit and invalid sqsDeadLettersQueueName, and vice versa
+	if (md.messageReceiveLimit > 0 || len(md.sqsDeadLettersQueueName) > 0) && !(md.messageReceiveLimit > 0 && len(md.sqsDeadLettersQueueName) > 0) {
+		return nil, errors.New("to use SQS dead letters queue, messageReceiveLimit and sqsDeadLettersQueueName must both be set to a value")
+	}
+
 	if val, ok := props["messageWaitTimeSeconds"]; !ok {
 		md.messageWaitTimeSeconds = 1
 	} else {
@@ -377,7 +400,7 @@ func (s *snsSqs) acknowledgeMessage(queueURL string, receiptHandle *string) erro
 	return err
 }
 
-func (s *snsSqs) handleMessage(message *sqs.Message, queueInfo *sqsQueueInfo, handler pubsub.Handler) error {
+func (s *snsSqs) handleMessage(message *sqs.Message, queueInfo, deadLettersQueueInfo *sqsQueueInfo, handler pubsub.Handler) error {
 	// if this message has been received > x times, delete from queue, it's borked
 	recvCount, ok := message.Attributes[sqs.MessageSystemAttributeNameApproximateReceiveCount]
 
@@ -391,23 +414,28 @@ func (s *snsSqs) handleMessage(message *sqs.Message, queueInfo *sqsQueueInfo, ha
 		return fmt.Errorf("error parsing ApproximateReceiveCount from message: %v", message)
 	}
 
-	// if we are over the allowable retry limit, delete the message from the queue
-	// TODO dead letter queue
-	if recvCountInt >= s.metadata.messageRetryLimit {
+	// if we are over the allowable retry limit, and there is no dead-letters queue, delete the message from the queue.
+	if deadLettersQueueInfo == nil && recvCountInt >= s.metadata.messageRetryLimit {
 		if innerErr := s.acknowledgeMessage(queueInfo.url, message.ReceiptHandle); innerErr != nil {
-			return fmt.Errorf("error acknowledging message after receiving the message too many times: %v", innerErr)
+			return fmt.Errorf("error acknowledging message after receiving the message too many times: %w", innerErr)
 		}
 
 		return fmt.Errorf(
 			"message received greater than %v times, deleting this message without further processing", s.metadata.messageRetryLimit)
 	}
+	// ... else, there is no need to actively do something if we reached the limit defined in messageReceiveLimit as the message had
+	// already been moved to the dead-letters queue by SQS
+	if deadLettersQueueInfo != nil && recvCountInt >= s.metadata.messageReceiveLimit {
+		s.logger.Warnf(
+			"message received greater than %v times, moving this message without further processing to dead-letters queue: %v", s.metadata.messageReceiveLimit, s.metadata.sqsDeadLettersQueueName)
+	}
 
 	// otherwise try to handle the message
 	var messageBody snsMessage
 	err = json.Unmarshal([]byte(*(message.Body)), &messageBody)
 
 	if err != nil {
-		return fmt.Errorf("error unmarshalling message: %v", err)
+		return fmt.Errorf("error unmarshalling message: %w", err)
 	}
 
 	topic := parseTopicArn(messageBody.TopicArn)
@@ -418,14 +446,14 @@ func (s *snsSqs) handleMessage(message *sqs.Message, queueInfo *sqsQueueInfo, ha
 	})
 
 	if err != nil {
-		return fmt.Errorf("error handling message: %v", err)
+		return fmt.Errorf("error handling message: %w", err)
 	}
 
 	// otherwise, there was no error, acknowledge the message
 	return s.acknowledgeMessage(queueInfo.url, message.ReceiptHandle)
 }
 
-func (s *snsSqs) consumeSubscription(queueInfo *sqsQueueInfo, handler pubsub.Handler) {
+func (s *snsSqs) consumeSubscription(queueInfo, deadLettersQueueInfo *sqsQueueInfo, handler pubsub.Handler) {
 	go func() {
 		for {
 			messageResponse, err := s.sqsClient.ReceiveMessage(&sqs.ReceiveMessageInput{
@@ -454,7 +482,7 @@ func (s *snsSqs) consumeSubscription(queueInfo *sqsQueueInfo, handler pubsub.Han
 			s.logger.Debugf("%v message(s) received", len(messageResponse.Messages))
 
 			for _, m := range messageResponse.Messages {
-				if err := s.handleMessage(m, queueInfo, handler); err != nil {
+				if err := s.handleMessage(m, queueInfo, deadLettersQueueInfo, handler); err != nil {
 					s.logger.Error(err)
 				}
 			}
@@ -462,6 +490,41 @@ func (s *snsSqs) consumeSubscription(queueInfo *sqsQueueInfo, handler pubsub.Han
 	}()
 }
 
+func (s *snsSqs) createDeadLettersQueue() (*sqsQueueInfo, error) {
+	var deadLettersQueueInfo *sqsQueueInfo
+	deadLettersQueueInfo, err := s.getOrCreateQueue(s.metadata.sqsDeadLettersQueueName)
+	if err != nil {
+		s.logger.Errorf("error retrieving SQS dead-letter queue: %v", err)
+
+		return nil, err
+	}
+
+	return deadLettersQueueInfo, nil
+}
+
+func (s *snsSqs) createQueueAttributesWithDeadLetters(queueInfo, deadLettersQueueInfo *sqsQueueInfo) (*sqs.SetQueueAttributesInput, error) {
+	policy := map[string]string{
+		"deadLetterTargetArn": deadLettersQueueInfo.arn,
+		"maxReceiveCount":     strconv.FormatInt(s.metadata.messageReceiveLimit, 10),
+	}
+
+	b, err := json.Marshal(policy)
+	if err != nil {
+		s.logger.Errorf("error marshalling dead-letters queue policy: %v", err)
+
+		return nil, err
+	}
+
+	sqsSetQueueAttributesInput := &sqs.SetQueueAttributesInput{
+		QueueUrl: &queueInfo.url,
+		Attributes: map[string]*string{
+			sqs.QueueAttributeNameRedrivePolicy: aws.String(string(b)),
+		},
+	}
+
+	return sqsSetQueueAttributesInput, nil
+}
+
 func (s *snsSqs) Subscribe(req pubsub.SubscribeRequest, handler pubsub.Handler) error {
 	// subscribers declare a topic ARN
 	// and declare a SQS queue to use
@@ -475,13 +538,41 @@ func (s *snsSqs) Subscribe(req pubsub.SubscribeRequest, handler pubsub.Handler)
 	}
 
 	// this is the ID of the application, it is supplied via runtime as "consumerID"
-	queueInfo, err := s.getOrCreateQueue(s.metadata.sqsQueueName)
+	var queueInfo *sqsQueueInfo
+	queueInfo, err = s.getOrCreateQueue(s.metadata.sqsQueueName)
 	if err != nil {
 		s.logger.Errorf("error retrieving SQS queue: %v", err)
 
 		return err
 	}
 
+	var deadLettersQueueInfo *sqsQueueInfo
+	if len(s.metadata.sqsDeadLettersQueueName) > 0 {
+		var derr error
+		deadLettersQueueInfo, derr = s.createDeadLettersQueue()
+		if derr != nil {
+			s.logger.Errorf("error creating dead-letter queue: %v", derr)
+
+			return derr
+		}
+
+		var sqsSetQueueAttributesInput *sqs.SetQueueAttributesInput
+		sqsSetQueueAttributesInput, derr = s.createQueueAttributesWithDeadLetters(queueInfo, deadLettersQueueInfo)
+		if derr != nil {
+			s.logger.Errorf("error creatubg queue attributes for dead-letter queue: %v", derr)
+
+			return derr
+		}
+		_, derr = s.sqsClient.SetQueueAttributes(sqsSetQueueAttributesInput)
+		if derr != nil {
+			s.logger.Errorf("error updating queue attributes with dead-letter queue: %v", derr)
+
+			return derr
+		}
+	}
+
+	// apply the dead letters queue attributes to the current queue
+
 	// subscription creation is idempotent. Subscriptions are unique by topic/queue
 	subscribeOutput, err := s.snsClient.Subscribe(&sns.SubscribeInput{
 		Attributes:            nil,
@@ -499,7 +590,7 @@ func (s *snsSqs) Subscribe(req pubsub.SubscribeRequest, handler pubsub.Handler)
 	s.subscriptions = append(s.subscriptions, subscribeOutput.SubscriptionArn)
 	s.logger.Debugf("Subscribed to topic %s: %v", req.Topic, subscribeOutput)
 
-	s.consumeSubscription(queueInfo, handler)
+	s.consumeSubscription(queueInfo, deadLettersQueueInfo, handler)
 
 	return nil
 }


Test patch:
diff --git a/pubsub/aws/snssqs/snssqs_test.go b/pubsub/aws/snssqs/snssqs_test.go
index 835100bc..ba011b2c 100644
--- a/pubsub/aws/snssqs/snssqs_test.go
+++ b/pubsub/aws/snssqs/snssqs_test.go
@@ -8,7 +8,13 @@ import (
 	"github.com/stretchr/testify/require"
 )
 
+type testUnitFixture struct {
+	metadata pubsub.Metadata
+	name     string
+}
+
 func Test_parseTopicArn(t *testing.T) {
+	t.Parallel()
 	// no further guarantees are made about this function
 	r := require.New(t)
 	r.Equal("qqnoob", parseTopicArn("arn:aws:sqs:us-east-1:000000000000:qqnoob"))
@@ -16,6 +22,7 @@ func Test_parseTopicArn(t *testing.T) {
 
 // Verify that all metadata ends up in the correct spot
 func Test_getSnsSqsMetatdata_AllConfiguration(t *testing.T) {
+	t.Parallel()
 	r := require.New(t)
 	l := logger.NewLogger("SnsSqs unit test")
 	l.SetOutputLevel(logger.DebugLevel)
@@ -30,10 +37,12 @@ func Test_getSnsSqsMetatdata_AllConfiguration(t *testing.T) {
 		"secretKey":                "s",
 		"sessionToken":             "t",
 		"region":                   "r",
+		"sqsDeadLettersQueueName":  "q",
 		"messageVisibilityTimeout": "2",
 		"messageRetryLimit":        "3",
 		"messageWaitTimeSeconds":   "4",
 		"messageMaxNumber":         "5",
+		"messageReceiveLimit":      "6",
 	}})
 
 	r.NoError(err)
@@ -44,13 +53,16 @@ func Test_getSnsSqsMetatdata_AllConfiguration(t *testing.T) {
 	r.Equal("s", md.SecretKey)
 	r.Equal("t", md.SessionToken)
 	r.Equal("r", md.Region)
+	r.Equal("q", md.sqsDeadLettersQueueName)
 	r.Equal(int64(2), md.messageVisibilityTimeout)
 	r.Equal(int64(3), md.messageRetryLimit)
 	r.Equal(int64(4), md.messageWaitTimeSeconds)
 	r.Equal(int64(5), md.messageMaxNumber)
+	r.Equal(int64(6), md.messageReceiveLimit)
 }
 
 func Test_getSnsSqsMetatdata_defaults(t *testing.T) {
+	t.Parallel()
 	r := require.New(t)
 	l := logger.NewLogger("SnsSqs unit test")
 	l.SetOutputLevel(logger.DebugLevel)
@@ -80,6 +92,7 @@ func Test_getSnsSqsMetatdata_defaults(t *testing.T) {
 }
 
 func Test_getSnsSqsMetatdata_legacyaliases(t *testing.T) {
+	t.Parallel()
 	r := require.New(t)
 	l := logger.NewLogger("SnsSqs unit test")
 	l.SetOutputLevel(logger.DebugLevel)
@@ -107,117 +120,122 @@ func Test_getSnsSqsMetatdata_legacyaliases(t *testing.T) {
 	r.Equal(int64(10), md.messageMaxNumber)
 }
 
-func Test_getSnsSqsMetatdata_invalidMessageVisibility(t *testing.T) {
+func testMetadataParsingShouldFail(t *testing.T, metadata pubsub.Metadata, l logger.Logger) {
+	t.Parallel()
 	r := require.New(t)
-	l := logger.NewLogger("SnsSqs unit test")
-	l.SetOutputLevel(logger.DebugLevel)
-	ps := snsSqs{
-		logger: l,
-	}
-
-	md, err := ps.getSnsSqsMetatdata(pubsub.Metadata{Properties: map[string]string{
-		"consumerID":               "consumer",
-		"Endpoint":                 "endpoint",
-		"AccessKey":                "acctId",
-		"SecretKey":                "secret",
-		"awsToken":                 "token",
-		"Region":                   "region",
-		"messageVisibilityTimeout": "-100",
-	}})
-
-	r.Error(err)
-	r.Nil(md)
-}
 
-func Test_getSnsSqsMetatdata_invalidMessageRetryLimit(t *testing.T) {
-	r := require.New(t)
-	l := logger.NewLogger("SnsSqs unit test")
-	l.SetOutputLevel(logger.DebugLevel)
 	ps := snsSqs{
 		logger: l,
 	}
 
-	md, err := ps.getSnsSqsMetatdata(pubsub.Metadata{Properties: map[string]string{
-		"consumerID":        "consumer",
-		"Endpoint":          "endpoint",
-		"AccessKey":         "acctId",
-		"SecretKey":         "secret",
-		"awsToken":          "token",
-		"Region":            "region",
-		"messageRetryLimit": "-100",
-	}})
+	md, err := ps.getSnsSqsMetatdata(metadata)
 
 	r.Error(err)
 	r.Nil(md)
 }
 
-func Test_getSnsSqsMetatdata_invalidWaitTimeSecondsTooLow(t *testing.T) {
-	r := require.New(t)
-	l := logger.NewLogger("SnsSqs unit test")
-	l.SetOutputLevel(logger.DebugLevel)
-	ps := snsSqs{
-		logger: l,
+func Test_getSnsSqsMetatdata_invalidMetadataSetup(t *testing.T) {
+	t.Parallel()
+
+	fixtures := []testUnitFixture{
+		{
+			metadata: pubsub.Metadata{Properties: map[string]string{
+				"consumerID":          "consumer",
+				"Endpoint":            "endpoint",
+				"AccessKey":           "acctId",
+				"SecretKey":           "secret",
+				"awsToken":            "token",
+				"Region":              "region",
+				"messageReceiveLimit": "100",
+			}},
+			name: "deadletters receive limit without deadletters queue name",
+		},
+		{
+			metadata: pubsub.Metadata{Properties: map[string]string{
+				"consumerID":              "consumer",
+				"Endpoint":                "endpoint",
+				"AccessKey":               "acctId",
+				"SecretKey":               "secret",
+				"awsToken":                "token",
+				"Region":                  "region",
+				"sqsDeadLettersQueueName": "my-queue",
+			}},
+			name: "deadletters message queue without deadletters receive limit",
+		},
+		{
+			metadata: pubsub.Metadata{Properties: map[string]string{
+				"consumerID":       "consumer",
+				"Endpoint":         "endpoint",
+				"AccessKey":        "acctId",
+				"SecretKey":        "secret",
+				"awsToken":         "token",
+				"Region":           "region",
+				"messageMaxNumber": "-100",
+			}},
+			name: "illigal message max number (negative, too low)",
+		},
+		{
+			metadata: pubsub.Metadata{Properties: map[string]string{
+				"consumerID":       "consumer",
+				"Endpoint":         "endpoint",
+				"AccessKey":        "acctId",
+				"SecretKey":        "secret",
+				"awsToken":         "token",
+				"Region":           "region",
+				"messageMaxNumber": "100",
+			}},
+			name: "illigal message max number (too high)",
+		},
+		{
+			metadata: pubsub.Metadata{Properties: map[string]string{
+				"consumerID":             "consumer",
+				"Endpoint":               "endpoint",
+				"AccessKey":              "acctId",
+				"SecretKey":              "secret",
+				"awsToken":               "token",
+				"Region":                 "region",
+				"messageWaitTimeSeconds": "0",
+			}},
+			name: "invalid wait time seconds (too low)",
+		},
+		{
+			metadata: pubsub.Metadata{Properties: map[string]string{
+				"consumerID":               "consumer",
+				"Endpoint":                 "endpoint",
+				"AccessKey":                "acctId",
+				"SecretKey":                "secret",
+				"awsToken":                 "token",
+				"Region":                   "region",
+				"messageVisibilityTimeout": "-100",
+			}},
+			name: "invalid message visibility",
+		},
+		{
+			metadata: pubsub.Metadata{Properties: map[string]string{
+				"consumerID":        "consumer",
+				"Endpoint":          "endpoint",
+				"AccessKey":         "acctId",
+				"SecretKey":         "secret",
+				"awsToken":          "token",
+				"Region":            "region",
+				"messageRetryLimit": "-100",
+			}},
+			name: "invalid message retry limit",
+		},
 	}
 
-	md, err := ps.getSnsSqsMetatdata(pubsub.Metadata{Properties: map[string]string{
-		"consumerID":             "consumer",
-		"Endpoint":               "endpoint",
-		"AccessKey":              "acctId",
-		"SecretKey":              "secret",
-		"awsToken":               "token",
-		"Region":                 "region",
-		"messageWaitTimeSeconds": "0",
-	}})
-
-	r.Error(err)
-	r.Nil(md)
-}
-
-func Test_getSnsSqsMetatdata_invalidMessageMaxNumberTooHigh(t *testing.T) {
-	r := require.New(t)
 	l := logger.NewLogger("SnsSqs unit test")
 	l.SetOutputLevel(logger.DebugLevel)
-	ps := snsSqs{
-		logger: l,
-	}
 
-	md, err := ps.getSnsSqsMetatdata(pubsub.Metadata{Properties: map[string]string{
-		"consumerID":       "consumer",
-		"Endpoint":         "endpoint",
-		"AccessKey":        "acctId",
-		"SecretKey":        "secret",
-		"awsToken":         "token",
-		"Region":           "region",
-		"messageMaxNumber": "100",
-	}})
-
-	r.Error(err)
-	r.Nil(md)
-}
-
-func Test_getSnsSqsMetatdata_invalidMessageMaxNumberTooLow(t *testing.T) {
-	r := require.New(t)
-	l := logger.NewLogger("SnsSqs unit test")
-	l.SetOutputLevel(logger.DebugLevel)
-	ps := snsSqs{
-		logger: l,
+	for _, tc := range fixtures {
+		t.Run(tc.name, func(t *testing.T) {
+			testMetadataParsingShouldFail(t, tc.metadata, l)
+		})
 	}
-
-	md, err := ps.getSnsSqsMetatdata(pubsub.Metadata{Properties: map[string]string{
-		"consumerID":       "consumer",
-		"Endpoint":         "endpoint",
-		"AccessKey":        "acctId",
-		"SecretKey":        "secret",
-		"awsToken":         "token",
-		"Region":           "region",
-		"messageMaxNumber": "-100",
-	}})
-
-	r.Error(err)
-	r.Nil(md)
 }
 
 func Test_parseInt64(t *testing.T) {
+	t.Parallel()
 	r := require.New(t)
 	number, err := parseInt64("applesauce", "propertyName")
 	r.EqualError(err, "parsing propertyName failed with: strconv.Atoi: parsing \"applesauce\": invalid syntax")
@@ -235,6 +253,7 @@ func Test_parseInt64(t *testing.T) {
 }
 
 func Test_replaceNameToAWSSanitizedName(t *testing.T) {
+	t.Parallel()
 	r := require.New(t)
 
 	s := `Some_invalid-name // for an AWS resource &*()*&&^Some invalid name // for an AWS resource &*()*&&^Some invalid