SDK for Kotlin 시작하기 - AWS SDK for Kotlin

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SDK for Kotlin 시작하기

는 각각에 대한 Kotlin APIs AWS SDK for Kotlin 제공합니다 AWS 서비스. SDK를 사용하여 Amazon S3, Amazon EC2, Amazon DynamoDB 등과 함께 작동하는 Kotlin 애플리케이션을 구축할 수 있습니다.

이 자습서에서는 Gradle을 사용하여에 대한 종속성을 정의하는 방법을 보여줍니다 AWS SDK for Kotlin. 그런 다음 DynamoDB 테이블에 데이터를 쓰는 코드를 생성합니다. IDE의 기능을 사용할 수 있지만이 자습서에 필요한 것은 터미널 창과 텍스트 편집기뿐입니다.

자습서를 완료하려면 이 단계를 따릅니다.

1단계: 튜토리얼 설정

이 자습서를 시작하기 전에 DynamoDB에 액세스할 수 있는 IAM Identity Center 권한 세트가 필요하며에 액세스하려면 IAM Identity Center Single Sign-On 설정으로 구성된 Kotlin 개발 환경이 필요합니다 AWS.

이 가이드기본 설정의에 있는 지침에 따라이 자습서의 기본 설정을 가져옵니다.

Kotlin SDK에 대한 Single Sign-On 액세스로 개발 환경을 구성하고 활성 AWS 액세스 포털 세션이 있으면 2단계를 진행합니다.

2단계: 프로젝트 생성

이 자습서를 위한 프로젝트를 생성하려면 먼저 Gradle을 사용하여 Kotlin 프로젝트의 기본 파일을 생성합니다. 그런 다음에 필요한 설정, 종속성 및 코드로 파일을 업데이트합니다 AWS SDK for Kotlin.

Gradle을 사용하여 새 프로젝트를 생성하려면

참고

이 자습서에서는 아래 3단계에서 5개의 프롬프트를 제공하는 gradle init 명령과 함께 Gradle 버전 8.11.1을 사용합니다. 다른 버전의 Gradle을 사용하는 경우 프롬프트는 사전 채워진 아티팩트 버전뿐만 아니라 및 도 다를 수 있습니다.

  1. 데스크톱 또는 홈 폴더와 같이 원하는 getstarted 위치에 라는 새 디렉터리를 생성합니다.

  2. 터미널 또는 명령 프롬프트 창을 열고 생성한 getstarted 디렉터리로 이동합니다.

  3. 다음 명령을 사용하여 새 Gradle 프로젝트와 기본 Kotlin 클래스를 생성합니다.

    gradle init --type kotlin-application --dsl kotlin
    • 대상에 대한 메시지가 표시되면 Enter (기본값은 )를 Java version누릅니다21.

    • 와 함께 메시지가 표시되면 Enter (이 자습서getstarted에서는 기본적으로 디렉터리 이름)을 Project name누릅니다.

    • 를 입력하라는 메시지가 표시되면 Enter (기본값은 )를 application structure누릅니다Single application project.

    • 와 함께 메시지가 표시되면 Enter (기본값은 )를 Select test framework누릅니다kotlin.test.

    • 와 함께 메시지가 표시되면 Enter (기본값은 )를 Generate build using new APIs and behavior누릅니다no.

