

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS::Serverless::GraphQLApi
<a name="sam-resource-graphqlapi"></a>

 AWS Serverless Application Model (AWS SAM) `AWS::Serverless::GraphQLApi`リソースタイプを使用して、サーバーレスアプリケーションの API AWS AppSync GraphQLを作成および設定します。

詳細については AWS AppSync、「 *AWS AppSync デベロッパーガイド*」の[「What is AWS AppSync?](https://docs.aws.amazon.com/appsync/latest/devguide/what-is-appsync.html)」を参照してください。

## 構文
<a name="sam-resource-graphqlapi-syntax"></a>

### YAML
<a name="sam-resource-graphqlapi-syntax-yaml"></a>

```
LogicalId:
  Type: AWS::Serverless::GraphQLApi
  Properties:
    ApiKeys: ApiKeys
    Auth: Auth
    Cache: [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)
    DataSources: DataSource
    DomainName: [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)
    Functions: Function
    Logging: [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html)
    Name: String
    Resolvers: Resolver
    SchemaInline: String
    SchemaUri: String
    Tags:
    - [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)
    XrayEnabled: Boolean
```

## プロパティ
<a name="sam-resource-graphqlapi-properties"></a>

`ApiKeys`  <a name="sam-graphqlapi-apikeys"></a>
API キーを必要とする GraphQL オペレーションを実行するために使用できる一意のキーを作成します。  
タイプ: [ApiKeys](sam-property-graphqlapi-apikeys.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

`Auth`  <a name="sam-graphqlapi-auth"></a>
GraphQL API の認証を設定します。  
タイプ: [Auth](sam-property-graphqlapi-auth.md)  
*必須:* はい  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。

`Cache`  <a name="sam-graphqlapi-cache"></a>
`CreateApiCache` 操作の入力です。  
タイプ: [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html) リソースに直接渡されます。

`DataSources`  <a name="sam-graphqlapi-datasources"></a>
関数が に接続 AWS AppSync するためのデータソースを作成します。 は Amazon DynamoDB と AWS Lambda データソース AWS SAM をサポートしています。  
*タイプ*: [DataSource](sam-property-graphqlapi-datasource.md)  
*必須:* はい  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。

`DomainName`  <a name="sam-graphqlapi-domainname"></a>
GraphQL API のカスタムドメイン名です。  
*タイプ*: [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html) resource. AWS SAM automatically generate the [AWS::AppSync::DomainNameApiAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html) resource に直接渡されます。

`Functions`  <a name="sam-graphqlapi-functions"></a>
特定のオペレーションを実行するように GraphQL API の関数を設定します。  
タイプ: [Function](sam-property-graphqlapi-function.md)  
*必須:* はい  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。

`Logging`  <a name="sam-graphqlapi-logging"></a>
GraphQL API の Amazon CloudWatch ロギングを設定します。  
このプロパティを指定しない場合、 AWS SAM は次の値を生成`CloudWatchLogsRoleArn`して設定します。  
+ `ExcludeVerboseContent: true`
+ `FieldLogLevel: ALL`
ロギングをオプトアウトするには、以下を指定します。  

```
Logging: false
```
タイプ: [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-logconfig)`プロパティに直接渡されます。

`LogicalId`  <a name="sam-graphqlapi-logicalid"></a>
GraphQL API の一意の名前です。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name)`プロパティに直接渡されます。

`Name`  <a name="sam-graphqlapi-name"></a>
GraphQL API の名前です。このプロパティを指定して、`LogicalId` 値を上書きします。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name)`プロパティに直接渡されます。

`Resolvers`  <a name="sam-graphqlapi-resolvers"></a>
GraphQL API のフィールドのリゾルバーを設定します。 AWS SAM は、[JavaScript パイプラインリゾルバー](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html#anatomy-of-a-pipeline-resolver-js)をサポートします。  
タイプ: [Resolver](sam-property-graphqlapi-resolver.md)  
*必須:* はい  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

`SchemaInline`  <a name="sam-graphqlapi-schemainline"></a>
SDL 形式の GraphQL スキーマをテキストで表記したものです。  
*タイプ*: 文字列  
*必須:* 条件的。`SchemaInline` または `SchemaUri` を指定する必要があります。  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLSchema`リソースの `[Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definition)`プロパティに直接渡されます。

`SchemaUri`  <a name="sam-graphqlapi-schemauri"></a>
スキーマの Amazon Simple Storage Service (Amazon S3) バケット URI、またはローカルフォルダへのパスです。  
ローカルフォルダへのパスを指定する場合、 はデプロイ前にファイルを最初に Amazon S3 にアップロード CloudFormation する必要があります。 AWS SAM CLI を使用することで、この処理を円滑化することができます。詳細については、「[がデプロイ時にローカルファイル AWS SAM をアップロードする方法](deploy-upload-local-files.md)」を参照してください。  
*タイプ*: 文字列  
*必須:* 条件的。`SchemaInline` または `SchemaUri` を指定する必要があります。  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLSchema`リソースの `[DefinitionS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definitions3location)`プロパティに直接渡されます。

`Tags`  <a name="sam-graphqlapi-tags"></a>
この GraphQL API のタグ (キーと値のペア)。タグを使用して、リソースを識別し、カテゴリー分類します。  
タイプ: [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) のリスト  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-tags)`プロパティに直接渡されます。

`XrayEnabled`  <a name="sam-graphqlapi-xrayenabled"></a>
このリソースに [AWS X-Ray トレーシング](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)を使用するかどうかを指定します。  
型: ブール  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[XrayEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-xrayenabled)`プロパティに直接渡されます。

## 戻り値
<a name="sam-resource-graphqlapi-return-values"></a>

戻り値のリストについては、「[CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)」の「[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#aws-resource-appsync-graphqlapi-return-values.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#aws-resource-appsync-graphqlapi-return-values.html)」を参照してください。

## 例
<a name="sam-resource-graphqlapi-examples"></a>

### DynamoDB データソースを使用する GraphQL API
<a name="sam-resource-graphqlapi-examples-example1"></a>

この例では、DynamoDB テーブルをデータソースとして使用する GraphQL API を作成します。

**schema.graphql**

```
schema {
  query: Query
  mutation: Mutation
}

type Query {
  getPost(id: String!): Post
}

type Mutation {
  addPost(author: String!, title: String!, content: String!): Post!
}

type Post {
  id: String!
  author: String
  title: String
  content: String
  ups: Int!
  downs: Int!
  version: Int!
}
```

**template.yaml**

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  DynamoDBPostsTable:
    Type: AWS::Serverless::SimpleTable

  MyGraphQLAPI:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      SchemaUri: ./sam_graphql_api/schema.graphql
      Auth:
        Type: AWS_IAM
      DataSources:
        DynamoDb:
          PostsDataSource:
            TableName: !Ref DynamoDBPostsTable
            TableArn: !GetAtt DynamoDBPostsTable.Arn
      Functions:
        preprocessPostItem:
          Runtime:
            Name: APPSYNC_JS
            Version: 1.0.0
          DataSource: NONE
          CodeUri: ./sam_graphql_api/preprocessPostItem.js
        createPostItem:
          Runtime:
            Name: APPSYNC_JS
            Version: "1.0.0"
          DataSource: PostsDataSource
          CodeUri: ./sam_graphql_api/createPostItem.js
        getPostFromTable:
          Runtime:
            Name: APPSYNC_JS
            Version: "1.0.0"
          DataSource: PostsDataSource
          CodeUri: ./sam_graphql_api/getPostFromTable.js
      Resolvers:
        Mutation:
          addPost:
            Runtime:
              Name: APPSYNC_JS
              Version: "1.0.0"
            Pipeline:
            - preprocessPostItem
            - createPostItem
        Query:
          getPost:
            CodeUri: ./sam_graphql_api/getPost.js
            Runtime:
              Name: APPSYNC_JS
              Version: "1.0.0"
            Pipeline:
            - getPostFromTable
```

**createPostItem.js**

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  const { key, values } = ctx.prev.result;
  return {
    operation: "PutItem",
    key: util.dynamodb.toMapValues(key),
    attributeValues: util.dynamodb.toMapValues(values),
  };
}

