

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

Gunakan tipe `AWS::Serverless::GraphQLApi` sumber daya AWS Serverless Application Model (AWS SAM) untuk membuat dan mengonfigurasi AWS AppSync GraphQL API untuk aplikasi tanpa server Anda.

Untuk mempelajari lebih lanjut tentang AWS AppSync, lihat [Apa itu AWS AppSync?](https://docs.aws.amazon.com/appsync/latest/devguide/what-is-appsync.html) di *Panduan AWS AppSync Pengembang*.

## Sintaksis
<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
```

## Sifat-sifat
<a name="sam-resource-graphqlapi-properties"></a>

`ApiKeys`  <a name="sam-graphqlapi-apikeys"></a>
Buat kunci unik yang dapat digunakan untuk melakukan GraphQL operasi yang membutuhkan kunci API.  
*Jenis*: [ApiKeys](sam-property-graphqlapi-apikeys.md)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`Auth`  <a name="sam-graphqlapi-auth"></a>
Konfigurasikan autentikasi untuk GraphQL API Anda.  
*Jenis*: [Auth](sam-property-graphqlapi-auth.md)  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`Cache`  <a name="sam-graphqlapi-cache"></a>
Input dari suatu `CreateApiCache` operasi.  
*Jenis*: [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke [AWS::AppSync::ApiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html)sumber daya.

`DataSources`  <a name="sam-graphqlapi-datasources"></a>
Buat sumber data untuk fungsi AWS AppSync yang terhubung ke. AWS SAM mendukung Amazon DynamoDB AWS Lambda dan sumber data.  
*Jenis*: [DataSource](sam-property-graphqlapi-datasource.md)  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`DomainName`  <a name="sam-graphqlapi-domainname"></a>
Nama domain khusus untuk GraphQL API Anda.  
*Jenis*: [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke [AWS::AppSync::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html)sumber daya. AWS SAM secara otomatis menghasilkan [AWS::AppSync::DomainNameApiAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html)sumber daya.

`Functions`  <a name="sam-graphqlapi-functions"></a>
Konfigurasikan fungsi GraphQL APIs untuk melakukan operasi tertentu.  
*Jenis*: [Fungsi](sam-property-graphqlapi-function.md)  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`Logging`  <a name="sam-graphqlapi-logging"></a>
Mengonfigurasi CloudWatch pencatatan Amazon untuk GraphQL API Anda.  
Jika Anda tidak menentukan properti ini, AWS SAM akan menghasilkan `CloudWatchLogsRoleArn` dan menetapkan nilai-nilai berikut:  
+ `ExcludeVerboseContent: true`
+ `FieldLogLevel: ALL`
Untuk memilih keluar dari logging, tentukan yang berikut ini:  

```
Logging: false
```
*Jenis*: [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-logconfig)` properti `AWS::AppSync::GraphQLApi` sumber daya.

`LogicalId`  <a name="sam-graphqlapi-logicalid"></a>
Nama unik GraphQL API Anda.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name)` properti `AWS::AppSync::GraphQLApi` sumber daya.

`Name`  <a name="sam-graphqlapi-name"></a>
Nama GraphQL API Anda. Tentukan properti ini untuk mengganti `LogicalId` nilainya.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name)` properti `AWS::AppSync::GraphQLApi` sumber daya.

