메인 콘텐츠로 건너뛰기
이 기능을 사용하려면 Pro 또는 Enterprise 요금제가 필요합니다.
이 페이지에서는 웹훅 automation을 생성하는 방법을 설명합니다. Slack automation을 생성하려면 Create a Slack automation을 참고하세요. 웹훅 automation을 생성하기 위한 전체적인 순서는 다음과 같습니다:
  1. 필요하다면 automation에 필요한 액세스 토큰, 비밀번호, SSH 키와 같은 민감한 문자열마다 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} payload variable에서 이 토큰을 참조할 수 있습니다. W&B가 웹훅 서비스로 보내는 POST 요청의 구조에 대해서는 웹훅 문제 해결을 참조하세요.
  6. 웹훅의 페이로드에 비밀번호 또는 기타 민감한 문자열이 필요한 경우 Secret을 해당 값을 포함하는 시크릿으로 설정합니다. 웹훅을 사용하는 자동화를 구성할 때, 이름 앞에 $를 붙여 payload variable로 이 시크릿을 참조할 수 있습니다. 웹훅의 액세스 토큰이 시크릿에 저장된 경우, 다음 단계에서 해당 시크릿을 액세스 토큰으로도 지정해야 합니다.
  7. W&B가 엔드포인트에 연결하고 인증할 수 있는지 확인하려면:
    1. 선택적으로 테스트에 사용할 페이로드를 입력합니다. 페이로드에서 웹훅이 접근할 수 있는 시크릿을 참조하려면 이름 앞에 $를 붙입니다. 이 페이로드는 테스트에만 사용되며 저장되지 않습니다. 자동화의 페이로드는 자동화를 생성할 때 구성합니다. POST 요청에서 시크릿과 액세스 토큰이 어디에 지정되는지는 웹훅 문제 해결을 참조하세요.
    2. Test를 클릭합니다. W&B는 구성한 자격 증명을 사용하여 웹훅 엔드포인트에 연결을 시도합니다. 페이로드를 제공한 경우, W&B가 해당 페이로드를 전송합니다.
    테스트가 성공하지 않으면 웹훅 구성을 다시 확인한 후 재시도하세요. 필요하다면 웹훅 문제 해결을 참조하세요.
팀에 있는 두 개의 웹훅을 보여주는 스크린샷
이제 웹훅을 사용하는 자동화를 생성할 수 있습니다.

자동화 생성

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

자동화 보기 및 관리

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

페이로드 참조

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

페이로드 변수

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

페이로드 예제

이 섹션에는 몇 가지 일반적인 사용 사례에 대한 웹훅 페이로드 예제가 포함되어 있습니다. 예제에서는 페이로드 변수를 사용하는 방법을 보여줍니다.
액세스 토큰에 GitHub Actions 워크플로를 트리거하는 데 필요한 권한이 설정되어 있는지 확인하세요. 자세한 내용은 GitHub 문서를 참조하세요.
W&B에서 repository dispatch 이벤트를 전송하여 GitHub Actions를 트리거합니다. 예를 들어, on 키에 대한 트리거로 repository dispatch를 받도록 구성된 GitHub 워크플로 파일이 있다고 가정해 보겠습니다:
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 탭을 참조하세요.
팀 관리자(team admin)는 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를 참고하세요.