export function response(ctx) {
  return ctx.result;
}
```

**getPostFromTable.js**

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  return dynamoDBGetItemRequest({ id: ctx.args.id });
}

export function response(ctx) {
  return ctx.result;
}

/**
 * A helper function to get a DynamoDB item
 */
function dynamoDBGetItemRequest(key) {
  return {
    operation: "GetItem",
    key: util.dynamodb.toMapValues(key),
  };
}
```

**preprocessPostItem.js**

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  const id = util.autoId();
  const { ...values } = ctx.args;
  values.ups = 1;
  values.downs = 0;
  values.version = 1;
  return { payload: { key: { id }, values: values } };
}

export function response(ctx) {
  return ctx.result;
}
```

リゾルバーコードは以下のとおりです。

**getPost.js**

```
export function request(ctx) {
  return {};
}

export function response(ctx) {
  return ctx.prev.result;
}
```

### データソースとして Lambda 関数を使用する GraphQL API
<a name="sam-resource-graphqlapi-examples-example2"></a>

この例では、Lambda 関数をデータソースとして使用する GraphQL API を作成します。

**template.yaml**

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs20.x
      CodeUri: ./lambda

  MyGraphQLAPI:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      Name: MyApi
      SchemaUri: ./gql/schema.gql
      Auth:
        Type: API_KEY
      ApiKeys:
        MyApiKey:
          Description: my api key
      DataSources:
        Lambda:
          MyLambdaDataSource:
            FunctionArn: !GetAtt MyLambdaFunction.Arn
      Functions:
        lambdaInvoker:
          Runtime:
            Name: APPSYNC_JS
            Version: 1.0.0
          DataSource: MyLambdaDataSource
          CodeUri: ./gql/invoker.js
      Resolvers:
        Mutation:
          addPost:
            Runtime:
              Name: APPSYNC_JS
              Version: 1.0.0
            Pipeline:
            - lambdaInvoker
        Query:
          getPost:
            Runtime:
              Name: APPSYNC_JS
              Version: 1.0.0
            Pipeline:
            - lambdaInvoker

Outputs:
  MyGraphQLAPI:
    Description: AppSync API
    Value: !GetAtt MyGraphQLAPI.GraphQLUrl
  MyGraphQLAPIMyApiKey:
    Description: API Key for authentication
    Value: !GetAtt MyGraphQLAPIMyApiKey.ApiKey
```

