Skip to content
v2.274.0

QueueBase L2 construct ​

Reference to a new or existing Amazon SQS queue.

Initializer ​

ts
new QueueBase(scope: Construct, id: string, props?: ResourceProps)
python
QueueBase(scope: Construct, id: str, props: typing.Optional[ResourceProps] = None)
java
new QueueBase(Construct scope, String id, ResourceProps props)
csharp
new QueueBase(Construct scope, string id, ResourceProps? props = null)
go
NewQueueBase(Scope Construct, Id *string, Props ResourceProps)

Construct Props ​

accountstringaccountstraccountStringAccountstringAccount*string= the resource is in the same acco…#
The AWS account ID this resource belongs to.
default

Default: the resource is in the same account as the stack it belongs to

environmentFromArnstringenvironment_from_arnstrenvironmentFromArnStringEnvironmentFromArnstringEnvironmentFromArn*string= take environment from `account`,…#
ARN to deduce region and account from.

The ARN is parsed and the account and region are taken from the ARN. This should be used for imported resources.

Cannot be supplied together with either account or region.

default

Default: take environment from account, region parameters, or use Stack environment.

physicalNamestringphysical_namestrphysicalNameStringPhysicalNamestringPhysicalName*string= The physical name will be alloca…#
The value passed in by users to the physical name prop of the resource.
notes · default
  • undefined implies that a physical name will be allocated by CloudFormation during deployment.
  • a concrete value implies a specific physical name
  • PhysicalName.GENERATE_IF_NEEDED is a marker that indicates that a physical will only be generated by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation.

Default: The physical name will be allocated by CloudFormation at deployment time

regionstringregionstrregionStringRegionstringRegion*string= the resource is in the same regi…#
The AWS region this resource belongs to.
default

Default: the resource is in the same region as the stack it belongs to

Properties ​

encryptionMasterKeyIKeyencryption_master_keyIKeyencryptionMasterKeyIKeyEncryptionMasterKeyIKeyEncryptionMasterKeyIKey#
If this queue is server-side encrypted, this is the KMS encryption key.
encryptionTypeQueueEncryptionencryption_typeQueueEncryptionencryptionTypeQueueEncryptionEncryptionTypeQueueEncryptionEncryptionTypeQueueEncryption#
Whether the contents of the queue are encrypted, and by what type of key.
The environment this resource belongs to.
notes

For resources that are created and managed in a Stack (those created by creating new class instances like new Role(), new Bucket(), etc.), this is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like Role.fromRoleArn(), Bucket.fromBucketName(), etc.), they might be different than the stack they were imported into.

fifobooleanfifoboolfifoBooleanFifoboolFifo*boolrequired#
Whether this queue is an Amazon SQS FIFO queue.

If false, this is a standard queue.

grantsQueueGrantsgrantsQueueGrantsgrantsQueueGrantsGrantsQueueGrantsGrantsQueueGrantsrequired#
Collection of grant methods for a Queue.
nodeNodenodeNodenodeNodeNodeNodeNodeNoderequired#
The tree node.
queueArnstringqueue_arnstrqueueArnStringQueueArnstringQueueArn*stringrequired#
The ARN of this queue.
queueNamestringqueue_namestrqueueNameStringQueueNamestringQueueName*stringrequired#
The name of this queue.
queueRefQueueReferencequeue_refQueueReferencequeueRefQueueReferenceQueueRefQueueReferenceQueueRefQueueReferencerequired#
A reference to a Queue resource.
queueUrlstringqueue_urlstrqueueUrlStringQueueUrlstringQueueUrl*stringrequired#
The URL of this queue.
stackStackstackStackstackStackStackStackStackStackrequired#
The stack in which this resource is defined.

Methods ​

addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResultdef add_to_resource_policy(self, statement: PolicyStatement) -> AddToResourcePolicyResultpublic AddToResourcePolicyResult addToResourcePolicy(PolicyStatement statement)public AddToResourcePolicyResult AddToResourcePolicy(PolicyStatement statement)func AddToResourcePolicy(Statement PolicyStatement) AddToResourcePolicyResult#
Adds a statement to the IAM resource policy associated with this queue.

