interface ArnComponents
Language | Type name |
---|---|
.NET | Amazon.CDK.ArnComponents |
Go | github.com/aws/aws-cdk-go/awscdk/v2#ArnComponents |
Java | software.amazon.awscdk.ArnComponents |
Python | aws_cdk.ArnComponents |
TypeScript (source) | aws-cdk-lib » ArnComponents |
Obtainable from
Arn
.split()
, Stack
.splitArn()
Example
import { WebSocketIamAuthorizer } from 'aws-cdk-lib/aws-apigatewayv2-authorizers';
import { WebSocketLambdaIntegration } from 'aws-cdk-lib/aws-apigatewayv2-integrations';
// This function handles your connect route
declare const connectHandler: lambda.Function;
const webSocketApi = new apigwv2.WebSocketApi(this, 'WebSocketApi');
webSocketApi.addRoute('$connect', {
integration: new WebSocketLambdaIntegration('Integration', connectHandler),
authorizer: new WebSocketIamAuthorizer()
});
// Create an IAM user (identity)
const user = new iam.User(this, 'User');
const webSocketArn = Stack.of(this).formatArn({
service: 'execute-api',
resource: webSocketApi.apiId,
});
// Grant access to the IAM user
user.attachInlinePolicy(new iam.Policy(this, 'AllowInvoke', {
statements: [
new iam.PolicyStatement({
actions: ['execute-api:Invoke'],
effect: iam.Effect.ALLOW,
resources: [webSocketArn],
}),
],
}));
Properties
Name | Type | Description |
---|---|---|
resource | string | Resource type (e.g. "table", "autoScalingGroup", "certificate"). For some resource types, e.g. S3 buckets, this field defines the bucket name. |
service | string | The service namespace that identifies the AWS product (for example, 's3', 'iam', 'codepipeline'). |
account? | string | The ID of the AWS account that owns the resource, without the hyphens. |
arn | Arn | The specific ARN format to use for this ARN value. |
partition? | string | The partition that the resource is in. |
region? | string | The region the resource resides in. |
resource | string | Resource name or path within the resource (i.e. S3 bucket object key) or a wildcard such as "*" . This is service-dependent. |
resource
Type:
string
Resource type (e.g. "table", "autoScalingGroup", "certificate"). For some resource types, e.g. S3 buckets, this field defines the bucket name.
service
Type:
string
The service namespace that identifies the AWS product (for example, 's3', 'iam', 'codepipeline').
account?
Type:
string
(optional, default: The account the stack is deployed to.)
The ID of the AWS account that owns the resource, without the hyphens.
For example, 123456789012. Note that the ARNs for some resources don't require an account number, so this component might be omitted.
arnFormat?
Type:
Arn
(optional, default: uses value of sep
as the separator for formatting,
ArnFormat.SLASH_RESOURCE_NAME
if that property was also not provided)
The specific ARN format to use for this ARN value.
partition?
Type:
string
(optional, default: The AWS partition the stack is deployed to.)
The partition that the resource is in.
For standard AWS regions, the partition is aws. If you have resources in other partitions, the partition is aws-partitionname. For example, the partition for resources in the China (Beijing) region is aws-cn.
region?
Type:
string
(optional, default: The region the stack is deployed to.)
The region the resource resides in.
Note that the ARNs for some resources do not require a region, so this component might be omitted.
resourceName?
Type:
string
(optional)
Resource name or path within the resource (i.e. S3 bucket object key) or a wildcard such as "*"
. This is service-dependent.