`Resolvers`  <a name="sam-graphqlapi-resolvers"></a>
Konfigurasikan resolver untuk bidang API AndaGraphQL. AWS SAM mendukung [resolver JavaScript pipa](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html#anatomy-of-a-pipeline-resolver-js).  
*Jenis*: [Resolver](sam-property-graphqlapi-resolver.md)  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`SchemaInline`  <a name="sam-graphqlapi-schemainline"></a>
Representasi teks dari GraphQL skema dalam SDL format.  
*Tipe*: String  
*Diperlukan*: Bersyarat. Anda harus menentukan `SchemaInline` atau `SchemaUri`.  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definition)` properti `AWS::AppSync::GraphQLSchema` sumber daya.

`SchemaUri`  <a name="sam-graphqlapi-schemauri"></a>
URI bucket Amazon Simple Storage Service (Amazon S3) skema atau path ke folder lokal.  
Jika Anda menentukan jalur ke folder lokal, CloudFormation mengharuskan file tersebut diunggah terlebih dahulu ke Amazon S3 sebelum penerapan. Anda dapat menggunakan AWS SAMCLI untuk memfasilitasi proses ini. Untuk informasi selengkapnya, lihat [Cara AWS SAM mengunggah file lokal saat penerapan](deploy-upload-local-files.md).  
*Tipe*: String  
*Diperlukan*: Bersyarat. Anda harus menentukan `SchemaInline` atau `SchemaUri`.  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[DefinitionS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definitions3location)` properti `AWS::AppSync::GraphQLSchema` sumber daya.

`Tags`  <a name="sam-graphqlapi-tags"></a>
Tag (pasangan nilai kunci) untuk API iniGraphQL. Gunakan tag untuk mengidentifikasi dan mengkategorikan sumber daya.  
*Jenis:* Daftar [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-tags)` properti `AWS::AppSync::GraphQLApi` sumber daya.

`XrayEnabled`  <a name="sam-graphqlapi-xrayenabled"></a>
Tunjukkan apakah akan menggunakan [penelusuran AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) untuk sumber daya ini.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[XrayEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-xrayenabled)` properti `AWS::AppSync::GraphQLApi` sumber daya.

## Nilai Pengembalian
<a name="sam-resource-graphqlapi-return-values"></a>

Untuk daftar nilai yang dikembalikan, lihat [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)di [Panduan CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

### GraphQL APIdengan sumber data DynamoDB
<a name="sam-resource-graphqlapi-examples-example1"></a>

Dalam contoh ini, kita membuat GraphQL API yang menggunakan tabel DynamoDB sebagai sumber data.

**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;
}
```

Berikut adalah kode resolver kami:

**getPost.js**

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

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

### GraphQLAPI dengan fungsi Lambda sebagai sumber data
<a name="sam-resource-graphqlapi-examples-example2"></a>

Dalam contoh ini, kita membuat GraphQL API yang menggunakan fungsi Lambda sebagai sumber data.

**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
}
```

Berikut adalah fungsi kami:

**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>

Buat kunci unik yang dapat digunakan untuk melakukan GraphQL operasi yang membutuhkan kunci API.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

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

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

## Sifat-sifat
<a name="sam-property-graphqlapi-apikeys-properties"></a>

`ApiKeyId`  <a name="sam-graphqlapi-apikeys-apikeyid"></a>
Nama unik kunci API Anda. Tentukan untuk mengganti `LogicalId` nilainya.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ApiKeyId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid)` properti `AWS::AppSync::ApiKey` sumber daya.

`Description`  <a name="sam-graphqlapi-apikeys-description"></a>
Deskripsi kunci API Anda.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description)` properti `AWS::AppSync::ApiKey` sumber daya.

`ExpiresOn`  <a name="sam-graphqlapi-apikeys-expireson"></a>
Waktu setelah kunci API berakhir. Tanggal direpresentasikan sebagai detik sejak jangka waktu, dibulatkan ke bawah ke waktu jam terdekat.  
*Tipe*: Ganda  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Expires](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires)` properti `AWS::AppSync::ApiKey` sumber daya.

`LogicalId`  <a name="sam-graphqlapi-apikeys-logicalid"></a>
Nama unik kunci API Anda.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ApiKeyId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid)` properti `AWS::AppSync::ApiKey` sumber daya.

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

Konfigurasikan otorisasi untuk GraphQL API Anda.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

### 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)
```

## Sifat-sifat
<a name="sam-property-graphqlapi-auth-properties"></a>

`Additional`  <a name="sam-graphqlapi-auth-additional"></a>
Daftar jenis otorisasi tambahan untuk GraphQL API Anda.  
*Jenis*: Daftar [AuthProvider](sam-property-graphqlapi-auth-authprovider.md)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-lambdaauthorizer"></a>
Tentukan konfigurasi otorisasi opsional untuk otorisasi fungsi Lambda Anda. Anda dapat mengkonfigurasi properti opsional ini ketika `Type` ditentukan sebagai`AWS_LAMBDA`.  
*Jenis*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)` properti `AWS::AppSync::GraphQLApi` sumber daya.

