Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

함수 버전 범위의 실행 시 해소

Workshop, Actions와 Automate는 함수 버전을 고정하거나 허용 범위를 지정할 수 있습니다. 범위는 실행 시 호환 버전을 선택하게 하지만, 배포 방식에 따라 실제로 선택하는 버전이 다릅니다.

범위와 우선순위

버전 범위는 여러 부등식을 모두 충족하는 버전의 집합입니다. 예를 들어 1.2.0은 >=1.0.0 <2.0.0을 충족합니다. 우선순위는 다음 순서입니다.

1.0.0-rc.1 < 1.0.0 < 1.0.1 < 1.1.0 < 2.0.0

범위 의미는 npm SemVer를 따릅니다. Workshop과 Actions가 제공하는 선택지는 Minor와 Patch 같은 호환 변경 범위이며 npm의 caret 범위에 대응합니다. 앱별 지원 조건도 따라야 합니다. 예를 들어 액션의 자동 업그레이드는 안정 버전과 권한 조건에 제한됩니다.

실제 버전 선택

서버리스에서는 범위를 충족하는 가장 높은 버전을 실행 시 선택합니다. 새 릴리스가 반영되기까지 몇 분이 걸릴 수 있으므로 게시 직후 모든 호출이 동시에 새 버전으로 전환된다고 가정하면 안 됩니다.

전용 배포 함수는 가장 높은 게시 버전 대신 현재 배포된 버전을 사용합니다. 그 버전이 범위를 충족하지 않으면 오류를 반환합니다. 범위를 지정했다고 배포하지 않은 다른 버전이 자동 실행되는 것은 아닙니다.

변경 위험과 대응

비호환 변경을 실수로 Minor나 Patch로 게시하면 자동 업그레이드한 앱이 실패하거나 예상과 다르게 동작할 수 있습니다. 게시자는 보호 브랜치의 안정 태그 제한과 코드 검토로 위험을 줄입니다.

문제가 발생하면 게시자에게 계약 복원을 요청하고 그동안 마지막 정상 버전으로 고정할 수 있습니다. 엄격한 가용성이 필요하면 고정 의존성을 사용하되, 전용 배포는 이전 버전이 더 이상 실행 중이지 않으면 고정해도 호출할 수 없다는 제한이 있습니다.

Marketplace 설치의 전용 배포 업그레이드에서는 소비자를 함께 갱신하거나 서버리스를 사용하는 조건을 확인해야 합니다. 함수 기반 액션의 버전 범위는 함수 편집자의 권한과 편집 대상 선언에도 영향을 줄 수 있으므로 액션의 자동 업그레이드 계약을 함께 검토합니다.