**schema.graphql**

```
schema {
  query: Query
  mutation: Mutation
}
type Query {
  getPost(id: ID!): Post
}
type Mutation {
  addPost(id: ID!, author: String!, title: String, content: String): Post!
}
type Post {
  id: ID!
  author: String!
  title: String
  content: String
  ups: Int
  downs: Int
}
```

関数は次のとおりです。

**lambda/index.js**

```
exports.handler = async (event) => {
  console.log("Received event {}", JSON.stringify(event, 3));

  const posts = {
    1: {
      id: "1",
      title: "First book",
      author: "Author1",
      content: "Book 1 has this content",
      ups: "100",
      downs: "10",
    },
  };

  console.log("Got an Invoke Request.");
  let result;
  switch (event.field) {
    case "getPost":
      return posts[event.arguments.id];
    case "addPost":
      // return the arguments back
      return event.arguments;
    default:
      throw new Error("Unknown field, unable to resolve " + event.field);
  }
};
```

**invoker.js**

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  const { source, args } = ctx;
  return {
    operation: "Invoke",
    payload: { field: ctx.info.fieldName, arguments: args, source },
  };
}

export function response(ctx) {
  return ctx.result;
}
```

# ApiKeys
<a name="sam-property-graphqlapi-apikeys"></a>

API キーを必要とする GraphQL オペレーションを実行するために使用できる一意のキーを作成します。

## 構文
<a name="sam-property-graphqlapi-apikeys-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-apikeys-syntax-yaml"></a>

```
LogicalId:
  ApiKeyId: String
  Description: String
  ExpiresOn: Double
```

## プロパティ
<a name="sam-property-graphqlapi-apikeys-properties"></a>

`ApiKeyId`  <a name="sam-graphqlapi-apikeys-apikeyid"></a>
API キーの一意の名前です。`LogicalId` 値を上書きするように指定します。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::ApiKey`リソースの `[ApiKeyId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid)`プロパティに直接渡されます。

`Description`  <a name="sam-graphqlapi-apikeys-description"></a>
API キーの説明です。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::ApiKey`リソースの `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description)`プロパティに直接渡されます。

`ExpiresOn`  <a name="sam-graphqlapi-apikeys-expireson"></a>
API キーが失効してからの時間。日付は、エポックからの秒数で表され、最も近い時間に丸められます。  
型: 倍精度  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::ApiKey`リソースの `[Expires](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires)`プロパティに直接渡されます。

`LogicalId`  <a name="sam-graphqlapi-apikeys-logicalid"></a>
API キーの一意の名前です。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::ApiKey`リソースの `[ApiKeyId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid)`プロパティに直接渡されます。

# Auth
<a name="sam-property-graphqlapi-auth"></a>

GraphQL API 用の認可を設定します。

## 構文
<a name="sam-property-graphqlapi-auth-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-auth-syntax-yaml"></a>

```
Additional:
- AuthProvider
LambdaAuthorizer: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)
OpenIDConnect: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)
Type: String
UserPool: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)
```

## プロパティ
<a name="sam-property-graphqlapi-auth-properties"></a>

`Additional`  <a name="sam-graphqlapi-auth-additional"></a>
GraphQL API 向けの、追加の認可タイプのリストです。  
タイプ: [AuthProvider](sam-property-graphqlapi-auth-authprovider.md) のリスト  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、同等の CloudFormation プロパティはありません。

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-lambdaauthorizer"></a>
Lambda 関数オーソライザーのオプションの認可設定を指定します。このオプションプロパティは、`Type` を `AWS_LAMBDA` として指定する場合に設定できます。  
*タイプ*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)`プロパティに直接渡されます。

`OpenIDConnect`  <a name="sam-graphqlapi-auth-openidconnect"></a>
OpenID Connect 準拠サービスのオプションの認可設定を指定します。このオプションプロパティは、`Type` を `OPENID_CONNECT` として指定する場合に設定できます。  
*タイプ*: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)`プロパティに直接渡されます。

`Type`  <a name="sam-graphqlapi-auth-type"></a>
アプリケーションと AWS AppSync GraphQL API 間のデフォルトの認可タイプ。  
許可される値のリストと説明については、「*AWS AppSync Developer Guide*」の「[Authorization and authentication](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html)」を参照してください。  
Lambda オーソライザー () を指定すると`AWS_LAMBDA`、 は GraphQL API と Lambda 関数間のアクセス許可をプロビジョニングする AWS Identity and Access Management (IAM) ポリシー AWS SAM を作成します。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-authenticationtype)`プロパティに直接渡されます。