`OpenIDConnect`  <a name="sam-graphqlapi-auth-openidconnect"></a>
Tentukan konfigurasi otorisasi opsional untuk layanan yang OpenID Connect sesuai. Anda dapat mengkonfigurasi properti opsional ini ketika `Type` ditentukan sebagai`OPENID_CONNECT`.  
*Jenis*: [Buka IDConnect Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)` properti `AWS::AppSync::GraphQLApi` sumber daya.

`Type`  <a name="sam-graphqlapi-auth-type"></a>
Jenis otorisasi default antara aplikasi dan AWS AppSync GraphQL API Anda.  
Untuk daftar dan deskripsi nilai yang diizinkan, lihat [Otorisasi dan otentikasi di Panduan AWS AppSync](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html) *Pengembang*.  
Saat Anda menentukan Lambda authorizer (`AWS_LAMBDA`), AWS SAM buat kebijakan AWS Identity and Access Management (IAM) untuk menyediakan izin antara API GraphQL dan fungsi Lambda Anda.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-authenticationtype)` properti `AWS::AppSync::GraphQLApi` sumber daya.

`UserPool`  <a name="sam-graphqlapi-auth-userpool"></a>
Tentukan konfigurasi otorisasi opsional untuk menggunakan kumpulan pengguna Amazon Cognito. Anda dapat mengkonfigurasi properti opsional ini ketika `Type` ditentukan sebagai`AMAZON_COGNITO_USER_POOLS`.  
*Jenis*: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)` properti `AWS::AppSync::GraphQLApi` sumber daya.

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

### Konfigurasikan jenis otorisasi default dan tambahan
<a name="sam-property-graphqlapi-auth-examples-example1"></a>

Dalam contoh ini, kita mulai dengan mengonfigurasi otorisasi Lambda sebagai jenis otorisasi default untuk API kita. GraphQL

```
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
```

Selanjutnya, kami mengonfigurasi jenis otorisasi tambahan untuk GraphQL API kami dengan menambahkan yang berikut ke AWS SAM template kami:

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

Ini menghasilkan AWS SAM template berikut:

```
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>

Konfigurasi otorisasi opsional untuk jenis otorisasi GraphQL API tambahan Anda.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

### 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)
```

## Sifat-sifat
<a name="sam-property-graphqlapi-auth-authprovider-properties"></a>

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-authprovider-lambdaauthorizer"></a>
Tentukan konfigurasi otorisasi opsional untuk otorisasi AWS Lambda fungsi Anda. Anda dapat mengkonfigurasi properti opsional ini ketika `Type` ditentukan sebagai`AWS_LAMBDA`.  
*Jenis*: [ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)` properti `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` objek.

`OpenIDConnect`  <a name="sam-graphqlapi-auth-authprovider-openidconnect"></a>
Tentukan konfigurasi otorisasi opsional untuk layanan yang OpenID Connect sesuai. Anda dapat mengkonfigurasi properti opsional ini ketika `Type` ditentukan sebagai`OPENID_CONNECT`.  
*Jenis*: [Buka IDConnect Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)` properti `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` objek.

`Type`  <a name="sam-graphqlapi-auth-authprovider-type"></a>
Jenis otorisasi default antara aplikasi dan AWS AppSync GraphQL API Anda.  
Untuk daftar dan deskripsi nilai yang diizinkan, lihat [Otorisasi dan otentikasi di Panduan AWS AppSync](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html) *Pengembang*.  
Saat Anda menentukan Lambda authorizer (`AWS_LAMBDA`), AWS SAM buat kebijakan AWS Identity and Access Management (IAM) untuk menyediakan izin antara API GraphQL dan fungsi Lambda Anda.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype)` properti `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` objek.