및 Amazon S3에 AWS SDK for Kotlin 대한 종속성을 사용하여 프로젝트를 구성하려면

  • 이전 절차에서 생성한 getstarted 디렉터리에서 settings.gradle.kts 파일의 내용을 다음 콘텐츠로 바꾸고 X.Y.Z를 최신 버전의 SDK for Kotlin으로 바꿉니다. https://github.com/awslabs/aws-sdk-kotlin/releases/latest

    dependencyResolutionManagement { repositories { mavenCentral() } versionCatalogs { create("awssdk") { from("aws.sdk.kotlin:version-catalog:X.Y.Z") } } } plugins { // Apply the foojay-resolver plugin to allow automatic download of JDKs. id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } rootProject.name = "getstarted" include("app")
  • gradle 디렉터리 내부의 getstarted 디렉터리로 이동합니다. 라는 버전 카탈로그 파일의 내용을 다음 내용libs.versions.toml으로 바꿉니다.

    [versions] junit-jupiter-engine = "5.10.3" [libraries] junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit-jupiter-engine" } [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version = "2.1.0" }
  • app 디렉터리로 이동하여 build.gradle.kts 파일을 엽니다. 그 내용을 다음 코드로 교체하고 변경 내용을 저장합니다.

    plugins { alias(libs.plugins.kotlin.jvm) application } dependencies { implementation(awssdk.services.s3) // Add dependency on the AWS SDK for Kotlin's S3 client. testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation(libs.junit.jupiter.engine) testRuntimeOnly("org.junit.platform:junit-platform-launcher") } java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } application { mainClass = "org.example.AppKt" } tasks.named<Test>("test") { useJUnitPlatform() }

    dependencies 섹션에는의 Amazon S3 모듈에 대한 implementation 항목이 포함되어 있습니다 AWS SDK for Kotlin. Gradle 컴파일러는 java 섹션에서 Java 21을 사용하도록 구성되어 있습니다.

3단계: 코드 작성

프로젝트를 생성하고 구성한 후 다음 예제 코드를 App 사용하도록 프로젝트의 기본 클래스를 편집합니다.

  1. 프로젝트 폴더에서 디렉터리 로 app이동합니다src/main/kotlin/org/example. App.kt 파일을 엽니다.

  2. 콘텐츠를 다음 코드로 바꾸고 파일을 저장합니다.

    package org.example import aws.sdk.kotlin.services.s3.* import aws.sdk.kotlin.services.s3.model.BucketLocationConstraint import aws.smithy.kotlin.runtime.content.ByteStream import kotlinx.coroutines.runBlocking import java.util.UUID val REGION = "us-west-2" val BUCKET = "bucket-${UUID.randomUUID()}" val KEY = "key" fun main(): Unit = runBlocking { S3Client .fromEnvironment { region = REGION } .use { s3 -> setupTutorial(s3) println("Creating object $BUCKET/$KEY...") s3.putObject { bucket = BUCKET key = KEY body = ByteStream.fromString("Testing with the Kotlin SDK") } println("Object $BUCKET/$KEY created successfully!") cleanUp(s3) } } suspend fun setupTutorial(s3: S3Client) { println("Creating bucket $BUCKET...") s3.createBucket { bucket = BUCKET if (REGION != "us-east-1") { // Do not set location constraint for us-east-1. createBucketConfiguration { locationConstraint = BucketLocationConstraint.fromValue(REGION) } } } println("Bucket $BUCKET created successfully!") } suspend fun cleanUp(s3: S3Client) { println("Deleting object $BUCKET/$KEY...") s3.deleteObject { bucket = BUCKET key = KEY } println("Object $BUCKET/$KEY deleted successfully!") println("Deleting bucket $BUCKET...") s3.deleteBucket { bucket = BUCKET } println("Bucket $BUCKET deleted successfully!") }

4단계: 애플리케이션 빌드 및 실행

프로젝트가 생성되고 예제 클래스가 포함된 후 애플리케이션을 빌드하고 실행합니다.

  1. 터미널 또는 명령 프롬프트 창을 열고 프로젝트 디렉토리 getstarted로 이동합니다.

  2. 다음 명령을 사용하여 애플리케이션을 빌드하고 실행합니다.

    gradle run
참고

를 받으면 활성 Single Sign-On 세션이 없을 IdentityProviderException수 있습니다. aws sso login AWS CLI 명령을 실행하여 새 세션을 시작합니다.

애플리케이션은 createBucket API 작업을 호출하여 새 S3 버킷을 생성한 다음 putObject를 호출하여 새 S3 버킷에 새 객체를 넣습니다.

끝에 있는 cleanUp() 함수에서 애플리케이션은 객체를 삭제한 다음 S3 버킷을 삭제합니다.

Amazon S3 콘솔에서 결과를 보려면

  1. 에서 runBlocking 섹션의 줄cleanUp(s3)App.kt주석을 추가하고 파일을 저장합니다.

  2. 를 실행하여 프로젝트를 다시 빌드하고 새 객체를 새 S3 버킷에 넣습니다gradle run.

  3. Amazon S3 콘솔에 로그인하여 새 S3 버킷에서 새 객체를 봅니다.

객체를 확인한 후 S3 버킷을 삭제합니다.

Success

Gradle 프로젝트가 오류 없이 빌드되고 실행되면가 축하합니다. 를 사용하여 첫 번째 Kotlin 애플리케이션을 성공적으로 빌드했습니다 AWS SDK for Kotlin.

정리

새 애플리케이션 개발을 마치면 요금이 발생하지 않도록이 자습서 중에 생성한 모든 AWS 리소스를 삭제합니다. 2단계에서 생성한 프로젝트 폴더(get-started)를 삭제하거나 아카이브할 수도 있습니다.

다음 단계에 따라 리소스를 정리합니다.

  • cleanUp() 함수에 대한 호출을 주석 처리한 경우 Amazon S3 콘솔을 사용하여 S3 버킷을 삭제합니다. Amazon S3

다음 단계

이제 기본 사항을 갖추었으므로, 다음 내용을 배울 수 있습니다.