`UserPool`  <a name="sam-graphqlapi-auth-userpool"></a>
Amazon Cognito ユーザープールを使用するためのオプションの認可設定を指定します。このオプションプロパティは、`Type` を `AMAZON_COGNITO_USER_POOLS` として指定する場合に設定できます。  
*タイプ*: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi`リソースの `[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)`プロパティに直接渡されます。

## 例
<a name="sam-property-graphqlapi-auth-examples"></a>

### デフォルトとその他の認可タイプの設定
<a name="sam-property-graphqlapi-auth-examples-example1"></a>

この例では、まず Lambda オーソライザーを GraphQL API のデフォルトの認可タイプとして設定します。

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyGraphQLAPI:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      Auth:
        Type: AWS_LAMBDA
        LambdaAuthorizer:
          AuthorizerUri: !GetAtt Authorizer1.Arn
          AuthorizerResultTtlInSeconds: 10
          IdentityValidationExpression: hello
```

次に、 AWS SAM テンプレートに以下を追加して、GraphQL API のその他の認可タイプを設定します。

```
        Additional:
        - Type: AWS_IAM
        - Type: API_KEY
        - Type: OPENID_CONNECT
          OpenIDConnect:
            AuthTTL: 10
            ClientId: myId
            IatTTL: 10
            Issuer: prod
```

これにより、次の AWS SAM テンプレートが生成されます。

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyGraphQLAPI:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      Auth:
        Type: AWS_LAMBDA
        LambdaAuthorizer:
          AuthorizerUri: !GetAtt Authorizer1.Arn
          AuthorizerResultTtlInSeconds: 10
          IdentityValidationExpression: hello
        Additional:
        - Type: AWS_IAM
        - Type: API_KEY
        - Type: OPENID_CONNECT
          OpenIDConnect:
            AuthTTL: 10
            ClientId: myId
            IatTTL: 10
            Issuer: prod
```

# AuthProvider
<a name="sam-property-graphqlapi-auth-authprovider"></a>

追加の GraphQL API 認可タイプ用のオプションの認可設定。

## 構文
<a name="sam-property-graphqlapi-auth-authprovider-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-auth-authprovider-syntax-yaml"></a>

```
LambdaAuthorizer: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)
OpenIDConnect: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)
Type: String
UserPool: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)
```

## プロパティ
<a name="sam-property-graphqlapi-auth-authprovider-properties"></a>

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-authprovider-lambdaauthorizer"></a>
 AWS Lambda 関数オーソライザーのオプションの認可設定を指定します。このオプションプロパティは、`Type` を `AWS_LAMBDA` として指定する場合に設定できます。  
*タイプ*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` オブジェクトの `[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)`プロパティに直接渡されます。

`OpenIDConnect`  <a name="sam-graphqlapi-auth-authprovider-openidconnect"></a>
OpenID Connect 準拠サービスのオプションの認可設定を指定します。このオプションプロパティは、`Type` を `OPENID_CONNECT` として指定する場合に設定できます。  
*タイプ*: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` オブジェクトの `[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)`プロパティに直接渡されます。

`Type`  <a name="sam-graphqlapi-auth-authprovider-type"></a>
アプリケーションと AWS AppSync GraphQL API 間のデフォルトの認可タイプ。  
許可される値のリストと説明については、「*AWS AppSync Developer Guide*」の「[Authorization and authentication](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html)」を参照してください。  
Lambda オーソライザー () を指定すると`AWS_LAMBDA`、 は GraphQL API と Lambda 関数間のアクセス許可をプロビジョニングする AWS Identity and Access Management (IAM) ポリシー AWS SAM を作成します。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` オブジェクトの `[ AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype)`プロパティに直接渡されます。

`UserPool`  <a name="sam-graphqlapi-auth-authprovider-userpool"></a>
Amazon Cognito ユーザープールを使用するためのオプションの認可設定を指定します。このオプションプロパティは、`Type` を `AMAZON_COGNITO_USER_POOLS` として指定する場合に設定できます。  
*タイプ*: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` オブジェクトの `[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)`プロパティに直接渡されます。

# DataSource
<a name="sam-property-graphqlapi-datasource"></a>

GraphQL API リゾルバーが接続できるデータソースを設定します。 AWS Serverless Application Model (AWS SAM) テンプレートを使用して、次のデータソースへの接続を設定できます。
+ Amazon DynamoDB
+ AWS Lambda

データソースの詳細については、「AWS AppSync デベロッパーガイド」の「[データソースのアタッチ](https://docs.aws.amazon.com/appsync/latest/devguide/attaching-a-data-source.html)」を参照してください。

## 構文
<a name="sam-property-graphqlapi-datasource-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-datasource-syntax-yaml"></a>

```
DynamoDb: DynamoDb
Lambda: Lambda
```

## プロパティ
<a name="sam-property-graphqlapi-datasource-properties"></a>

`DynamoDb`  <a name="sam-graphqlapi-datasource-dynamodb"></a>
GraphQL API リゾルバーのデータソースとして DynamoDB テーブルを設定します。  
タイプ: [DynamoDB](sam-property-graphqlapi-datasource-dynamodb.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

`Lambda`  <a name="sam-graphqlapi-datasource-lambda"></a>
GraphQL API リゾルバーのデータソースとして Lambda 関数を設定します。  
タイプ: [Lambda](sam-property-graphqlapi-datasource-lambda.md)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

# DynamoDb
<a name="sam-property-graphqlapi-datasource-dynamodb"></a>

GraphQL API リゾルバーのデータソースとして Amazon DynamoDB テーブルを設定します。

## 構文
<a name="sam-property-graphqlapi-datasource-dynamodb-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-datasource-dynamodb-syntax-yaml"></a>

```
LogicalId:
  DeltaSync: [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html)
  Description: String
  Name: String
  Permissions: List
  Region: String
  ServiceRoleArn: String
  TableArn: String
  TableName: String
  UseCallerCredentials: Boolean
  Versioned: Boolean