`UserPool`  <a name="sam-graphqlapi-auth-authprovider-userpool"></a>
Tentukan konfigurasi otorisasi opsional untuk menggunakan kumpulan pengguna Amazon Cognito. Anda dapat mengkonfigurasi properti opsional ini ketika `Type` ditentukan sebagai`AMAZON_COGNITO_USER_POOLS`.  
*Jenis*: [ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)` properti `AWS::AppSync::GraphQLApi` `[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)` objek.

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

Konfigurasikan sumber data yang dapat disambungkan oleh penyelesai GraphQL API Anda. Anda dapat menggunakan AWS Serverless Application Model (AWS SAM) template untuk mengonfigurasi koneksi ke sumber data berikut:
+ Amazon DynamoDB
+ AWS Lambda

Untuk mempelajari lebih lanjut tentang sumber data, lihat [Melampirkan sumber data](https://docs.aws.amazon.com/appsync/latest/devguide/attaching-a-data-source.html) di *Panduan AWS AppSync Pengembang*.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

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

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

## Sifat-sifat
<a name="sam-property-graphqlapi-datasource-properties"></a>

`DynamoDb`  <a name="sam-graphqlapi-datasource-dynamodb"></a>
Konfigurasikan tabel DynamoDB sebagai sumber data untuk GraphQL resolver API Anda.  
*Jenis*: [DynamoDb](sam-property-graphqlapi-datasource-dynamodb.md)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`Lambda`  <a name="sam-graphqlapi-datasource-lambda"></a>
Konfigurasikan fungsi Lambda sebagai sumber data untuk resolver GraphQL API Anda.  
*Jenis*: [Lambda](sam-property-graphqlapi-datasource-lambda.md)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

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

Konfigurasikan tabel Amazon DynamoDB sebagai sumber data untuk GraphQL resolver API Anda.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

### 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
```

## Sifat-sifat
<a name="sam-property-graphqlapi-datasource-dynamodb-properties"></a>

`DeltaSync`  <a name="sam-graphqlapi-datasource-dynamodb-deltasync"></a>
Menjelaskan konfigurasi Delta Sync.  
*Jenis*: [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-deltasyncconfig)` properti `AWS::AppSync::DataSource DynamoDBConfig` objek.

`Description`  <a name="sam-graphqlapi-datasource-dynamodb-description"></a>
Deskripsi sumber data Anda.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description)` properti `AWS::AppSync::DataSource` sumber daya.

`LogicalId`  <a name="sam-graphqlapi-datasource-dynamodb-logicalid"></a>
Nama unik sumber data Anda.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` properti `AWS::AppSync::DataSource` sumber daya.

`Name`  <a name="sam-graphqlapi-datasource-dynamodb-name"></a>
Nama sumber data Anda. Tentukan properti ini untuk mengganti `LogicalId` nilainya.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` properti `AWS::AppSync::DataSource` sumber daya.

`Permissions`  <a name="sam-graphqlapi-datasource-dynamodb-permissions"></a>
Menyediakan izin ke sumber data Anda menggunakan[AWS SAM konektor](managing-permissions-connectors.md). Anda dapat memberikan salah satu nilai berikut dalam daftar:  
+ `Read`— Izinkan resolver Anda membaca sumber data Anda.
+ `Write`— Izinkan resolver Anda untuk menulis ke sumber data Anda.
AWS SAM menggunakan `AWS::Serverless::Connector` sumber daya yang diubah saat penerapan untuk memberikan izin Anda. Untuk mempelajari tentang sumber daya yang dihasilkan, lihat[CloudFormation sumber daya yang dihasilkan saat Anda menentukan AWS::Serverless::Connector](sam-specification-generated-resources-connector.md).  
Anda dapat menentukan `Permissions` atau `ServiceRoleArn`, tapi tidak keduanya. Jika tidak ada yang ditentukan, AWS SAM akan menghasilkan nilai default `Read` dan`Write`. Untuk mencabut akses ke sumber data Anda, hapus objek DynamoDB dari template Anda. AWS SAM 
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan. Ini mirip dengan `Permissions` properti sumber `AWS::Serverless::Connector` daya.

