Data Source
Provides an AppSync Data Source.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.dynamodb.Table;
import com.pulumi.aws.dynamodb.TableArgs;
import com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.iam.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.RolePolicy;
import com.pulumi.aws.iam.RolePolicyArgs;
import com.pulumi.aws.appsync.GraphQLApi;
import com.pulumi.aws.appsync.GraphQLApiArgs;
import com.pulumi.aws.appsync.DataSource;
import com.pulumi.aws.appsync.DataSourceArgs;
import com.pulumi.aws.appsync.inputs.DataSourceDynamodbConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleTable = new Table("exampleTable", TableArgs.builder()
.readCapacity(1)
.writeCapacity(1)
.hashKey("UserId")
.attributes(TableAttributeArgs.builder()
.name("UserId")
.type("S")
.build())
.build());
final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("appsync.amazonaws.com")
.build())
.actions("sts:AssumeRole")
.build())
.build());
var exampleRole = new Role("exampleRole", RoleArgs.builder()
.assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
final var examplePolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.actions("dynamodb:*")
.resources(exampleTable.arn())
.build())
.build());
var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder()
.role(exampleRole.id())
.policy(examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(examplePolicyDocument -> examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
.build());
var exampleGraphQLApi = new GraphQLApi("exampleGraphQLApi", GraphQLApiArgs.builder()
.authenticationType("API_KEY")
.build());
var exampleDataSource = new DataSource("exampleDataSource", DataSourceArgs.builder()
.apiId(exampleGraphQLApi.id())
.name("my_appsync_example")
.serviceRoleArn(exampleRole.arn())
.type("AMAZON_DYNAMODB")
.dynamodbConfig(DataSourceDynamodbConfigArgs.builder()
.tableName(exampleTable.name())
.build())
.build());
}
}
Content copied to clipboard
Import
aws_appsync_datasource
can be imported with their api_id
, a hyphen, and name
, e.g.,
$ pulumi import aws:appsync/dataSource:DataSource example abcdef123456-example
Content copied to clipboard
Properties
Link copied to clipboard
Description of the data source.
Link copied to clipboard
DynamoDB settings. See below
Link copied to clipboard
Amazon Elasticsearch settings. See below
Link copied to clipboard
AWS EventBridge settings. See below
Link copied to clipboard
HTTP settings. See below
Link copied to clipboard
AWS Lambda settings. See below
Link copied to clipboard
Amazon OpenSearch Service settings. See below
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
AWS RDS settings. See Relational Database Config
Link copied to clipboard
IAM service role ARN for the data source.