AWS::AppSync::DataSource - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::AppSync::DataSource

AWS::AppSync::DataSource 资源为 AWS AppSync 中的解析程序创建要连接到的数据源,例如 Amazon DynamoDB、AWS Lambda 和 Amazon Elasticsearch Service。在客户端进行 GraphQL 调用时,解析程序将使用这些数据源来提取数据。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::AppSync::DataSource", "Properties" : { "ApiId" : String, "Description" : String, "DynamoDBConfig" : DynamoDBConfig, "ElasticsearchConfig" : ElasticsearchConfig, "HttpConfig" : HttpConfig, "LambdaConfig" : LambdaConfig, "Name" : String, "RelationalDatabaseConfig" : RelationalDatabaseConfig, "ServiceRoleArn" : String, "Type" : String } }

属性

ApiId

将在其中创建此数据源的唯一 AWS AppSync GraphQL API 标识符。

必需:是

类型:字符串

Update requires: Replacement

Description

数据源的描述。

必需:否

类型:字符串

Update requires: No interruption

DynamoDBConfig

您的账户中 Amazon DynamoDB 表的 AwsRegion 和 TableName。

必需:否

类型DynamoDBConfig

Update requires: No interruption

ElasticsearchConfig

您的账户中 Amazon Elasticsearch Service 域的 AwsRegion 和 Endpoints。

必需:否

类型ElasticsearchConfig

Update requires: No interruption

HttpConfig

HTTP 数据源的终端节点。

必需:否

类型HttpConfig

Update requires: No interruption

LambdaConfig

您的账户中 Lambda 函数的有效 ARN。

必需:否

类型LambdaConfig

Update requires: No interruption

Name

用于在创建后标识 AppSync 数据源的友好名称。

必需:是

类型:字符串

Update requires: Replacement

RelationalDatabaseConfig

关系数据库数据源的关系数据库配置。

必需:否

类型RelationalDatabaseConfig

Update requires: No interruption

ServiceRoleArn

数据源的 AWS IAM 服务角色 ARN。在访问数据源时,系统将代入此角色。

在将 Type 指定为 AWS_LAMBDAAMAZON_DYNAMODBAMAZON_ELASTICSEARCH 时是必需的。

必需:条件

类型:字符串

Update requires: No interruption

Type

数据源的类型。

  • AMAZON_DYNAMODB:数据源是 Amazon DynamoDB 表。

  • AMAZON_ELASTICSEARCH:数据源是 Amazon Elasticsearch Service 域。

  • AWS_LAMBDA:数据源是 AWS Lambda 函数。

  • NONE:无数据源。当您希望在不连接数据源的情况下调用 GraphQL 操作时使用此类型,例如,使用解析程序执行数据转换或触发要从更改调用的订阅。

  • HTTP:数据源是 HTTP 终端节点。

  • RELATIONAL_DATABASE:数据源是关系数据库。

必需:是

类型:字符串

Update requires: No interruption

返回值

Ref

如果将 AWS::AppSync::DataSource 资源的逻辑 ID 传递给内部 Ref 函数,则此函数将返回数据源的 ARN,如 arn:aws:appsync:us-east-1:123456789012:apis/graphqlapiid/datasources/datasourcename

有关使用 Ref 函数的更多信息,请参阅 Ref

Fn::GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 的更多信息,请参阅 Fn::GetAtt

DataSourceArn

API 键的 Amazon 资源名称 (ARN),如 arn:aws:appsync:us-east-1:123456789012:apis/graphqlapiid/datasources/datasourcename

Name

用于在创建后标识 AppSync 数据源的友好名称。

示例

数据源创建示例

以下示例创建一个数据源并通过将 GraphQL API ID 作为参数传递来将该数据源与现有 GraphQL API 关联。

YAML

Parameters: graphQlApiId: Type: String dataSourceName: Type: String dataSourceDescription: Type: String serviceRoleArn: Type: String lambdaFunctionArn: Type: String Resources: DataSource: Type: AWS::AppSync::DataSource Properties: ApiId: Ref: graphQlApiId Name: Ref: dataSourceName Description: Ref: dataSourceDescription Type: "AWS_LAMBDA" ServiceRoleArn: Ref: serviceRoleArn LambdaConfig: LambdaFunctionArn: Ref: lambdaFunctionArn

JSON

{ "Parameters": { "graphQlApiId": { "Type": "String" }, "dataSourceName": { "Type": "String" }, "dataSourceDescription": { "Type": "String" }, "serviceRoleArn": { "Type": "String" }, "lambdaFunctionArn": { "Type": "String" } }, "Resources": { "DataSource": { "Type": "AWS::AppSync::DataSource", "Properties": { "ApiId": { "Ref": "graphQlApiId" }, "Name": { "Ref": "dataSourceName" }, "Description": { "Ref": "dataSourceDescription" }, "Type": "AWS_LAMBDA", "ServiceRoleArn": { "Ref": "serviceRoleArn" }, "LambdaConfig": { "LambdaFunctionArn": { "Ref": "lambdaFunctionArn" } } } } } }

另请参阅