`Region`  <a name="sam-graphqlapi-datasource-dynamodb-region"></a>
Tabel Wilayah AWS DynamoDB Anda. Jika Anda tidak menentukannya, AWS SAM gunakan`[AWS::Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html#cfn-pseudo-param-region)`.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[AwsRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-awsregion)` properti `AWS::AppSync::DataSource DynamoDBConfig` objek.

`ServiceRoleArn`  <a name="sam-graphqlapi-datasource-dynamodb-servicerolearn"></a>
Peran layanan AWS Identity and Access Management (IAM) ARN untuk sumber data. Sistem mengasumsikan peran ini saat mengakses sumber data.  
Anda dapat menentukan `Permissions` atau `ServiceRoleArn`, tapi tidak keduanya.  
*Tipe*: String  
*Diperlukan*: Tidak. Jika tidak ditentukan, AWS SAM menerapkan nilai default untuk`Permissions`.  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ServiceRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn)` properti `AWS::AppSync::DataSource` sumber daya.

`TableArn`  <a name="sam-graphqlapi-datasource-dynamodb-tablearn"></a>
ARN untuk tabel DynamoDB.  
*Tipe*: String  
*Diperlukan*: Bersyarat. Jika Anda tidak menentukan`ServiceRoleArn`, `TableArn` diperlukan.  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`TableName`  <a name="sam-graphqlapi-datasource-dynamodb-tablename"></a>
Nama tabel.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[TableName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-tablename)` properti `AWS::AppSync::DataSource DynamoDBConfig` objek.

`UseCallerCredentials`  <a name="sam-graphqlapi-datasource-dynamodb-usecallercredentials"></a>
Setel `true` untuk menggunakan IAM dengan sumber data ini.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[UseCallerCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-usecallercredentials)` properti `AWS::AppSync::DataSource DynamoDBConfig` objek.

`Versioned`  <a name="sam-graphqlapi-datasource-dynamodb-versioned"></a>
Setel `true` untuk menggunakan [Deteksi Konflik, Resolusi Konflik, dan Sinkronisasi](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) dengan sumber data ini.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Versioned](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-versioned)` properti `AWS::AppSync::DataSource DynamoDBConfig` objek.

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

Konfigurasikan AWS Lambda fungsi sebagai sumber data untuk resolver GraphQL API Anda.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

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

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

## Sifat-sifat
<a name="sam-property-graphqlapi-datasource-lambda-properties"></a>

`Description`  <a name="sam-graphqlapi-datasource-lambda-description"></a>
Deskripsi sumber data Anda.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description)` properti `AWS::AppSync::DataSource` sumber daya.

`FunctionArn`  <a name="sam-graphqlapi-datasource-lambda-functionarn"></a>
ARN untuk fungsi Lambda.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[LambdaFunctionArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html#cfn-appsync-datasource-lambdaconfig-lambdafunctionarn)` properti `AWS::AppSync::DataSource LambdaConfig` objek.

`LogicalId`  <a name="sam-graphqlapi-datasource-lambda-logicalid"></a>
Nama unik sumber data Anda.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` properti `AWS::AppSync::DataSource` sumber daya.

`Name`  <a name="sam-graphqlapi-datasource-lambda-name"></a>
Nama sumber data Anda. Tentukan properti ini untuk mengganti `LogicalId` nilainya.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name)` properti `AWS::AppSync::DataSource` sumber daya.

`ServiceRoleArn`  <a name="sam-graphqlapi-datasource-lambda-servicerolearn"></a>
Peran layanan AWS Identity and Access Management (IAM) ARN untuk sumber data. Sistem mengasumsikan peran ini saat mengakses sumber data.  
Untuk mencabut akses ke sumber data Anda, hapus objek Lambda dari template Anda. AWS SAM 
*Tipe*: String  
*Diperlukan*: Tidak. Jika tidak ditentukan, AWS SAM akan memberikan `Write` izin menggunakan[AWS SAM konektor](managing-permissions-connectors.md).  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ServiceRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn)` properti `AWS::AppSync::DataSource` sumber daya.

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

Konfigurasikan fungsi GraphQL APIs untuk melakukan operasi tertentu.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

### 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)
```

