메인 콘텐츠로 건너뛰기
이 기능은 Pro 또는 Enterprise 요금제에서만 사용할 수 있습니다.
이 페이지에서는 웹훅 automation을 생성하는 방법을 설명합니다. Slack automation을 생성하려면 Create a Slack automation을 참고하세요. 웹훅 automation을 생성하는 전체적인 절차는 다음과 같습니다:
  1. 필요한 경우, 액세스 토큰, 비밀번호, SSH 키와 같이 automation에서 필요한 각 민감한 문자열마다 W&B secret를 생성합니다. Secret은 Team Settings에서 정의합니다.
  2. 엔드포인트와 인증 세부 정보를 정의하고 필요한 secret에 대한 접근 권한을 인테그레이션에 부여하기 위해 웹훅을 생성합니다.
  3. 감지할 event와 W&B가 전송할 페이로드를 정의하기 위해 automation을 생성합니다. 또한 페이로드에 필요한 secret에 대한 접근 권한을 automation에 부여합니다.

웹훅 생성

팀 관리자는 팀에 웹훅을 추가할 수 있습니다.
웹훅에 Bearer 토큰이 필요하거나 페이로드에 민감한 문자열이 필요한 경우, 웹훅을 생성하기 전에 해당 값을 포함하는 시크릿을 생성하십시오. 하나의 웹훅에는 액세스 토큰과 다른 시크릿을 각각 최대 하나씩만 설정할 수 있습니다. 웹훅의 인증 및 인가 요구 사항은 웹훅 서비스에 의해 결정됩니다.
  1. W&B에 로그인한 후 Team Settings 페이지로 이동합니다.
  2. Webhooks 섹션에서 New webhook을 클릭합니다.
  3. 웹훅 이름을 입력합니다.
  4. 웹훅의 엔드포인트 URL을 입력합니다.
  5. 웹훅에 Bearer 토큰이 필요한 경우, Access token을 해당 토큰을 포함하는 secret으로 설정합니다. 웹훅 자동화를 사용할 때 W&B는 Authorization: Bearer HTTP 헤더를 액세스 토큰으로 설정하며, ${ACCESS_TOKEN} 페이로드 변수에서 이 토큰에 접근할 수 있습니다. W&B가 웹훅 서비스로 보내는 POST 요청의 구조에 대해서는 웹훅 문제 해결을 참조하십시오.
  6. 웹훅이 페이로드에 비밀번호 또는 기타 민감한 문자열을 필요로 하는 경우, Secret을 해당 값을 포함하는 시크릿으로 설정합니다. 이 웹훅을 사용하는 자동화를 설정할 때, 시크릿 이름 앞에 $를 붙여 페이로드 변수로 시크릿에 접근할 수 있습니다. 웹훅의 액세스 토큰이 시크릿에 저장된 경우, 다음 단계도 완료하여 해당 시크릿을 액세스 토큰으로 지정해야 합니다.
  7. W&B가 엔드포인트에 연결하고 인증할 수 있는지 확인하려면:
    1. 필요에 따라 테스트에 사용할 페이로드를 입력합니다. 페이로드 내에서 웹훅이 접근할 수 있는 시크릿을 참조하려면 시크릿 이름 앞에 $를 붙입니다. 이 페이로드는 테스트에만 사용되며 저장되지 않습니다. 자동화의 페이로드는 자동화를 생성할 때 구성합니다. POST 요청에서 시크릿과 액세스 토큰이 어디에 지정되는지 보려면 웹훅 문제 해결을 참조하십시오.
    2. Test를 클릭합니다. W&B는 설정한 자격 증명을 사용해 웹훅의 엔드포인트에 연결을 시도합니다. 페이로드를 입력한 경우, W&B가 해당 페이로드를 전송합니다.
    테스트가 성공하지 않으면 웹훅 설정을 확인한 후 다시 시도하십시오. 필요하다면 웹훅 문제 해결을 참조하십시오.
팀에 있는 두 개의 웹훅을 보여주는 스크린샷
이제 해당 웹훅을 사용하는 자동화를 생성할 수 있습니다.

