HCP Packer 웹훅 참조
HCP Packer 웹훅 참조
이 주제는 웹훅 페이로드에서 보낼 수 있는 이벤트에 대한 참조 정보를 포함해요. HCP 웹훅 페이로드에는 레지스트리 수명주기 이벤트에 대한 중요한 정보로 HCP Packer가 채우는 필드 집합이 포함돼요. 추가 정보는 웹훅 생성 및 관리를 참고해 주세요.
모든 이벤트에 대해 HCP Packer는 다음 정보를 제공해요:
- Resource ID: HCP Packer 레지스트리의 ID
- Resource name: HCP Packer 레지스트리의 리소스 이름
- Event ID: 서비스가
<service>.event:<random string>형식으로 생성한 이벤트의 고유 식별자. 예:packer.event:t79BRg8WhTmDPBRM - Event action: 이벤트의 동작 유형. 예:
create - Event description: 이벤트 설명. 예:
Created version - Event source: 이벤트의 출처. 예:
hashicorp.packer.version - Event version: 전송되는 이벤트 페이로드의 버전
- Event payload: 이벤트에 대한 정보를 담은 페이로드. 특정 이벤트 페이로드 문서를 참고해 주세요.
추가 정보는 웹훅 생성 및 관리를 참고해 주세요.
출처: 문서
본문
버전 이벤트
HCP Packer는 다음 버전 이벤트에 대한 웹훅 페이로드를 보내요. 이벤트 설명은 해당 페이로드 참조로 연결돼요.
| Action | 설명 |
|---|---|
| create | Created version |
| complete | Completed version |
| revoke | Revoked version |
| restore | Restored version |
| delete | Deleted version |
| schedule-revocation | Scheduled version revocation |
| cancel-revocation | Cancelled version revocation |
| assign | Assigned version to channel |
공통 버전 이벤트 필드
모든 버전 수명주기 이벤트 페이로드에는 다음 필드가 포함돼요.
| 필드 | 타입 | 설명 |
|---|---|---|
organization_id |
string | HCP 조직 ID |
project_id |
string | HCP Packer 프로젝트 ID |
registry.id |
string | HCP Packer 레지스트리의 ID |
bucket.id |
string | 버킷의 ID |
bucket.name |
string | 버킷의 사용자 지정 이름 |
version.id |
string | 버전의 ID |
version.fingerprint |
string | 버전의 사용자 지정 식별자 |
version.name |
string | 모든 빌드가 성공하면 단계적으로 설정되는 버전의 사람이 읽을 수 있는 이름 |
version.revoke_at |
timestamp | 버전이 폐기되었거나 폐기 예정인 날짜와 시간 |
version.revocation_message |
string | 버전을 폐기하거나 폐기 예약할 때 사용자가 제공한 메시지 |
version.revocation_author |
string | 버전을 폐기하거나 폐기 예약한 액터 |
version.status |
string | 버전의 현재 상태. 가능한 값: RUNNING, CANCELLED, REVOKED, REVOCATION_SCHEDULED, ACTIVE |
actor.principal_id |
string | 액터의 ID |
actor.type |
string | 액터의 유형. "TYPE_UNSET", "TYPE_USER", "TYPE_SERVICE", "TYPE_INTERNAL_OPERATOR", "TYPE_ANONYMOUS"를 반환해요. |
actor.user.email |
string | actor가 "TYPE_USER"인 경우 존재하는 필드 |
actor.user.name |
string | actor가 "TYPE_USER"인 경우 존재하는 필드 |
actor.user.id |
string | actor가 "TYPE_USER"인 경우 존재하는 필드 |
actor.service.id |
string | actor가 "TYPE_SERVICE"인 경우 존재하는 필드 |
actor.service.name |
string | actor가 "TYPE_SERVICE"인 경우 존재하는 필드 |
actor.service.user_managed |
bool | actor가 "TYPE_SERVICE"인 경우 존재하는 필드 |
actor.internal_operator.id |
string | actor가 "TYPE_INTERNAL_OPERATOR"인 경우 존재하는 필드 |
builds |
array | 버전에서 빌드된 빌드 목록 |
builds.id |
string | 빌드의 ID |
builds.platform |
string | 빌드의 플랫폼. 예: aws 또는 azure |
builds.component_type |
string | 빌드에 사용된 빌더 또는 포스트 프로세서. 예: amazon-ebs.ubuntu |
builds.labels |
json | 빌드의 라벨 |
builds.artifacts |
array | 빌드가 만든 아티팩트 |
builds.artifacts.region |
string | 아티팩트의 리전. 예: eu-west-1 |
builds.artifacts.external_identifier |
string | 아티팩트의 외부 식별자. 예: ami-13245456 |
모든 이벤트에 공통된 필드를 가진 Completed version 이벤트의 예시 페이로드:
{
"resource_id": "01HAVMCV8XWW945TNKT2KPYSN1",
"resource_name": "packer/project/ff99bac7-eaec-40a1-8f55-5eb05e789401/registry/01HAVMCV8XWW945TNKT2KPYSN1",
"event_id": "packer.event:MtCpPwmkdPpD8qqfMRhJ",
"event_action": "complete",
"event_description": "Completed version",
"event_source": "hashicorp.packer.version",
"event_version": "1",
"event_payload": {
"actor": {
"principal_id": "ac7295a2-85ef-4594-b4c6-3a1f8b733f1a",
"type": "TYPE_USER",
"user": {
"email": "[email protected]",
"id": "d8f45791-460d-434e-8a40-f627e752276a",
"name": "User Name"
}
},
"bucket": {
"id": "01HAVMDEAXNF5RYDDSK5R39HDP",
"name": "test"
},
"version": {
"fingerprint": "01HAVMD1YBM4PA1KHNYFAYJREM",
"id": "01HAVMD63G58XDA8JKS2B8J871",
"revocation_author": "",
"revocation_message": "",
"revoke_at": "",
"status": "ACTIVE",
"name": "v1"
},
"builds":[
{
"platform":"aws",
"component_type":"amazon-ebs.ubuntu",
"id":"01H5APPBYYF4D0NMVZCRKR85E7",
"artifacts":[
{
"external_identifier":"ami-f2",
"region":"us-west-2"
}
],
"labels":{
"os":"ubuntu"
}
}
],
"organization_id": "6a171c1d-c7cd-4047-ba1a-92d686dde2ed",
"project_id": "ff99bac7-eaec-40a1-8f55-5eb05e789401",
"registry": {
"id": "01HAVMCV8XWW945TNKT2KPYSN1"
},
}
}
Created version(버전 생성)
| Action | Source | 설명 |
|---|---|---|
| create | hashicorp.packer.version | Created version |
HCP Packer는 버전이 생성되면 웹훅 페이로드를 전달해요. Created version의 웹훅 이벤트 페이로드는 builds를 제외하고 공통 필드를 포함해요. 버전 빌드는 버전이 생성된 후에 만들어지기 때문이에요.
Completed version(버전 완료)
| Action | Source | 설명 |
|---|---|---|
| complete | hashicorp.packer.version | Completed version |
HCP Packer는 버전이 완료되면 공통 필드를 가진 웹훅 페이로드를 전달해요.
Revoked version(버전 폐기)
| Action | Source | 설명 |
|---|---|---|
| revoke | hashicorp.packer.version | Revoked version |
HCP Packer는 버전이 폐기되면 웹훅 페이로드를 전달해요. 공통 필드 옆의 웹훅 이벤트 페이로드에 다음 필드를 사용할 수 있어요.
| 필드 | 타입 | 설명 |
|---|---|---|
skip_descendants_revocation |
bool | 폐기 요청이 버전 하위(descendants) 폐기를 건너뛸 때 이 필드는 true예요. |
Restored version(버전 복원)
| Action | Source | 설명 |
|---|---|---|
| restore | hashicorp.packer.version | Restored version |
HCP Packer는 폐기된 버전이 복원되면 공통 필드를 가진 웹훅 페이로드를 전달해요.
Deleted version(버전 삭제)
| Action | Source | 설명 |
|---|---|---|
| delete | hashicorp.packer.version | Deleted version |
HCP Packer는 폐기된 버전이 삭제되면 공통 필드를 가진 웹훅 페이로드를 전달해요.
Scheduled version revocation(버전 폐기 예약)
| Action | Source | 설명 |
|---|---|---|
| schedule-revocation | hashicorp.packer.version | Scheduled version revocation |
HCP Packer는 버전이 폐기 예약되면 웹훅 페이로드를 전달해요. 공통 필드 옆의 웹훅 이벤트 페이로드에 다음 필드를 사용할 수 있어요.
| 필드 | 타입 | 설명 |
|---|---|---|
skip_descendants_revocation |
bool | 폐기 예약 요청이 버전 하위에 대한 폐기 예약을 건너뛸 때 이 필드는 true예요. |
Cancelled version revocation(버전 폐기 취소)
| Action | Source | 설명 |
|---|---|---|
| cancel-revocation | hashicorp.packer.version | Cancelled version revocation |
HCP Packer는 예약된 버전 폐기가 취소되면 공통 필드를 가진 웹훅 페이로드를 전달해요.
Assigned version to channel(채널에 버전 할당)
| Action | Source | 설명 |
|---|---|---|
| assign | hashicorp.packer.version | Assigned version to channel |
HCP Packer는 버전이 채널에 할당되거나 할당 해제되면 웹훅 페이로드를 전달해요. 공통 필드 옆의 웹훅 이벤트 페이로드에 다음 필드를 사용할 수 있어요.
| 필드 | 타입 | 설명 |
|---|---|---|
previous_version |
string | 이전에 채널에 할당된 버전. 버전이 채널에 이전에 할당된 경우에만 존재해요. |
previous_version.id |
string | 버전의 ID |
previous_version.fingerprint |
string | 버전의 사용자 지정 빌드 식별자 |
previous_version.name |
string | 모든 빌드가 성공하면 단계적으로 설정되는 버전의 사람이 읽을 수 있는 이름 |
previous_builds |
array | 이전에 채널에 할당된 버전에서 빌드된 빌드 목록. 이전에 할당된 버전이 있는 경우에만 존재해요. |
previous_builds.id |
string | 빌드의 ID |
previous_builds.platform |
string | 빌드의 플랫폼. 예: aws 또는 azure |
previous_builds.component_type |
string | 빌드에 사용된 빌더 또는 포스트 프로세서. 예: amazon-ebs.ubuntu |
previous_builds.labels |
json | 빌드의 라벨 |
previous_builds.artifacts |
array | 빌드가 만든 아티팩트 |
previous_builds.artifacts.region |
string | 아티팩트의 리전. 예: eu-west-1 |
previous_builds.artifacts.external_identifier |
string | 아티팩트의 외부 식별자. 예: ami-13245456 |
channel.id |
string | 채널의 ID |
channel.name |
string | 채널의 사용자 읽기 가능 이름 |
channel.author_id |
string | 채널을 만든 액터의 ID |
channel.managed |
bool | 채널이 HCP Packer에 의해 관리되는지 여부. HCP Packer가 관리하는 채널은 latest 채널로도 식별돼요. |
channel.restricted |
bool | 채널이 제한되어 있는지 여부 |
Assigned version to channel 이벤트의 예시 페이로드:
{
"resource_id": "01HAVMCV8XWW945TNKT2KPYSN1",
"resource_name": "packer/project/ff99bac7-eaec-40a1-8f55-5eb05e789401/registry/01HAVMCV8XWW945TNKT2KPYSN1",
"event_id": "packer.event:fHcFpzWPwWMtmbpGBtLC",
"event_action": "assign",
"event_description": "Assigned version to channel",
"event_source": "hashicorp.packer.version",
"event_version": "1",
"event_payload": {
"actor": {
"principal_id": "ac7295a2-85ef-4594-b4c6-3a1f8b733f1a",
"type": "TYPE_USER",
"user": {
"email": "[email protected]",
"id": "d8f45791-460d-434e-8a40-f627e752276a",
"name": "User Name"
}
},
"bucket": {
"id": "01HAVMDEAXNF5RYDDSK5R39HDP",
"name": "test"
},
"channel": {
"author_id": "HCP Packer",
"id": "01HAVMHSBWQ3952KWR50YBHZA4",
"managed": true,
"restricted": true,
"name": "latest"
},
"version": {
"fingerprint": "01HAVMD1YBM4PA1KHNYFAYJREM",
"id": "01HAVMD63G58XDA8JKS2B8J871",
"name": "v2"
},
"builds":[
{
"platform":"aws",
"component_type":"amazon-ebs.ubuntu",
"id":"01HP1XWZ1EADV8VVKV6J4VHM6S",
"artifacts":[
{
"external_identifier":"ami-f3",
"region":"us-west-2"
}
],
"labels":{
"os":"ubuntu"
}
}
],
"organization_id": "6a171c1d-c7cd-4047-ba1a-92d686dde2ed",
"previous_version": {
"fingerprint": "01HAVMJG6R3KFAN7603RDZCGTC",
"id": "01HAVMJKRSPRPQ30JJEW3Q5084",
"name": "v1"
},
"previous_builds":[
{
"platform":"aws",
"component_type":"amazon-ebs.ubuntu",
"id":"01H5APPBYYF4D0NMVZCRKR85E7",
"artifacts":[
{
"external_identifier":"ami-f2",
"region":"us-west-2"
}
],
"labels":{
"os":"ubuntu"
}
}
],
"project_id": "ff99bac7-eaec-40a1-8f55-5eb05e789401",
"registry": {
"id": "01HAVMCV8XWW945TNKT2KPYSN1"
}
}
}