## Sifat-sifat
<a name="sam-property-graphqlapi-function-properties"></a>

`CodeUri`  <a name="sam-graphqlapi-function-codeuri"></a>
Kode fungsi Amazon Simple Storage Service (Amazon S3) URI atau path ke folder lokal.  
Jika Anda menentukan jalur ke folder lokal, CloudFormation mengharuskan file tersebut diunggah terlebih dahulu ke Amazon S3 sebelum penerapan. Anda dapat menggunakan AWS SAMCLI untuk memfasilitasi proses ini. Untuk informasi selengkapnya, lihat [Cara AWS SAM mengunggah file lokal saat penerapan](deploy-upload-local-files.md).  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-codes3location)` properti `AWS::AppSync::FunctionConfiguration` sumber daya.

`DataSource`  <a name="sam-graphqlapi-function-datasource"></a>
Nama sumber data yang akan dilampirkan fungsi ini.  
+ Untuk mereferensikan sumber data dalam `AWS::Serverless::GraphQLApi` sumber daya, tentukan ID logisnya.
+ Untuk mereferensikan sumber data di luar `AWS::Serverless::GraphQLApi` sumber daya, berikan `Name` atributnya menggunakan fungsi `Fn::GetAtt` intrinsik. Misalnya, `!GetAtt MyLambdaDataSource.Name`.
+ Untuk mereferensikan sumber data dari tumpukan yang berbeda, gunakan`[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`.
Jika variasi `[NONE | None | none]` ditentukan, AWS SAM akan menghasilkan `None` nilai untuk `AWS::AppSync::DataSource` `[Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-type)` objek.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[DataSourceName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-datasourcename)` properti `AWS::AppSync::FunctionConfiguration` sumber daya.

`Description`  <a name="sam-graphqlapi-function-description"></a>
Deskripsi fungsi Anda.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-description)` properti `AWS::AppSync::FunctionConfiguration` sumber daya.

`Id`  <a name="sam-graphqlapi-function-id"></a>
ID Fungsi untuk fungsi yang terletak di luar `AWS::Serverless::GraphQLApi` sumber daya.  
+ Untuk mereferensikan fungsi dalam AWS SAM template yang sama, gunakan fungsi `Fn::GetAtt` intrinsik. Sebagai contoh, `Id: !GetAtt createPostItemFunc.FunctionId`.
+ Untuk mereferensikan fungsi dari tumpukan yang berbeda, gunakan`[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`.
Saat menggunakan`Id`, semua properti lainnya tidak diperbolehkan. AWS SAM akan secara otomatis melewati ID Fungsi dari fungsi yang direferensikan Anda.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`InlineCode`  <a name="sam-graphqlapi-function-inlinecode"></a>
Kode fungsi yang berisi fungsi permintaan dan respons.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-code)` properti `AWS::AppSync::FunctionConfiguration` sumber daya.

`LogicalId`  <a name="sam-graphqlapi-function-logicalid"></a>
Nama unik dari fungsi Anda.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name)` properti `AWS::AppSync::FunctionConfiguration` sumber daya.

`MaxBatchSize`  <a name="sam-graphqlapi-function-maxbatchsize"></a>
Jumlah maksimum input permintaan resolver yang akan dikirim ke satu AWS Lambda fungsi dalam operasi. `BatchInvoke`  
*Tipe*: Integer  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke [MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-maxbatchsize)properti `AWS::AppSync::FunctionConfiguration` sumber daya.

`Name`  <a name="sam-graphqlapi-function-name"></a>
Nama fungsi. Tentukan untuk mengganti `LogicalId` nilainya.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name)` properti `AWS::AppSync::FunctionConfiguration` sumber daya.

`Runtime`  <a name="sam-graphqlapi-function-runtime"></a>
Menjelaskan runtime yang digunakan oleh resolver atau fungsi AWS AppSync pipeline. AWS AppSync Menentukan nama dan versi runtime yang akan digunakan.  
*Jenis*: [Runtime](sam-property-graphqlapi-function-runtime.md)  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan. Ini mirip dengan `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-runtime)` properti sumber `AWS::AppSync::FunctionConfiguration` daya.