자동화 생성

webhook을 구성한 후 Registry 또는 Project를 선택하고, webhook을 트리거하는 자동화를 만들기 위해 다음 단계를 따르세요.
Registry 관리자는 해당 registry에서 자동화를 생성할 수 있습니다. Registry 자동화는 앞으로 추가되는 컬렉션을 포함하여 해당 registry의 모든 컬렉션에 적용됩니다.
  1. W&B에 로그인합니다.
  2. 상세 정보를 보려는 registry의 이름을 클릭합니다.
  3. Registry 범위의 자동화를 생성하려면 Automations 탭을 클릭한 후 Create automation을 클릭합니다.
  4. 모니터링할 이벤트를 선택합니다. 나타나는 추가 필드를 모두 입력합니다. 예를 들어 An artifact alias is added를 선택한 경우 Alias regex를 지정해야 합니다. Next step을 클릭합니다.
  5. webhook을 소유한 팀을 선택합니다.
  6. Action typeWebhooks로 설정한 다음 사용할 webhook을 선택합니다.
  7. webhook에 대해 액세스 토큰을 구성한 경우 ${ACCESS_TOKEN} payload 변수에서 해당 토큰에 접근할 수 있습니다. webhook에 대해 secret을 구성한 경우 payload에서 이름 앞에 $를 붙여 secret에 접근할 수 있습니다. webhook의 요구 사항은 webhook이 연결된 서비스에 의해 결정됩니다.
  8. Next step을 클릭합니다.
  9. 자동화 이름을 지정합니다. 필요하다면 설명을 추가로 입력합니다. Create automation을 클릭합니다.

자동화 보기 및 관리

레지스트리의 Automations 탭에서 해당 레지스트리의 자동화를 관리합니다.
  • 자동화의 세부 정보를 보려면 이름을 클릭합니다.
  • 자동화를 편집하려면 ... 작업 메뉴를 클릭한 다음 Edit automation을 클릭합니다.
  • 자동화를 삭제하려면 ... 작업 메뉴를 클릭한 다음 Delete automation을 클릭합니다. 삭제를 확인해야 합니다.

페이로드 참조

아래 섹션을 사용해 웹훅의 페이로드를 구성하세요. 웹훅과 해당 페이로드를 테스트하는 방법에 대한 자세한 내용은 웹후크 문제 해결을 참조하세요.

페이로드 변수

이 섹션에서는 webhook의 페이로드를 구성할 때 사용할 수 있는 변수를 설명합니다.
VariableDetails
${project_name}동작을 트리거한 변경 사항을 소유한 프로젝트의 이름입니다.
${entity_name}동작을 트리거한 변경 사항을 소유한 엔티티 또는 팀의 이름입니다.
${event_type}동작을 트리거한 이벤트의 유형입니다.
${event_author}동작을 트리거한 사용자입니다.
${alias}자동화가 An artifact alias is added 이벤트에 의해 트리거된 경우, 해당 아티팩트의 alias를 포함합니다. 다른 자동화의 경우 이 변수는 비어 있습니다.
${tag}자동화가 An artifact tag is added 이벤트에 의해 트리거된 경우, 해당 아티팩트의 태그를 포함합니다. 다른 자동화의 경우 이 변수는 비어 있습니다.
${artifact_collection_name}아티팩트 버전이 연결된 아티팩트 컬렉션의 이름입니다.
${artifact_metadata.<KEY>}동작을 트리거한 아티팩트 버전에서 임의의 최상위 메타데이터 키에 해당하는 값입니다. <KEY>를 최상위 메타데이터 키 이름으로 바꾸십시오. webhook의 페이로드에서는 최상위 메타데이터 키만 사용할 수 있습니다.
${artifact_version}동작을 트리거한 아티팩트 버전을 나타내는 Wandb.Artifact 표현입니다.
${artifact_version_string}동작을 트리거한 아티팩트 버전의 string 표현입니다.
${ACCESS_TOKEN}(액세스 토큰이 구성된 경우) webhook에 구성된 액세스 토큰의 값입니다. 액세스 토큰은 Authorization: Bearer HTTP 헤더로 자동 전달됩니다.
${SECRET_NAME}(구성된 경우) webhook에 설정된 시크릿의 값입니다. SECRET_NAME을 시크릿 이름으로 바꾸십시오.

