Skip to content

Commit fec06cb

Browse files
committed
fix: Added validations and retry settings
1 parent fcbd78b commit fec06cb

3 files changed

Lines changed: 24 additions & 5 deletions

File tree

src/config/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ export const ROUTE_53_CUSTOM_DELAY = 200
88
export const IAM_CUSTOM_DELAY = 1000
99
export const CLOUDFORMATION_STACK_CUSTOM_DELAY = 1000
1010
export const MESSAGE_INTERVAL = 45000
11+
export const SNS_CUSTOM_DELAY = 1000

src/services/sns/data.ts

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,21 @@ import awsLoggerText from '../../properties/logger'
1919
import { AwsTag, TagMap } from '../../types'
2020
import { convertAwsTagsToTagMap } from '../../utils/format'
2121
import AwsErrorLog from '../../utils/errorLog'
22-
import { initTestEndpoint } from '../../utils'
22+
import { initTestEndpoint, setAwsRetryOptions } from '../../utils'
23+
import {
24+
API_GATEWAY_CUSTOM_DELAY,
25+
MAX_FAILED_AWS_REQUEST_RETRIES,
26+
} from '../../config/constants'
2327

2428
const lt = { ...awsLoggerText }
2529
const { logger } = CloudGraph
2630
const serviceName = 'SNS'
2731
const errorLog = new AwsErrorLog(serviceName)
2832
const endpoint = initTestEndpoint(serviceName)
33+
const customRetrySettings = setAwsRetryOptions({
34+
maxRetries: MAX_FAILED_AWS_REQUEST_RETRIES,
35+
baseDelay: API_GATEWAY_CUSTOM_DELAY,
36+
})
2937

3038
/**
3139
* SNS
@@ -155,14 +163,19 @@ const getTopicSubscriptions = async (
155163
sns.listSubscriptionsByTopic(
156164
listSubscriptionsOpts,
157165
(err: AWSError, data: ListSubscriptionsByTopicResponse) => {
158-
const { Subscriptions, NextToken } = data || {}
159166
if (err) {
160167
errorLog.generateAwsErrorLog({
161168
functionName: 'sns:listSubscriptionsByTopic',
162169
err,
163170
})
164171
}
165172

173+
if (isEmpty(data)) {
174+
resolveSubscriptions([])
175+
}
176+
177+
const { Subscriptions, NextToken } = data || {}
178+
166179
subscriptions.push(...Subscriptions)
167180

168181
if (NextToken) {
@@ -196,7 +209,12 @@ export default async ({
196209

197210
// First we get all sns topics arn for all regions
198211
regions.split(',').map(region => {
199-
const sns = new SNS({ ...config, region, endpoint })
212+
const sns = new SNS({
213+
...config,
214+
region,
215+
endpoint,
216+
...customRetrySettings,
217+
})
200218
const regionPromise = new Promise<void>(async resolveRegion => {
201219
const snsTopicArnList = await listSnsTopicArnsForRegion({
202220
sns,

src/services/sns/format.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export default ({
3232
Policy: policy,
3333
DisplayName: displayName,
3434
DeliveryPolicy: deliveryPolicy,
35-
subscriptions,
35+
subscriptions = [],
3636
} = service
3737

3838
return {
@@ -45,6 +45,6 @@ export default ({
4545
policy: formatIamJsonPolicy(policy),
4646
displayName,
4747
deliveryPolicy,
48-
subscriptions: subscriptions.map(awsSNSSubscriptionConverter),
48+
subscriptions: subscriptions?.map(awsSNSSubscriptionConverter) || [],
4949
}
5050
}

0 commit comments

Comments
 (0)