AWS SAMCLI구성 파일 - AWS Serverless Application Model

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

AWS SAMCLI구성 파일

AWS Serverless Application Model명령줄 인터페이스(AWS SAMCLI)는 AWS SAM CLI 명령 파라미터 값을 구성하는 데 사용할 수 있는 프로젝트 수준 구성 파일을 지원합니다.

구성 파일 작성 및 사용에 대한 설명서는 AWS SAM CLI 구성 섹션을 참조하세요.

기본 구성 파일 설정

AWS SAM은 다음과 같은 기본 구성 파일 설정을 사용합니다.

  • 이름samconfig.

  • 위치 - 프로젝트의 루트에 있습니다. 이 위치는 귀하의 template.yaml 파일과 같은 위치입니다.

  • 포맷 - TOML. 자세한 내용은 TOML설명서TOML를 참조하세요.

다음은 기본 구성 파일 이름 및 위치가 포함된 예제 프로젝트 구조입니다.

sam-app
├── README.md
├── __init__.py
├── events
├── hello_world
├── samconfig.toml
├── template.yaml
└── tests

다음은 samconfig.toml 파일의 예입니다.

...
version = 0.1

[default]
[default.global]
[default.global.parameters]
stack_name = "sam-app"

[default.build.parameters]
cached = true
parallel = true

[default.deploy.parameters]
capabilities = "CAPABILITY_IAM"
confirm_changeset = true
resolve_s3 = true

[default.sync.parameters]
watch = true

[default.local_start_api.parameters]
warm_containers = "EAGER"

[prod]
[prod.sync]
[prod.sync.parameters]
watch = false

지원되는 구성 파일 형식

TOML[YAML|YML] 형식이 지원됩니다. 다음 기본 명령문을 참조하세요.

TOML

version = 0.1 [environment] [environment.command] [environment.command.parameters] option = parameter value

YAML

version: 0.1 environment: command: parameters: option: parameter value

구성 파일을 지정합니다.

기본적으로 AWS SAM CLI는 다음과 같은 순서로 구성 파일을 찾습니다.

  1. 사용자 지정 구성 파일 - --config-file 옵션을 사용하여 파일 이름과 위치를 지정하는 경우, AWS SAM CLI는 이 파일을 먼저 찾습니다.

  2. 기본 samconfig.toml 파일 - 이는 귀하의 프로젝트의 루트에 있는 기본 구성 파일 이름 및 형식입니다. 사용자 지정 구성 파일을 지정하지 않는 경우 AWS SAM CLI는 다음으로 이 파일을 찾습니다.

  3. samconfig.[yaml|yml]파일 – 귀하의 프로젝트 루트에 samconfig.toml이 없는 경우, AWS SAM CLI는 이 파일을 찾습니다.

다음은 --config-file 옵션을 사용하여 사용자 지정 구성 파일을 지정하는 예시입니다.

$ sam deploy --config-file myconfig.yaml

구성 파일 기본 사항

환경

환경은 고유한 구성 설정 세트를 포함하는 명명된 식별자입니다. 단일 AWS SAM 애플리케이션에 여러 환경을 포함할 수 있습니다.

환경 이름 기본은 default입니다.

AWS SAMCLI--config-env 옵션을 사용하여 사용할 환경을 지정합니다.

Command

명령은 파라미터 값을 지정하는 AWS SAM CLI 명령입니다.

모든 명령의 파라미터 값을 지정하려면 global 식별자를 사용합니다.

AWS SAMCLI명령을 참조할 때는 공백( )과 하이픈()을 밑줄(_)로 바꿉니다. 다음 예를 참조하세요.

  • build

  • local_invoke

  • local_start_api

파라미터

파라미터는 키-값 페어로 지정됩니다.

  • 는 AWS SAM CLI명령 옵션 이름입니다.

  • 은 지정할 값입니다.

키를 지정할 때는 긴 형식의 명령 옵션 이름을 사용하고 하이픈()을 밑줄(_)로 바꿉니다. 예를 들어, 다음과 같습니다.

  • region

  • stack_name

  • template_file

파라미터 값 규칙

