쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

에서 환경 변수 사용 AWS AppSync

포커스 모드
에서 환경 변수 사용 AWS AppSync - AWS AppSync GraphQL

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

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

환경 변수를 사용하여 코드를 업데이트하지 않고도 AWS AppSync 해석기 및 함수의 동작을 조정할 수 있습니다. 환경 변수는 API 구성과 함께 저장된 문자열 쌍으로, 해석기와 함수가 런타임 시 활용할 수 있습니다. 초기 설정 중에만 사용할 수 있지만 실행 중에 해석기와 함수에서 사용해야 하는 구성 데이터를 참조해야 하는 상황에서 특히 유용합니다. 환경 변수는 코드에 구성 데이터를 노출하므로 해당 값을 하드 코딩할 필요가 없습니다.

참고

데이터베이스 보안을 강화하려면 환경 변수 대신 Secrets Manager 또는 AWS Systems Manager Parameter Store를 사용하여 자격 증명 또는 민감한 정보를 저장하는 것이 좋습니다. 이 기능을 활용하려면 AWS AppSync HTTP 데이터 소스로 AWS 서비스 호출을 참조하세요.

환경 변수가 제대로 작동하려면 몇 가지 동작과 규칙을 따라야 합니다.

  • JavaScript 해석기 및 함수 및 VTL 템플릿은 모두 환경 변수를 지원합니다.

  • 환경 변수는 함수 간접 호출 전에 평가되지 않습니다.

  • 환경 변수는 문자열 값 지원합니다.

  • 환경 변수에 정의된 모든 값은 문자열 리터럴로 간주되며 확장되지 않습니다.

  • 변수 평가는 함수 코드에서 수행하는 것이 가장 좋습니다.

환경 변수 구성(콘솔)

변수를 생성하고 키-값 페어를 정의하여 AWS AppSync GraphQL API에 대한 환경 변수를 구성할 수 있습니다. 해석기와 함수는 환경 변수의 키 이름을 사용하여 런타임 시 값을 검색합니다. AWS AppSync 콘솔에서 환경 변수를 설정하려면:

  1. 에 로그인 AWS Management Console 하고 AppSync 콘솔을 엽니다.

  2. API 페이지에서 GraphQL API의 이름을 선택합니다.

  3. API 홈페이지의 탐색 창에서 설정 을 선택합니다.

  4. 환경 변수에서 환경 변수 추가를 선택합니다.

  5. Add environment variable(환경 변수 추가)을 선택합니다.

  6. 키와 값을 입력합니다.

  7. 필요한 경우 5단계와 6단계를 반복하여 키 값을 더 추가합니다. 키 값을 제거해야 할 경우 제거 옵션과 제거할 키(들)를 선택합니다.

  8. 제출을 선택합니다.

작은 정보

키와 값을 생성할 때 따라야 하는 몇 가지 규칙이 있습니다.

  • 키는 문자로 시작해야 합니다.

  • 키는 2자 이상이어야 합니다.

  • 키에는 문자, 숫자 및 밑줄(_)만 포함됩니다.

  • 값은 최대 512자일 수 있습니다.

  • GraphQL API에서 최대 50개의 키-값 쌍을 구성할 수 있습니다.

환경 변수 구성(API)

PutGraphqlApiEnvironmentVariables를 사용하여 API를 사용하여 환경 변수를 설정할 수 있습니다. 해당 CLI 명령은 put-graphql-api-environment-variables입니다.

GetGraphqlApiEnvironmentVariables를 사용하여 API를 사용하여 환경 변수를 검색할 수 있습니다. 해당 CLI 명령은 get-graphql-api-environment-variables입니다.

명령에는 API ID와 환경 변수 목록이 포함되어야 합니다.

aws appsync put-graphql-api-environment-variables \ --api-id "<api-id>" \ --environment-variables '{"key1":"value1","key2":"value2", …}'

다음 예제에서는 put-graphql-api-environment-variables 명령을 사용하는 ID가 abcdefghijklmnopqrstuvwxyz인 API의 두 환경 변수를 설정합니다.

aws appsync put-graphql-api-environment-variables \ --api-id "abcdefghijklmnopqrstuvwxyz" \ --environment-variables '{"USER_TABLE":"users_prod","DEBUG":"true"}'