If this queue was created in this stack (new Queue), a queue policy will be automatically created upon the first call to addToPolicy. If the queue is imported (Queue.import), then this is a no-op.

applyCrossStackReferenceStrength(strength: ReferenceStrength): voiddef apply_cross_stack_reference_strength(self, strength: ReferenceStrength) -> Nonepublic void applyCrossStackReferenceStrength(ReferenceStrength strength)public void ApplyCrossStackReferenceStrength(ReferenceStrength strength)func ApplyCrossStackReferenceStrength(Strength ReferenceStrength)#
Override the cross-stack reference strength for this resource.
notes · 1 parameter

When set, any cross-stack reference to this resource will use the specified mechanism instead of the global default determined by the @aws-cdk/core:defaultCrossStackReferences context key. This is useful for selectively weakening specific references to avoid the "deadly embrace" problem without changing the app-wide default.

Parameters

  • strengthstrengthstrengthstrengthStrength — - The reference strength to use for this resource.
applyRemovalPolicy(policy: RemovalPolicy): voiddef apply_removal_policy(self, policy: RemovalPolicy) -> Nonepublic void applyRemovalPolicy(RemovalPolicy policy)public void ApplyRemovalPolicy(RemovalPolicy policy)func ApplyRemovalPolicy(Policy RemovalPolicy)#
Apply the given removal policy to this resource.
notes

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).

grant(grantee: IGrantable, ...actions: string[]): Grantdef grant(self, grantee: IGrantable, actions: str) -> Grantpublic Grant grant(IGrantable grantee, String actions)public Grant Grant(IGrantable grantee, string actions)func Grant(Grantee IGrantable, Actions *string) Grant#
Grant the actions defined in queueActions to the identity Principal given on this SQS queue resource.

[disable-awslint:no-grants]

2 parameters

Parameters

  • granteegranteegranteegranteeGrantee — Principal to grant right to.
  • actionsactionsactionsactionsActions — The actions to grant.
grantConsumeMessages(grantee: IGrantable): Grantdef grant_consume_messages(self, grantee: IGrantable) -> Grantpublic Grant grantConsumeMessages(IGrantable grantee)public Grant GrantConsumeMessages(IGrantable grantee)func GrantConsumeMessages(Grantee IGrantable) Grant#
Grant permissions to consume messages from a queue.
notes · 1 parameter

This will grant the following permissions:

  • sqs:ChangeMessageVisibility
  • sqs:DeleteMessage
  • sqs:ReceiveMessage
  • sqs:GetQueueAttributes
  • sqs:GetQueueUrl

If encryption is used, permission to use the key to decrypt the contents of the queue will also be granted to the same principal.

This will grant the following KMS permissions:

  • kms:Decrypt

The use of this method is discouraged. Please use grants.consumeMessages() instead.

[disable-awslint:no-grants]

Parameters

  • granteegranteegranteegranteeGrantee — Principal to grant consume rights to.
grantOnKey(grantee: IGrantable, ...actions: string[]): GrantOnKeyResultdef grant_on_key(self, grantee: IGrantable, actions: str) -> GrantOnKeyResultpublic GrantOnKeyResult grantOnKey(IGrantable grantee, String actions)public GrantOnKeyResult GrantOnKey(IGrantable grantee, string actions)func GrantOnKey(Grantee IGrantable, Actions *string) GrantOnKeyResult#
Gives permissions to a grantable entity to perform actions on the encryption key.
grantPurge(grantee: IGrantable): Grantdef grant_purge(self, grantee: IGrantable) -> Grantpublic Grant grantPurge(IGrantable grantee)public Grant GrantPurge(IGrantable grantee)func GrantPurge(Grantee IGrantable) Grant#
Grant an IAM principal permissions to purge all messages from the queue.

This will grant the following permissions:

  • sqs:PurgeQueue
  • sqs:GetQueueAttributes
  • sqs:GetQueueUrl

The use of this method is discouraged. Please use grants.purge() instead.