`Sync`  <a name="sam-graphqlapi-function-sync"></a>
Menjelaskan konfigurasi Sinkronisasi untuk suatu fungsi.  
Menentukan strategi Deteksi Konflik dan strategi Resolusi mana yang akan digunakan saat fungsi dipanggil.  
*Jenis*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-syncconfig)` properti `AWS::AppSync::FunctionConfiguration` sumber daya.

# Waktu Aktif
<a name="sam-property-graphqlapi-function-runtime"></a>

Runtime resolver atau fungsi pipeline Anda. Menentukan nama dan versi yang akan digunakan.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

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

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

## Sifat-sifat
<a name="sam-property-graphqlapi-function-runtime-properties"></a>

`Name`  <a name="sam-graphqlapi-function-runtime-name"></a>
Nama runtime yang akan digunakan. Saat ini, satu-satunya nilai yang diizinkan adalah`APPSYNC_JS`.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-appsyncruntime.html#cfn-appsync-functionconfiguration-appsyncruntime-name)` properti `AWS::AppSync::FunctionConfiguration AppSyncRuntime` objek.

`Version`  <a name="sam-graphqlapi-function-runtime-version"></a>
Versi runtime yang akan digunakan. Saat ini, satu-satunya versi yang diizinkan adalah`1.0.0`.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-appsyncruntime.html#cfn-appsync-functionconfiguration-appsyncruntime-runtimeversion)` properti `AWS::AppSync::FunctionConfiguration AppSyncRuntime` objek.

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

Konfigurasikan resolver untuk bidang API AndaGraphQL. AWS Serverless Application Model (AWS SAM) mendukung [JavaScript resolver pipa](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html).

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

### 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)
```

## Sifat-sifat
<a name="sam-property-graphqlapi-resolver-properties"></a>

`Caching`  <a name="sam-graphqlapi-resolver-caching"></a>
Konfigurasi caching untuk resolver yang telah caching diaktifkan.  
*Jenis*: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig)` properti `AWS::AppSync::Resolver` sumber daya.

`CodeUri`  <a name="sam-graphqlapi-resolver-codeuri"></a>
Kode fungsi resolver adalah Amazon Simple Storage Service (Amazon S3) URI atau path ke folder lokal.  
Jika Anda menentukan jalur ke folder lokal, CloudFormation mengharuskan file tersebut diunggah terlebih dahulu ke Amazon S3 sebelum penerapan. Anda dapat menggunakan AWS SAMCLI untuk memfasilitasi proses ini. Untuk informasi selengkapnya, lihat [Cara AWS SAM mengunggah file lokal saat penerapan](deploy-upload-local-files.md).  
Jika tidak `InlineCode` ada `CodeUri` atau disediakan, AWS SAM akan menghasilkan `InlineCode` yang mengalihkan permintaan ke fungsi pipeline pertama dan menerima respons dari fungsi pipeline terakhir.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-codes3location)` properti `AWS::AppSync::Resolver` sumber daya.

`FieldName`  <a name="sam-graphqlapi-resolver-fieldname"></a>
Nama resolver Anda. Tentukan properti ini untuk mengganti `LogicalId` nilainya.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[FieldName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname)` properti `AWS::AppSync::Resolver` sumber daya.

`InlineCode`  <a name="sam-graphqlapi-resolver-inlinecode"></a>
Kode resolver yang berisi fungsi permintaan dan respons.  
Jika tidak `InlineCode` ada `CodeUri` atau disediakan, AWS SAM akan menghasilkan `InlineCode` yang mengalihkan permintaan ke fungsi pipeline pertama dan menerima respons dari fungsi pipeline terakhir.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-code)` properti `AWS::AppSync::Resolver` sumber daya.

`LogicalId`  <a name="sam-graphqlapi-resolver-logicalid"></a>
Nama unik untuk resolver Anda. Dalam GraphQL skema, nama resolver Anda harus cocok dengan nama bidang yang digunakan. Gunakan nama bidang yang sama untuk`LogicalId`.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`MaxBatchSize`  <a name="sam-graphqlapi-resolver-maxbatchsize"></a>
Jumlah maksimum input permintaan resolver yang akan dikirim ke satu AWS Lambda fungsi dalam operasi. `BatchInvoke`  
*Tipe*: Integer  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-maxbatchsize)` properti `AWS::AppSync::Resolver` sumber daya.

