Skip to content

SourceApiAssociation ​

The SourceApiAssociation resource allows you to manage AWS AppSync Source API Associations, enabling you to link various APIs for enhanced data management and retrieval.

Minimal Example ​

Create a basic SourceApiAssociation with required properties and a common optional property.

ts
import AWS from "alchemy/aws/control";

const sourceApiAssociation = await AWS.AppSync.SourceApiAssociation("mySourceApiAssociation", {
  Description: "This association links my source API to the AppSync API",
  SourceApiIdentifier: "source-api-12345",
  SourceApiAssociationConfig: {
    // Configuration details for the source API association
    type: "AWS_LAMBDA", // Example of a source API type
    endpoint: "arn:aws:lambda:us-west-2:123456789012:function:myLambdaFunction"
  }
});

Advanced Configuration ​

Configure a SourceApiAssociation with additional properties like merging APIs and adopting existing resources.

ts
const advancedSourceApiAssociation = await AWS.AppSync.SourceApiAssociation("advancedSourceApiAssociation", {
  Description: "Advanced configuration for source API association",
  SourceApiIdentifier: "source-api-67890",
  MergedApiIdentifier: "merged-api-54321",
  SourceApiAssociationConfig: {
    type: "HTTP", // Example of another source API type
    endpoint: "https://api.example.com/data",
    headers: {
      "Authorization": "Bearer my-secret-token"
    }
  },
  adopt: true // Adopt existing resource if it already exists
});

Merging Multiple APIs ​

Demonstrate how to merge multiple APIs into a single AppSync API.

ts
const mergedApiAssociation = await AWS.AppSync.SourceApiAssociation("mergedApiAssociation", {
  Description: "Merging two APIs into one AppSync API",
  SourceApiIdentifier: "source-api-11111",
  MergedApiIdentifier: "merged-api-22222",
  SourceApiAssociationConfig: {
    type: "GRAPHQL",
    endpoint: "https://graphql.example.com/graphql"
  }
});

Adoption of Existing Resource ​

Show how to create a SourceApiAssociation that adopts an existing resource.

ts
const adoptedSourceApiAssociation = await AWS.AppSync.SourceApiAssociation("adoptedSourceApiAssociation", {
  Description: "Adopting an existing source API association",
  SourceApiIdentifier: "existing-source-api",
  SourceApiAssociationConfig: {
    type: "AWS_STEP_FUNCTIONS",
    endpoint: "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine"
  },
  adopt: true // This will adopt the existing association without error
});