[disable-awslint:no-grants]

1 parameter

Parameters

  • granteegranteegranteegranteeGrantee — Principal to grant send rights to.
grantSendMessages(grantee: IGrantable): Grantdef grant_send_messages(self, grantee: IGrantable) -> Grantpublic Grant grantSendMessages(IGrantable grantee)public Grant GrantSendMessages(IGrantable grantee)func GrantSendMessages(Grantee IGrantable) Grant#
Grant access to send messages to a queue to the given identity.
notes · 1 parameter

This will grant the following permissions:

  • sqs:SendMessage
  • sqs:GetQueueAttributes
  • sqs:GetQueueUrl

If encryption is used, permission to use the key to encrypt/decrypt the contents of the queue will also be granted to the same principal.

This will grant the following KMS permissions:

  • kms:Decrypt
  • kms:Encrypt
  • kms:ReEncrypt*
  • kms:GenerateDataKey*

The use of this method is discouraged. Please use grants.sendMessages() instead.

[disable-awslint:no-grants]

Parameters

  • granteegranteegranteegranteeGrantee — Principal to grant send rights to.
isConstruct(x: any): boolean@staticmethod def is_construct(x: Any) -> boolpublic static Boolean isConstruct(Object x)public static bool IsConstruct(object x)func IsConstruct(X interface{}) *boolstatic#
Checks if `x` is a construct.
notes · 1 parameter · returns

Use this method instead of instanceof to properly detect Construct instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the constructs library on disk are seen as independent, completely different libraries. As a consequence, the class Construct in each copy of the constructs library is seen as a different class, and an instance of one class will not test as instanceof the other class. npm install will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the constructs library can be accidentally installed, and instanceof will behave unpredictably. It is safest to avoid using instanceof, and using this type-testing method instead.

Parameters

  • xxxxX — Any object.

Returns: true if x is an object created from a class which extends Construct.