```

## プロパティ
<a name="sam-property-graphqlapi-datasource-dynamodb-properties"></a>

`DeltaSync`  <a name="sam-graphqlapi-datasource-dynamodb-deltasync"></a>
デルタ同期の構成について説明します。  
*Type*: [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource DynamoDBConfig` オブジェクトの `[DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-deltasyncconfig)`プロパティに直接渡されます。

`Description`  <a name="sam-graphqlapi-datasource-dynamodb-description"></a>
データソースの説明です。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource`リソースの `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description)`プロパティに直接渡されます。

`LogicalId`  <a name="sam-graphqlapi-datasource-dynamodb-logicalid"></a>
データソースの一意の名前です。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource`リソースの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)`プロパティに直接渡されます。

`Name`  <a name="sam-graphqlapi-datasource-dynamodb-name"></a>
データソースの名前です。このプロパティを指定して、`LogicalId` 値を上書きします。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource`リソースの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)`プロパティに直接渡されます。

`Permissions`  <a name="sam-graphqlapi-datasource-dynamodb-permissions"></a>
[AWS SAM コネクタ](managing-permissions-connectors.md) を使用して、データソースに許可をプロビジョニングします。リストには、以下の値のいずれかを指定できます。  
+ `Read` – データソースの読み取りをリゾルバーに許可します。
+ `Write` – データソースの書き込みをリゾルバーに許可します。
AWS SAM は、デプロイ時に変換される `AWS::Serverless::Connector`リソースを使用してアクセス許可をプロビジョニングします。生成されたリソースについては、「[CloudFormation を指定したときに生成される リソース AWS::Serverless::Connector](sam-specification-generated-resources-connector.md)」を参照してください。  
`Permissions` または `ServiceRoleArn` を指定できます。両方を指定することはできません。どちらも指定しない場合、 AWS SAM は `Read`と のデフォルト値を生成します`Write`。データソースへのアクセスを取り消すには、 AWS SAM テンプレートから DynamoDB オブジェクトを削除します。
*タイプ*: リスト  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。これは、`AWS::Serverless::Connector` リソースの `Permissions` プロパティに似ています。

`Region`  <a name="sam-graphqlapi-datasource-dynamodb-region"></a>
DynamoDB テーブル AWS リージョン の 。指定しない場合、 は AWS SAM を使用します`[AWS::Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html#cfn-pseudo-param-region)`。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource DynamoDBConfig` オブジェクトの `[AwsRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-awsregion)`プロパティに直接渡されます。

`ServiceRoleArn`  <a name="sam-graphqlapi-datasource-dynamodb-servicerolearn"></a>
データソースの AWS Identity and Access Management (IAM) サービスロール ARN。システムは、データソースにアクセスするときにこのロールを引き受けます。  
`Permissions` または `ServiceRoleArn` を指定できます。両方を指定することはできません。  
*タイプ*: 文字列  
*必須*: いいえ。指定しない場合、 は のデフォルト値 AWS SAM を適用します`Permissions`。  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource`リソースの `[ServiceRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn)`プロパティに直接渡されます。

`TableArn`  <a name="sam-graphqlapi-datasource-dynamodb-tablearn"></a>
DynamoDB テーブルの ARN です。  
*タイプ*: 文字列  
*必須:* 条件的。`ServiceRoleArn` を指定しない場合は、`TableArn` が必要になります。  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。

`TableName`  <a name="sam-graphqlapi-datasource-dynamodb-tablename"></a>
テーブル名。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource DynamoDBConfig` オブジェクトの `[TableName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-tablename)`プロパティに直接渡されます。

`UseCallerCredentials`  <a name="sam-graphqlapi-datasource-dynamodb-usecallercredentials"></a>
`true` に設定して、このデータソースで IAM を使用します。  
型: ブール  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource DynamoDBConfig` オブジェクトの `[UseCallerCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-usecallercredentials)`プロパティに直接渡されます。

`Versioned`  <a name="sam-graphqlapi-datasource-dynamodb-versioned"></a>
`true` に設定して、このデータソースで [Conflict Detection、Conflict Resolution、および Sync](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) を使用します。  
タイプ: ブール  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource DynamoDBConfig` オブジェクトの `[Versioned](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-versioned)`プロパティに直接渡されます。

# Lambda
<a name="sam-property-graphqlapi-datasource-lambda"></a>

GraphQL API リゾルバーのデータソースとして AWS Lambda 関数を設定します。

## 構文
<a name="sam-property-graphqlapi-datasource-lambda-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-datasource-lambda-syntax-yaml"></a>

```
LogicalId:
  Description: String
  FunctionArn: String
  Name: String
  ServiceRoleArn: String
```

## プロパティ
<a name="sam-property-graphqlapi-datasource-lambda-properties"></a>

`Description`  <a name="sam-graphqlapi-datasource-lambda-description"></a>
データソースの説明です。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource`リソースの `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description)`プロパティに直接渡されます。

`FunctionArn`  <a name="sam-graphqlapi-datasource-lambda-functionarn"></a>
Lambda 関数の ARN。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource LambdaConfig` オブジェクトの `[LambdaFunctionArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html#cfn-appsync-datasource-lambdaconfig-lambdafunctionarn)`プロパティに直接渡されます。

