

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Anfragen stellen
<a name="making-requests"></a>

Verwenden Sie einen Service-Client, um Anfragen an einen zu stellen AWS-Service. Der AWS SDK für Kotlin stellt domänenspezifische Sprachen (DSLs) zur Verfügung, die einem [typsicheren Builder-Muster](https://kotlinlang.org/docs/type-safe-builders.html) folgen, um Anfragen zu erstellen. Auf verschachtelte Strukturen von Anfragen kann auch über sie zugegriffen werden. DSLs

Das folgende Beispiel zeigt, wie Sie eine Amazon DynamoDB [CreateTable-Operationseingabe erstellen](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/dynamodb/aws.sdk.kotlin.services.dynamodb/create-table.html):

```
val ddb = DynamoDbClient.fromEnvironment()

val req = CreateTableRequest {
    tableName = name
    keySchema = listOf(
        KeySchemaElement {
            attributeName = "year"
            keyType = KeyType.Hash
        },
        KeySchemaElement {
            attributeName = "title"
            keyType = KeyType.Range
        }
    )

    attributeDefinitions = listOf(
        AttributeDefinition {
            attributeName = "year"
            attributeType = ScalarAttributeType.N
        },
        AttributeDefinition {
            attributeName = "title"
            attributeType = ScalarAttributeType.S
        }
    )
    
    // You can configure the `provisionedThroughput` member
    // by using the `ProvisionedThroughput.Builder` directly:
    provisionedThroughput {
        readCapacityUnits = 10
        writeCapacityUnits = 10
    }
}

val resp = ddb.createTable(req)
```

## DSL-Überladungen der Serviceschnittstelle
<a name="service-interface-dsl-overloads"></a>

Jeder Nicht-Streaming-Vorgang auf der Service-Client-Schnittstelle weist eine DSL-Überlastung auf, sodass Sie keine separate Anforderung erstellen müssen.

Beispiel für die Erstellung eines Amazon Simple Storage Service (Amazon S3) -Buckets mit der überladenen Funktion:

```
s3Client.createBucket {    // this: CreateBucketRequest.Builder
    bucket = newBucketName
}
```

Dies entspricht:

```
val request = CreateBucketRequest {    // this: CreateBucketRequest.Builder 
    bucket = newBucketName 
}

s3client.createBucket(request)
```

## Anfragen ohne erforderliche Eingaben
<a name="requests-no-required-inputs"></a>

Operationen, für die keine erforderlichen Eingaben erforderlich sind, können aufgerufen werden, ohne dass ein Anforderungsobjekt übergeben werden muss. Dies ist häufig bei Operationen vom Typ Liste möglich, z. B. bei der Amazon `listBuckets` S3-API-Operation.

 Die folgenden drei Anweisungen sind beispielsweise gleichwertig: 

```
s3Client.listBuckets(ListBucketsRequest {
  // Construct the request object directly.
})
s3Client.listBuckets {
  // DSL builder without explicitly setting any arguments.
}
s3Client.listBuckets()
```