DomainNameAccessAssociation ​
The DomainNameAccessAssociation resource allows you to manage associations between API Gateway domain names and their access sources. This enables you to control access for APIs that use custom domain names. For more information, visit the AWS ApiGateway DomainNameAccessAssociations documentation.
Minimal Example ​
Create a basic DomainNameAccessAssociation with required properties.
ts
import AWS from "alchemy/aws/control";
const domainNameAccessAssociation = await AWS.ApiGateway.DomainNameAccessAssociation("basicAssociation", {
DomainNameArn: "arn:aws:apigateway:us-west-2::/domainnames/yourdomain.com",
AccessAssociationSource: "arn:aws:iam::123456789012:role/yourRole",
AccessAssociationSourceType: "AWS::IAM::Role",
Tags: [{
Key: "Environment",
Value: "Production"
}]
});
Advanced Configuration ​
Configure a DomainNameAccessAssociation with additional properties for more complex scenarios.
ts
const advancedDomainNameAccessAssociation = await AWS.ApiGateway.DomainNameAccessAssociation("advancedAssociation", {
DomainNameArn: "arn:aws:apigateway:us-west-2::/domainnames/anotherdomain.com",
AccessAssociationSource: "arn:aws:iam::123456789012:role/anotherRole",
AccessAssociationSourceType: "AWS::IAM::Role",
Tags: [{
Key: "Project",
Value: "API Project"
}],
adopt: true // Adopt existing resource if it already exists
});
Managing Multiple Access Sources ​
Create multiple associations for different sources, demonstrating how you can manage multiple access types.
ts
const lambdaAccessAssociation = await AWS.ApiGateway.DomainNameAccessAssociation("lambdaAssociation", {
DomainNameArn: "arn:aws:apigateway:us-west-2::/domainnames/lambdaproject.com",
AccessAssociationSource: "arn:aws:lambda:us-west-2:123456789012:function:yourLambdaFunction",
AccessAssociationSourceType: "AWS::Lambda::Function",
Tags: [{
Key: "Service",
Value: "Lambda Integration"
}]
});
const apiGatewayAccessAssociation = await AWS.ApiGateway.DomainNameAccessAssociation("apiGatewayAssociation", {
DomainNameArn: "arn:aws:apigateway:us-west-2::/domainnames/apigatewayproject.com",
AccessAssociationSource: "arn:aws:apigateway:us-west-2::/restapis/yourApiId",
AccessAssociationSourceType: "AWS::ApiGateway::RestApi",
Tags: [{
Key: "Service",
Value: "API Gateway"
}]
});