`LogicalId`  <a name="sam-graphqlapi-datasource-lambda-logicalid"></a>
データソースの一意の名前です。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource`リソースの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)`プロパティに直接渡されます。

`Name`  <a name="sam-graphqlapi-datasource-lambda-name"></a>
データソースの名前です。このプロパティを指定して、`LogicalId` 値を上書きします。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource`リソースの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)`プロパティに直接渡されます。

`ServiceRoleArn`  <a name="sam-graphqlapi-datasource-lambda-servicerolearn"></a>
データソースの AWS Identity and Access Management (IAM) サービスロール ARN。システムは、データソースにアクセスするときにこのロールを引き受けます。  
データソースへのアクセスを取り消すには、 AWS SAM テンプレートから Lambda オブジェクトを削除します。
*タイプ*: 文字列  
*必須*: いいえ。指定しない場合、 を使用して`Write`アクセス許可をプロビジョニング AWS SAM します[AWS SAM コネクタ](managing-permissions-connectors.md)。  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::DataSource`リソースの `[ServiceRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn)`プロパティに直接渡されます。

# 関数
<a name="sam-property-graphqlapi-function"></a>

特定のオペレーションを実行するように GraphQL API の関数を設定します。

## 構文
<a name="sam-property-graphqlapi-function-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-function-syntax-yaml"></a>

```
LogicalId:
  CodeUri: String
  DataSource: String
  Description: String
  Id: String
  InlineCode: String
  MaxBatchSize: Integer
  Name: String
  Runtime: Runtime
  Sync: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html)
```

## プロパティ
<a name="sam-property-graphqlapi-function-properties"></a>

`CodeUri`  <a name="sam-graphqlapi-function-codeuri"></a>
関数コードの Amazon Simple Storage Service (Amazon S3) URI、またはローカルフォルダへのパスです。  
ローカルフォルダへのパスを指定する場合、 CloudFormation はデプロイ前にファイルを最初に Amazon S3 にアップロードする必要があります。 AWS SAM CLI を使用することで、この処理を円滑化することができます。詳細については、「[がデプロイ時にローカルファイル AWS SAM をアップロードする方法](deploy-upload-local-files.md)」を参照してください。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration`リソースの `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-codes3location)`プロパティに直接渡されます。

`DataSource`  <a name="sam-graphqlapi-function-datasource"></a>
この関数がアタッチされるデータソースの名前です。  
+ `AWS::Serverless::GraphQLApi` リソース内のデータソースを参照するには、その論理 ID を指定します。
+ `AWS::Serverless::GraphQLApi` リソース外のデータソースを参照するには、`Fn::GetAtt` 組み込み関数を使用して、その `Name` 属性を指定します。例えば、`!GetAtt MyLambdaDataSource.Name`。
+ 別のスタックからのデータソースを参照するには、`[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)` を使用します。
のバリエーション`[NONE | None | none]`が指定されている場合、 AWS SAM は `AWS::AppSync::DataSource` `[Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-type)` オブジェクト`None`の値を生成します。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration`リソースの `[DataSourceName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-datasourcename)`プロパティに直接渡されます。

`Description`  <a name="sam-graphqlapi-function-description"></a>
関数の説明です。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration`リソースの `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-description)`プロパティに直接渡されます。

`Id`  <a name="sam-graphqlapi-function-id"></a>
`AWS::Serverless::GraphQLApi` リソース外にある関数の関数 ID です。  
+ 同じ AWS SAM テンプレート内の関数を参照するには、`Fn::GetAtt`組み込み関数を使用します。例: `Id: !GetAtt createPostItemFunc.FunctionId`。
+ 別のスタックからの関数を参照するには、`[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)` を使用します。
を使用する場合`Id`、他のすべてのプロパティは許可されません。 AWS SAM は参照される関数の関数 ID を自動的に渡します。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

`InlineCode`  <a name="sam-graphqlapi-function-inlinecode"></a>
リクエスト関数とレスポンス関数が含まれる関数コードです。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration`リソースの `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-code)`プロパティに直接渡されます。

`LogicalId`  <a name="sam-graphqlapi-function-logicalid"></a>
関数の一意の名前です。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration`リソースの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name)`プロパティに直接渡されます。

`MaxBatchSize`  <a name="sam-graphqlapi-function-maxbatchsize"></a>
`BatchInvoke` オペレーションの単一の AWS Lambda 機能に送信されるリゾルバーリクエスト入力の最大数を指定します。  
*タイプ:* 整数  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration`リソースの [MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-maxbatchsize) プロパティに直接渡されます。