페이로드 예제

이 섹션에는 몇 가지 일반적인 사용 사례에 대한 웹훅 페이로드 예제가 포함되어 있습니다. 아래 예제들은 payload variables를 사용하는 방법을 보여줍니다.
GHA 워크플로를 트리거할 수 있도록 액세스 토큰에 필요한 권한이 부여되어 있는지 확인하세요. 자세한 내용은 GitHub 문서를 참조하세요.
W&B에서 repository dispatch를 전송하여 GitHub Action을 트리거하세요. 예를 들어, on 키에 대한 트리거로 repository dispatch를 사용하도록 설정된 GitHub workflow 파일이 있다고 가정해 봅시다:
on:
repository_dispatch:
  types: BUILD_AND_DEPLOY
저장소용 페이로드는 대략 다음과 같은 형태입니다.
{
  "event_type": "BUILD_AND_DEPLOY",
  "client_payload": 
  {
    "event_author": "${event_author}",
    "artifact_version": "${artifact_version}",
    "artifact_version_string": "${artifact_version_string}",
    "artifact_collection_name": "${artifact_collection_name}",
    "project_name": "${project_name}",
    "entity_name": "${entity_name}"
    }
}
webhook 페이로드의 event_type 키는 GitHub 워크플로우 YAML 파일의 types 필드와 일치해야 합니다.
렌더링되는 템플릿 문자열의 내용과 위치는 자동화가 어떤 이벤트 또는 모델 버전에 대해 구성되어 있는지에 따라 달라집니다. ${event_type}LINK_ARTIFACT 또는 ADD_ARTIFACT_ALIAS로 렌더링됩니다. 예시 매핑은 아래를 참고하세요:
${event_type} --> "LINK_ARTIFACT" or "ADD_ARTIFACT_ALIAS"
${event_author} --> "<wandb-user>"
${artifact_version} --> "wandb-artifact://_id/QXJ0aWZhY3Q6NTE3ODg5ODg3""
${artifact_version_string} --> "<entity>/model-registry/<registered_model_name>:<alias>"
${artifact_collection_name} --> "<registered_model_name>"
${project_name} --> "model-registry"
${entity_name} --> "<entity>"
템플릿 문자열을 사용해 W&B에서 GitHub Actions 및 기타 도구로 컨텍스트를 동적으로 전달할 수 있습니다. 해당 도구에서 Python 스크립트를 호출할 수 있다면, W&B API를 통해 등록된 모델 아티팩트를 사용할 수 있습니다.

웹후크 문제 해결하기

W&B App UI를 사용해 대화형으로, 또는 Bash 스크립트를 사용해 프로그래밍 방식으로 웹후크를 문제 해결할 수 있습니다. 새 웹후크를 생성할 때나 기존 웹후크를 수정할 때 웹후크를 점검할 수 있습니다. W&B에서 POST 요청에 사용하는 포맷에 대한 자세한 내용은 Bash script 탭을 참조하세요.
팀 관리자는 W&B App UI를 사용해 웹후크를 대화형으로 테스트할 수 있습니다.
  1. W&B Team Settings 페이지로 이동합니다.
  2. Webhooks 섹션으로 스크롤합니다.
  3. 웹후크 이름 옆의 가로 점 세 개(미트볼 아이콘)를 클릭합니다.
  4. Test를 선택합니다.
  5. 나타나는 UI 패널에서 표시된 필드에 POST 요청을 붙여넣습니다.
    웹후크 페이로드를 테스트하는 데모
  6. Test webhook을 클릭합니다. 그러면 W&B App UI 내에서 엔드포인트로부터의 응답을 W&B가 표시합니다.
    웹후크를 테스트하는 데모
데모를 보려면 Testing Webhooks in W&B 영상을 참고하세요.