isOwnedResource(construct: IConstruct): boolean@staticmethod def is_owned_resource(construct: IConstruct) -> boolpublic static Boolean isOwnedResource(IConstruct construct)public static bool IsOwnedResource(IConstruct construct)func IsOwnedResource(Construct IConstruct) *boolstatic#
Returns true if the construct was created by CDK, and false otherwise.
isResource(construct: IConstruct): boolean@staticmethod def is_resource(construct: IConstruct) -> boolpublic static Boolean isResource(IConstruct construct)public static bool IsResource(IConstruct construct)func IsResource(Construct IConstruct) *boolstatic#
Check whether the given construct is a Resource.
metric(metricName: string, props?: MetricOptions): Metricdef metric(self, metric_name: str, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metric(String metricName, MetricOptions props)public Metric Metric(string metricName, MetricOptions? props = null)func Metric(MetricName *string, Props MetricOptions) Metric#
Return the given named metric for this Queue.
metricApproximateAgeOfOldestMessage(props?: MetricOptions): Metricdef metric_approximate_age_of_oldest_message(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricApproximateAgeOfOldestMessage(MetricOptions props)public Metric MetricApproximateAgeOfOldestMessage(MetricOptions? props = null)func MetricApproximateAgeOfOldestMessage(Props MetricOptions) Metric#
The approximate age of the oldest non-deleted message in the queue.

Maximum over 5 minutes

metricApproximateNumberOfMessagesDelayed(props?: MetricOptions): Metricdef metric_approximate_number_of_messages_delayed(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricApproximateNumberOfMessagesDelayed(MetricOptions props)public Metric MetricApproximateNumberOfMessagesDelayed(MetricOptions? props = null)func MetricApproximateNumberOfMessagesDelayed(Props MetricOptions) Metric#
The number of messages in the queue that are delayed and not available for reading immediately.

Maximum over 5 minutes

metricApproximateNumberOfMessagesNotVisible(props?: MetricOptions): Metricdef metric_approximate_number_of_messages_not_visible(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricApproximateNumberOfMessagesNotVisible(MetricOptions props)public Metric MetricApproximateNumberOfMessagesNotVisible(MetricOptions? props = null)func MetricApproximateNumberOfMessagesNotVisible(Props MetricOptions) Metric#
The number of messages that are in flight.

Maximum over 5 minutes

metricApproximateNumberOfMessagesOutstanding(props?: MetricOptions): MathExpressiondef metric_approximate_number_of_messages_outstanding(self, props: typing.Optional[MetricOptions] = None) -> MathExpressionpublic MathExpression metricApproximateNumberOfMessagesOutstanding(MetricOptions props)public MathExpression MetricApproximateNumberOfMessagesOutstanding(MetricOptions? props = null)func MetricApproximateNumberOfMessagesOutstanding(Props MetricOptions) MathExpression#
The number of messages waiting to be picked up plus the number in flight.
notes

ApproximateNumberOfMessagesVisible + ApproximateNumberOfMessagesNotVisible, as a metric math expression. Prefer this over metricApproximateNumberOfMessagesVisible when scaling consumers in: receiving a message lowers Visible, so a policy watching only Visible cannot tell a consumer that just picked up work from one that finished it.

statistic, unit and dimensions apply to both underlying metrics, label, color and period to the expression.

Maximum over 5 minutes

metricApproximateNumberOfMessagesVisible(props?: MetricOptions): Metricdef metric_approximate_number_of_messages_visible(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricApproximateNumberOfMessagesVisible(MetricOptions props)public Metric MetricApproximateNumberOfMessagesVisible(MetricOptions? props = null)func MetricApproximateNumberOfMessagesVisible(Props MetricOptions) Metric#
The number of messages available for retrieval from the queue.

Maximum over 5 minutes

metricNumberOfEmptyReceives(props?: MetricOptions): Metricdef metric_number_of_empty_receives(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricNumberOfEmptyReceives(MetricOptions props)public Metric MetricNumberOfEmptyReceives(MetricOptions? props = null)func MetricNumberOfEmptyReceives(Props MetricOptions) Metric#
The number of ReceiveMessage API calls that did not return a message.

Sum over 5 minutes

metricNumberOfMessagesDeleted(props?: MetricOptions): Metricdef metric_number_of_messages_deleted(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricNumberOfMessagesDeleted(MetricOptions props)public Metric MetricNumberOfMessagesDeleted(MetricOptions? props = null)func MetricNumberOfMessagesDeleted(Props MetricOptions) Metric#
The number of messages deleted from the queue.

Sum over 5 minutes

metricNumberOfMessagesReceived(props?: MetricOptions): Metricdef metric_number_of_messages_received(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricNumberOfMessagesReceived(MetricOptions props)public Metric MetricNumberOfMessagesReceived(MetricOptions? props = null)func MetricNumberOfMessagesReceived(Props MetricOptions) Metric#
The number of messages returned by calls to the ReceiveMessage action.

Sum over 5 minutes

metricNumberOfMessagesSent(props?: MetricOptions): Metricdef metric_number_of_messages_sent(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricNumberOfMessagesSent(MetricOptions props)public Metric MetricNumberOfMessagesSent(MetricOptions? props = null)func MetricNumberOfMessagesSent(Props MetricOptions) Metric#
The number of messages added to a queue.

Sum over 5 minutes

metricSentMessageSize(props?: MetricOptions): Metricdef metric_sent_message_size(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricSentMessageSize(MetricOptions props)public Metric MetricSentMessageSize(MetricOptions? props = null)func MetricSentMessageSize(Props MetricOptions) Metric#
The size of messages added to a queue.

Average over 5 minutes

toString(): stringdef to_string(self, ) -> strpublic String toString()public string ToString()func ToString() *string#
Returns a string representation of this construct.
with(...mixins: IMixin[]): IConstructdef with(self, mixins: IMixin) -> IConstructpublic IConstruct with(IMixin mixins)public IConstruct With(IMixin mixins)func With(Mixins IMixin) IConstruct#
Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the start of the call, so constructs added by a mixin will not be visited. Use multiple with() calls if subsequent mixins should apply to added constructs.