`Name`  <a name="sam-graphqlapi-function-name"></a>
関数の名前 `LogicalId` 値を上書きするように指定します。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration`リソースの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name)`プロパティに直接渡されます。

`Runtime`  <a name="sam-graphqlapi-function-runtime"></a>
 AWS AppSync パイプラインリゾルバーまたは AWS AppSync 関数で使用されるランタイムについて説明します。使用するランタイムの名前とバージョンを指定します。  
タイプ: [Runtime](sam-property-graphqlapi-function-runtime.md)  
*必須:* はい  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。これは、`AWS::AppSync::FunctionConfiguration` リソースの `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-runtime)` プロパティに似ています。

`Sync`  <a name="sam-graphqlapi-function-sync"></a>
関数の Sync 構成について説明します。  
関数が呼び出されたときに、どの競合検出戦略および解決戦略を使用するかを指定します。  
タイプ: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration`リソースの `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-syncconfig)`プロパティに直接渡されます。

# 実行時間
<a name="sam-property-graphqlapi-function-runtime"></a>

パイプラインリゾルバーまたは関数のランタイムです。使用する名前とバージョンを指定します。

## 構文
<a name="sam-property-graphqlapi-function-runtime-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-function-runtime-syntax-yaml"></a>

```
Name: String
Version: String
```

## プロパティ
<a name="sam-property-graphqlapi-function-runtime-properties"></a>

`Name`  <a name="sam-graphqlapi-function-runtime-name"></a>
使用するランタイムの名前です。現在許容されている値は、`APPSYNC_JS` のみです。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration AppSyncRuntime` オブジェクトの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-appsyncruntime.html#cfn-appsync-functionconfiguration-appsyncruntime-name)`プロパティに直接渡されます。

`Version`  <a name="sam-graphqlapi-function-runtime-version"></a>
使用するランタイムのバージョンです。現在許容されているバージョンは、`1.0.0` のみです。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::FunctionConfiguration AppSyncRuntime` オブジェクトの `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-appsyncruntime.html#cfn-appsync-functionconfiguration-appsyncruntime-runtimeversion)`プロパティに直接渡されます。

# [リゾルバ]
<a name="sam-property-graphqlapi-resolver"></a>

GraphQL API のフィールドにリゾルバーを設定します。 AWS Serverless Application Model (AWS SAM) は [JavaScript パイプラインリゾルバー](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html)をサポートします。

## 構文
<a name="sam-property-graphqlapi-resolver-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-resolver-syntax-yaml"></a>

```
OperationType:
  LogicalId:
    Caching: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)
    CodeUri: String
    FieldName: String
    InlineCode: String 
    MaxBatchSize: Integer
    Pipeline: List
    Runtime: Runtime
    Sync: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)
```

## プロパティ
<a name="sam-property-graphqlapi-resolver-properties"></a>

`Caching`  <a name="sam-graphqlapi-resolver-caching"></a>
キャッシュが有効になっているリゾルバーのキャッシュ構成です。  
タイプ: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver`リソースの `[CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig)`プロパティに直接渡されます。

`CodeUri`  <a name="sam-graphqlapi-resolver-codeuri"></a>
リゾルバー関数コードの Amazon Simple Storage Service (Amazon S3) URI、またはローカルフォルダへのパスです。  
ローカルフォルダへのパスを指定する場合、 CloudFormation はデプロイ前にファイルを最初に Amazon S3 にアップロードする必要があります。 AWS SAM CLI を使用することで、この処理を円滑化することができます。詳細については、「[がデプロイ時にローカルファイル AWS SAM をアップロードする方法](deploy-upload-local-files.md)」を参照してください。  
`CodeUri` または が指定されていない場合、 AWS SAM `InlineCode`はリクエストを最初のパイプライン関数に`InlineCode`リダイレクトし、最後のパイプライン関数からレスポンスを受け取る を生成します。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver`リソースの `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-codes3location)`プロパティに直接渡されます。

`FieldName`  <a name="sam-graphqlapi-resolver-fieldname"></a>
リゾルバーの名前です。このプロパティを指定して、`LogicalId` 値を上書きします。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver`リソースの `[FieldName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname)`プロパティに直接渡されます。

`InlineCode`  <a name="sam-graphqlapi-resolver-inlinecode"></a>
リクエスト関数とレスポンス関数が含まれるリゾルバーコードです。  
`CodeUri` または が指定されていない場合、 AWS SAM `InlineCode`はリクエストを最初のパイプライン関数に`InlineCode`リダイレクトし、最後のパイプライン関数からレスポンスを受け取る を生成します。  
*タイプ*: 文字列  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver`リソースの `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-code)`プロパティに直接渡されます。

`LogicalId`  <a name="sam-graphqlapi-resolver-logicalid"></a>
リゾルバーの一意の名前です。GraphQL スキーマでは、リゾルバーが使用されるフィールド名が、リゾルバー名と一致する必要があります。`LogicalId` にも、それと同じフィールド名を使用してください。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。