`OperationType`  <a name="sam-graphqlapi-resolver-operationtype"></a>
Jenis GraphQL operasi yang terkait dengan resolver Anda. Sebagai contoh, `Query`, `Mutation`, atau `Subscription`. Anda dapat membuat sarang beberapa resolver `LogicalId` dalam satu. `OperationType`  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[TypeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename)` properti `AWS::AppSync::Resolver` sumber daya.

`Pipeline`  <a name="sam-graphqlapi-resolver-pipeline"></a>
Fungsi yang terkait dengan penyelesai alur. Tentukan fungsi dengan ID logis dalam daftar.  
*Tipe*: Daftar  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan. Ini mirip dengan `[PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig)` properti sumber `AWS::AppSync::Resolver` daya.

`Runtime`  <a name="sam-graphqlapi-resolver-runtime"></a>
Runtime resolver atau fungsi pipeline Anda. Menentukan nama dan versi yang akan digunakan.  
*Jenis*: [Runtime](sam-property-graphqlapi-resolver-runtime.md)  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan. Ini mirip dengan `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-runtime)` properti sumber `AWS::AppSync::Resolver` daya.

`Sync`  <a name="sam-graphqlapi-resolver-sync"></a>
Menjelaskan konfigurasi Sinkronisasi untuk penyelesai.  
Menentukan strategi Deteksi Konflik dan strategi Resolusi mana yang akan digunakan saat resolver dipanggil.  
*Jenis*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig)` properti `AWS::AppSync::Resolver` sumber daya.

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

### Gunakan kode fungsi resolver yang AWS SAM dihasilkan dan simpan bidang sebagai variabel
<a name="sam-property-graphqlapi-resolver-examples-example1"></a>

Berikut adalah GraphQL skema untuk contoh kita:

```
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
}
```

Berikut adalah cuplikan template kami 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
```

Dalam AWS SAM template kami, kami tidak menentukan `CodeUri` atau`InlineCode`. Saat penerapan, AWS SAM secara otomatis menghasilkan kode inline berikut untuk resolver kami:

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

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

Kode resolver default ini mengalihkan permintaan ke fungsi pipeline pertama dan menerima respons dari fungsi pipeline terakhir.

Dalam fungsi pipeline pertama kita, kita dapat menggunakan `args` bidang yang disediakan untuk mengurai objek permintaan dan membuat variabel kita. Kita kemudian dapat menggunakan variabel-variabel ini dalam fungsi kita. Berikut adalah contoh `preprocessPostItem` fungsi kami:

```
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;
}
```

# Waktu Aktif
<a name="sam-property-graphqlapi-resolver-runtime"></a>

Runtime resolver atau fungsi pipeline Anda. Menentukan nama dan versi yang akan digunakan.

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

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

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

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

## Sifat-sifat
<a name="sam-property-graphqlapi-resolver-runtime-properties"></a>

`Name`  <a name="sam-graphqlapi-resolver-runtime-name"></a>
Nama runtime yang akan digunakan. Saat ini, satu-satunya nilai yang diizinkan adalah`APPSYNC_JS`.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-name)` properti `AWS::AppSync::Resolver AppSyncRuntime` objek.

`Version`  <a name="sam-graphqlapi-resolver-runtime-version"></a>
Versi runtime yang akan digunakan. Saat ini, satu-satunya versi yang diizinkan adalah`1.0.0`.  
*Tipe*: String  
*Wajib*: Ya  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-runtimeversion)` properti `AWS::AppSync::Resolver AppSyncRuntime` objek.