put-graphql-api-environment-variables 명령을 사용하여 환경 변수를 적용하면 환경 변수의 구조 내용이 덮어써집니다. 즉, 기존 환경 변수가 사라집니다. 새 환경 변수를 추가할 때 기존 환경 변수를 유지하려면 요청에 새 환경 변수와 함께 모든 기존의 키-값 쌍을 포함합니다. 위의 예제에 따라 다음을 수행하여 "EMPTY":""를 추가할 수 있습니다.

aws appsync put-graphql-api-environment-variables \ --api-id "abcdefghijklmnopqrstuvwxyz" \ --environment-variables '{"USER_TABLE":"users_prod","DEBUG":"true", "EMPTY":""}'

현재 구성을 검색하려면 get-graphql-api-environment-variables 명령을 사용합니다.

aws appsync get-graphql-api-environment-variables --api-id "<api-id>"

위의 예제에 따라 다음 명령을 사용할 수 있습니다.

aws appsync get-graphql-api-environment-variables --api-id "abcdefghijklmnopqrstuvwxyz"

결과는 환경 변수 목록과 키 값을 보여줍니다.

{ "environmentVariables": { "USER_TABLE": "users_prod", "DEBUG": "true", "EMPTY": "" } }

환경 변수 구성(CFN)

아래 템플릿을 사용하여 환경 변수를 생성할 수 있습니다.

AWSTemplateFormatVersion: 2010-09-09 Resources: GraphQLApiWithEnvVariables: Type: "AWS::AppSync::GraphQLApi" Properties: Name: "MyApiWithEnvVars" AuthenticationType: "AWS_IAM" EnvironmentVariables: EnvKey1: "non-empty" EnvKey2: ""

환경 변수 및 병합된 API

소스 API에 정의된 환경 변수는 병합된 API에서도 사용할 수 있습니다. 병합된 API의 환경 변수는 읽기 전용이며 업데이트할 수 없습니다. 환경 변수 키는 병합에 성공하려면 모든 소스 API에서 고유해야 합니다. 중복 키는 항상 병합 실패를 초래합니다.

환경 변수 검색

함수 코드에서 환경 변수를 검색하려면 해석기 및 함수의 ctx.env 객체에서 값을 검색합니다. 다음은 이 문제의 몇 가지 실제 예입니다.

Publishing to Amazon SNS

이 예제에서는 HTTP 해석기가 Amazon SNS 주제에 메시지를 보냅니다. 주제의 ARN은 GraphQL API를 정의하는 스택과 주제가 배포된 후에만 알 수 있습니다.

/** * Sends a publish request to the SNS topic */ export function request(ctx) { const TOPIC_ARN = ctx.env.TOPIC_ARN; const { input: values } = ctx.args; // this custom function sends values to the SNS topic return publishToSNSRequest(TOPIC_ARN, values); }
Transactions with DynamoDB

이 예제에서는 API가 스테이징을 위해 배포되었거나 이미 프로덕션 상태인 경우 DynamoDB 테이블의 이름이 다릅니다. 해석기 코드는 변경할 필요가 없습니다. 환경 변수의 값은 API가 배포되는 위치에 따라 업데이트됩니다.

import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId } = ctx.args; return { operation: 'TransactWriteItems', transactItems: [ { table: ctx.env.POST_TABLE, operation: 'PutItem', key: util.dynamodb.toMapValues({ postId }), // rest of the configuration }, { table: ctx.env.AUTHOR_TABLE, operation: 'UpdateItem', key: util.dynamodb.toMapValues({ authorId }), // rest of the configuration }, ], }; }

이 예제에서는 HTTP 해석기가 Amazon SNS 주제에 메시지를 보냅니다. 주제의 ARN은 GraphQL API를 정의하는 스택과 주제가 배포된 후에만 알 수 있습니다.

/** * Sends a publish request to the SNS topic */ export function request(ctx) { const TOPIC_ARN = ctx.env.TOPIC_ARN; const { input: values } = ctx.args; // this custom function sends values to the SNS topic return publishToSNSRequest(TOPIC_ARN, values); }
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.