`MaxBatchSize`  <a name="sam-graphqlapi-resolver-maxbatchsize"></a>
`BatchInvoke` オペレーションの単一の AWS Lambda 機能に送信されるリゾルバーリクエスト入力の最大数を指定します。  
*タイプ:* 整数  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver`リソースの `[MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-maxbatchsize)`プロパティに直接渡されます。

`OperationType`  <a name="sam-graphqlapi-resolver-operationtype"></a>
リゾルバーに関連付けられている GraphQL オペレーションタイプです。例えば、`Query`、`Mutation`、または `Subscription` などです。単一の `OperationType` 内にある `LogicalId` で、複数のリゾルバーをネストすることができます。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver`リソースの `[TypeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename)`プロパティに直接渡されます。

`Pipeline`  <a name="sam-graphqlapi-resolver-pipeline"></a>
パイプランリゾルバーにリンクされている関数。リスト内の論理 ID で関数を指定します。  
*タイプ*: リスト  
*必須:* はい  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。これは、`AWS::AppSync::Resolver` リソースの `[PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig)` プロパティに似ています。

`Runtime`  <a name="sam-graphqlapi-resolver-runtime"></a>
パイプラインリゾルバーまたは関数のランタイムです。使用する名前とバージョンを指定します。  
タイプ: [Runtime](sam-property-graphqlapi-resolver-runtime.md)  
*必須:* はい  
*CloudFormation 互換性*: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。これは、`AWS::AppSync::Resolver` リソースの `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-runtime)` プロパティに似ています。

`Sync`  <a name="sam-graphqlapi-resolver-sync"></a>
リゾルバーの同期構成について説明します。  
リゾルバーが呼び出されたときに、どの競合検出戦略および解決戦略を使用するかを指定します。  
タイプ: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)  
*必須:* いいえ  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver`リソースの `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig)`プロパティに直接渡されます。

## 例
<a name="sam-property-graphqlapi-resolver-examples"></a>

### AWS SAM 生成されたリゾルバー関数コードを使用し、フィールドを変数として保存する
<a name="sam-property-graphqlapi-resolver-examples-example1"></a>

以下は、この例の GraphQL スキーマです。

```
schema {
  query: Query
  mutation: Mutation
}

type Query {
  getPost(id: ID!): Post
}

type Mutation {
  addPost(author: String!, title: String!, content: String!): Post!
}

type Post {
  id: ID!
  author: String
  title: String
  content: String
}
```

 AWS SAM テンプレートのスニペットを次に示します。

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyGraphQLApi:
    Type: AWS::Serverless::GraphQLApi
    Properties:
      ...
      Functions:
        preprocessPostItem:
          ...
        createPostItem:
          ...
      Resolvers:
        Mutation:
          addPost:
            Runtime:
              Name: APPSYNC_JS
              Version: 1.0.0
            Pipeline:
            - preprocessPostItem
            - createPostItem
```

 AWS SAM テンプレートでは、 `CodeUri`または を指定しません`InlineCode`。デプロイ時に、 はリゾルバーの次のインラインコード AWS SAM を自動的に生成します。

```
export function request(ctx) {
  return {};
}

export function response(ctx) {
  return ctx.prev.result;
}
```

このデフォルトリゾルバーコードは、リクエストを最初のパイプライン関数にリダイレクトし、最後のパイプライン関数からレスポンスを受け取ります。

最初のパイプライン関数では、提供された `args` フィールドを使用してリクエストオブジェクトを解析し、変数を作成することができます。作成後、関数内でこれらの変数を使用できます。以下は、`preprocessPostItem` 関数の例です。

```
import { util } from "@aws-appsync/utils";

export function request(ctx) {
  const author = ctx.args.author;
  const title = ctx.args.title;
  const content = ctx.args.content;
  
  // Use variables to process data
  
}

export function response(ctx) {
  return ctx.result;
}
```

# 実行時間
<a name="sam-property-graphqlapi-resolver-runtime"></a>

パイプラインリゾルバーまたは関数のランタイムです。使用する名前とバージョンを指定します。

## 構文
<a name="sam-property-graphqlapi-resolver-runtime-syntax"></a>

 AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。

### YAML
<a name="sam-property-graphqlapi-resolver-runtime-syntax-yaml"></a>

```
Name: String
Version: String
```

## プロパティ
<a name="sam-property-graphqlapi-resolver-runtime-properties"></a>

`Name`  <a name="sam-graphqlapi-resolver-runtime-name"></a>
使用するランタイムの名前です。現在許容されている値は、`APPSYNC_JS` のみです。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver AppSyncRuntime` オブジェクトの `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-name)`プロパティに直接渡されます。

`Version`  <a name="sam-graphqlapi-resolver-runtime-version"></a>
使用するランタイムのバージョンです。現在許容されているバージョンは、`1.0.0` のみです。  
*タイプ*: 文字列  
*必須*: はい  
*CloudFormation 互換性*: このプロパティは、 `AWS::AppSync::Resolver AppSyncRuntime` オブジェクトの `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-runtimeversion)`プロパティに直接渡されます。