

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

# 환경 변수 사용
<a name="apps-environment-vars"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

**참고**  
이 주제의 권장 사항은 Chef 11.10 및 이전 버전에 적용됩니다. Chef 12 이상 릴리스에서 환경 변수를 가져오려면 앱 데이터 백을 사용해야 합니다. 자세한 정보는 [AWS OpsWorks 데이터 백 참조](https://docs.aws.amazon.com/opsworks/latest/userguide/data-bags.html) 및 [앱 데이터 백(aws\$1opsworks\$1app)](https://docs.aws.amazon.com/opsworks/latest/userguide/data-bag-json-app.html) 단원을 참조하세요.

[앱의 환경 변수를 지정](workingapps-creating.md#workingapps-creating-environment)하면 OpsWorks Stacks는 앱의 [`deploy` 속성](workingcookbook-json.md#workingcookbook-json-deploy)에 변수 정의를 추가합니다.

사용자 지정 계층은 레시피를 사용하여 표준 노드 구문으로 변수의 값을 검색하고 계층의 앱이 액세스할 수 있는 형식으로 저장할 수 있습니다.

인스턴스의 `deploy` 속성에서 환경 변수 값을 가져오는 사용자 지정 레시피를 구현해야 합니다. 그러면 레시피가 데이터를 애플리케이션이 액세스할 수 있는 형식(예: YAML 파일)으로 인스턴스에 저장할 수 있습니다. 앱의 환경 변수 정의는 앱의 `deploy`에서 `environment_variables` 속성에 저장됩니다. 다음 예제는 JSON을 사용하여 속성 구조를 표시함으로써 `simplephpapp` 앱의 이러한 속성의 위치를 보여줍니다.

```
{
  ...
  "ssh_users": {
  },
  "deploy": {
    "simplephpapp": {
      "application": "simplephpapp",
      "application_type": "php",
      "environment_variables": {
        "USER_ID": "168424",
        "USER_KEY": "somepassword"
      },
    ...
  }
}
```

레시피는 표준 노드 구문을 사용하여 변수 값을 가져올 수 있습니다. 다음 예제는 이전 JSON에서 `USER_ID` 값을 가져와 Chef 로그에 기록하는 방법을 보여줍니다.

```
Chef::Log.info("USER_ID: #{node[:deploy]['simplephpapp'][:environment_variables][:USER_ID]}")
```

스택 구성 및 배포 JSON에서 정보를 검색하여 인스턴스에 저장하는 방법에 대한 상세한 설명은 [애플리케이션으로 데이터 전달](apps-data.md) 단원을 참조하세요.