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"
        }
    }
}

더 알아보기