TOML

  • 부울 값은 true 또는 false일 수 있습니다. 예를 들어 confirm_changeset = true입니다.

  • 문자열 값에는 따옴표("")를 사용합니다. 예를 들어 region = "us-west-2"입니다.

  • 목록 값에는 따옴표("")를 사용하고 공백( )을 사용하여 각 값을 구분합니다. 예를 들면 capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"입니다.

  • 키-값 쌍의 목록이 포함된 값의 경우 쌍은 공백으로 구분되고( ) 각 쌍의 값은 인코딩된 따옴표(\" \") 로 묶습니다. 예를 들어 tags = "project=\"my-application\" stage=\"production\""입니다.

  • 여러 번 지정할 수 있는 파라미터 값의 경우, 값은 인수의 배열입니다. 예를 들면 image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]입니다.

YAML

  • 부울 값은 true 또는 false일 수 있습니다. 예를 들어 confirm_changeset: true입니다.

  • 단일 문자열 값을 포함하는 항목의 경우 따옴표("")는 선택 사항입니다. 예를 들어 region: us-west-2입니다. 여기에는 단일 문자열로 제공되는 여러 키-값 쌍을 포함하는 항목이 포함됩니다. 다음은 그 예제입니다.

    $ sam deploy --tags "foo=bar hello=world"
    default: deploy: parameters: tags: foo=bar hello=world
  • 값 목록이 포함된 항목 또는 단일 명령으로 여러 번 사용할 수 있는 항목의 경우 해당 항목을 문자열 목록으로 지정합니다.

    다음은 그 예제입니다.

    $ sam remote invoke --parameter "InvocationType=Event" --parameter "LogType=None"
    default: remote_invoke: parameter: - InvocationType=Event - LogType=None

구성 우선 순위

값을 구성할 때는 다음과 같은 우선 순위가 적용됩니다.

  • 명령줄에서 제공하는 파라미터 값은 템플릿 파일의 구성 파일 및 Parameters 섹션에 있는 해당 값보다 우선합니다.

  • 명령줄이나 구성 파일에서 parameter_overrides 키와 함께 --parameter-overrides 옵션을 사용하는 경우 해당 값이 템플릿 파일 Parameters 섹션의 값보다 우선합니다.

  • 구성 파일에서 특정 명령에 대해 제공된 항목이 글로벌 항목보다 우선합니다. 다음 예제에서 sam deploy 명령은 my-app-stack 스택 이름을 사용합니다.

    TOML
    [default.global.parameters]
    stack_name = "common-stack"
    
    [default.deploy.parameters]
    stack_name = "my-app-stack"
    YAML
    default: global: parameters: stack_name: common-stack deploy: parameters: stack_name: my-app-stack

구성 파일 생성 및 수정

구성 파일 생성

sam init를 사용하여 애플리케이션을 만들면 기본으로 samconfig.toml 파일이 생성됩니다. 구성 파일을 수동으로 생성할 수도 있습니다.

구성 파일 수정

구성 파일을 수동으로 수정할 수 있습니다. 또한 모든 AWS SAM CLI 대화형 흐름 중에 구성된 값은 대괄호([ ]) 안에 표시됩니다. 이 값을 수정하면 AWS SAM CLI는 구성 파일을 업데이트합니다.

다음은 sam deploy --guided 명령을 사용하는 대화형 흐름의 예입니다.

$ sam deploy --guided Configuring SAM deploy ====================== Looking for config file [samconfig.toml] : Found Reading default arguments : Success Setting default arguments for 'sam deploy' ========================================= Stack Name [sam-app]: ENTER AWS Region [us-west-2]: ENTER #Shows you resources changes to be deployed and require a 'Y' to initiate deploy Confirm changes before deploy [Y/n]: n #SAM needs permission to be able to create roles to connect to the resources in your template Allow SAM CLI IAM role creation [Y/n]: ENTER #Preserves the state of previously provisioned resources when an operation fails Disable rollback [y/N]: ENTER HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y Save arguments to configuration file [Y/n]: ENTER SAM configuration file [samconfig.toml]: ENTER SAM configuration environment [default]: ENTER

구성 파일을 수정할 때 AWS SAM CLI는 다음과 같이 글로벌 값을 처리합니다.

  • 파라미터 값이 구성 파일 global 섹션에 있는 경우 AWS SAM CLI는 해당 값을 특정 명령 섹션에 기록하지 않습니다.

  • 파라미터 값이 특정 명령 global 섹션과 특정 명령 섹션 모두에 있는 경우 AWS SAM CLI는 특정 항목을 삭제하고 글로벌 값을 취합니다.