• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

나만의 흐름 만들기

템플릿이 요구 사항을 충족하지 못할 경우, 처음부터 맞춤형 도면우를 구축하세요. '나만의 빌더 만들기 '를 사용하여 액션 카탈로그 에서 액션을 드래그 앤 드롭하여 프로세스에 맞는 자동화를 만들 수 있습니다.

이 가이드를 사용하는 방법

이 가이드에서는 개념과 완전한 예를 사용하여 플레우스를 만드는 방법을 보여줍니다. 학습 경로를 선택하세요:

  • 핵심 개념부터 먼저 배우세요: 핵심 개념패턴을 읽고 기본 원리를 이해한 다음 적용해 보세요.
  • 다음 예시를 따라하세요: EC2 자동 크기 조정 기능을 단계별로 구축하는 예제 워크스루 로 이동
  • 참고 패턴: 자신만의 패턴을 만들 때 빠른 참조를 위해 패턴 섹션을 활용하세요.

왜 커스텀 플로우를 구축하나요?

자신만의 워크플로우를 구축해 보세요:

  • 템플릿이 지원하지 않는 고유한 비즈니스 로직을 구현합니다.
  • 표준 템플릿을 넘어 여러 시스템을 통합합니다 .
  • 조건 분기를 사용하여 복잡한 결정을 처리하세요
  • 승인 및 공지를 위한 팀의 프로세스를 일치시키세요.

핵심 개념

빌드하기 전에 다음 기본 사항을 이해하세요.

개념

목적

입력 및 비밀

사용자 인증 정보 및 설정에 대한 반응

행위

사전 구축된 통합(AWS, Slack, 데이터베이스, API)

데이터 흐름

단계 간 출력 전달

양수인

후속 단계에서 사용할 변수를 초기화하고 값을 할당합니다.

스위치

조건에 따라 다른 경로를 생성합니다.

루프

완료를 위한 프로세스 목록 또는 투표

범위

반복 횟수를 정의하는 데 필요한 루프 함수에 대해

기다리다

지정된 기간 동안 또는 조건이 충족될 때까지 플레우 실행을 일시 중지합니다.

멈추다

플로우 흐름 실행 종료

직접 해보면서 배우세요: 각 개념은 예시를 통해 자세히 설명됩니다. 실제 워크플로우에서 입력, 스위치, 루프 및 승인 게이트가 함께 작동하는 것을 볼 수 있습니다.

구문 예시

워크플로우를 구축할 때 다음 패턴을 활용하세요.

무늬

통사론

사용 시기

비밀을 되찾으세요

${{ :secrets:awsKeyId }}

시크릿 관리자에서 액세스 자격 증명을 가져옵니다.

참조 흐름 입력

${{ .inputs.region }}

플로우가 시작될 때 제공되는 설정을 사용하세요.

이전 단계 출력값을 사용합니다.

${{ .steps.getAlert.outputs.entityGuid }}

흐름 흐름 단계 간 데이터 전달

카탈로그에서 드래그하여 액션을 선택하세요.

aws.ec2.stopInstances (를) 워크플로우 캔버스로 드래그하세요.

워크플로우에 사전 구축된 통합 추가

변수 생성

type: assign -와 함께 inputs:

계산된 값 또는 중간 값을 저장합니다.

상태 확인

condition: "${{ ... }}" 스위치 내부

CPU > 90%70-90% 대 경로 < 70%

항목들을 반복합니다

type: loop forin 사용하여 컬렉션을 순회합니다.

완료를 위한 프로세스 목록 또는 투표

반복 횟수를 정의합니다.

range(1, 6) 5번 반복

루프 함수에 대한 필수 형식, 방법

실행 일시 중지

type: wait seconds: 60 사용하면 60초 지연됩니다.

지정된 기간 동안 워크플로우를 일시 중지합니다.

끝의 흐름

플로우 흐름 실행 종료

유효성 검사 실패 또는 취소 후 플레우 종료

자세한 오류 처리 패턴은 모범 사례를 참조하세요.

중요

데이터 삭제를 포함한 보안 및 개인정보 보호 관련 모범 사례와 제한 사항은 보안 모범 사례를 참조하십시오.

빠른 시작

5단계로 첫 번째 폴리스우를 만들어 보세요.

  1. one.newrelic.com > All Capabilities > Workflow Automation 로 이동하여 Create Your Own [나만의 자동화 만들기를]선택하세요.
  2. 매개변수, 자격 증명(비밀 관리자 에서: ${{ :secrets:keyName }}), 설정(지역, 제외) 및 런타임 데이터(계정 ID, 공지 ID)에 대해 정의합니다.
  3. 카탈로그 에서 액션을 드래그하여 ${{ .steps.stepName.outputs.field }} 구문으로 연결하여 데이터를 전달하세요.
  4. 조건부 분기를 위한 스위치, 목록 처리 또는 폴링을 위한 루프, 사람의 결정을 위한 승인 게이트를 삽입하세요.
  5. 각 섹션 실행 후 오류를 조기에 발견하기 위해 실행한 다음 시작하거나 예약하세요.

주요 흐름 패턴

대부분의 자동화 시나리오는 네 가지 핵심 패턴으로 처리할 수 있습니다. 각 패턴은 아래 예시 설명 에서 확인할 수 있습니다.

스위치를 사용한 조건 분기

다음과 같은 경우에 스위치를 사용하십시오: 데이터에 따라 결과가 다양함(임계값, 릴레이 확인, API 응답, 사용자 결정)

주요 구문:

- name: hasCompleted
type: switch
switch:
- condition: "${{ .steps.waitForCompletion.outputs.automationExecutionStatus == 'Failed' }}"
next: displayError
- condition: "${{ .steps.waitForCompletion.outputs.automationExecutionStatus == 'Success' }}"
next: displaySuccess
next: displayUnexpected # Default path when no condition matches

예시: 팀 응답 처리, 검증 및 정리

목록 처리를 위한 루프

여러 항목을 처리하거나 작업을 반복할 때 루프를 사용합니다.

반복문의 구조, 매개변수, 변수 및 고급 사용법(break/continue 포함)에 대한 자세한 내용은 반복문의 구조를 참조하십시오.

주요 구문:

# Send progress updates using range loop
- name: progressLoop
type: loop
for:
in: "${{ [range(1; 5)] }}" # Loop 5 times
steps:
- name: wait
type: wait
seconds: 10
- name: progressMessage
type: action
action: slack.chat.postMessage
version: 1
inputs:
channel: "${{ .workflowInputs.channel }}"
text: "Resizing in progress..."

예시: 크기 조정을 실행합니다

승인 게이트 및 대기

파괴적인 작업을 수행하기 전에 사람의 판단이 필요하거나 규정 준수 승인이 필요한 경우 승인 게이트를 사용하십시오.

주요 구문:

- name: requestApproval
type: action
action: slack.chat.postMessage
version: 1
inputs:
channel: "#approvals"
text: "Approve? React with :thumbsup: or :thumbsdown:"
- name: getReactions
type: action
action: slack.chat.getReactions
version: 1
inputs:
token: "${{ .workflowInputs.slackToken }}"
channelID: "${{ .steps.requestApproval.outputs.channelID }}"
threadTs: "${{ .steps.requestApproval.outputs.threadTs }}"
timeout: 300 # Wait 5 minutes for reaction
- name: checkApproval
type: switch
switch:
- condition: '${{ .steps.getReactions.outputs.reactions | any(.name == "+1") }}'
next: handleApproval
- condition: '${{ .steps.getReactions.outputs.reactions | any(.name == "-1") }}'
next: handleRejection

간단한 지연의 경우:

- name: waitBeforeRetry
type: wait
seconds: 60 # Wait 60 seconds before continuing

예시: 팀 승인 요청

단계 간 데이터 전달

데이터 전달을 사용하는 경우: 한 단계의 출력이 다른 단계의 입력이 되는 경우(모든 스텔라우의 기초)

주요 구문:

# Reference previous step outputs
awsRegion: "${{ .inputs.region }}"
instanceId: "${{ .steps.getAlert.outputs.data.entity.instanceId }}"

예시: 모든 흐름 흐름 단계

할당을 사용한 변수 할당

할당 단계 유형을 사용하면 후속 단계에서 사용할 수 있는 변수를 초기화하고 값을 할당할 수 있습니다. 이 단계는 문자열, 정수, 부울, 맵(객체) 및 리스트를 포함한 여러 데이터 유형을 지원합니다.

기본 구조:

- name: <step_name>
type: assign
inputs:
<variable_name>: <value_or_expression>

예시:

- name: variableInitialization
type: assign
inputs:
stringVar: "${{ .workflowInputs.initialValue }}"
intVar: "${{ .workflowInputs.anotherValue }}"
concatenationVar: "${{ .workflowInputs.initialValue }} - concatenated"
booleanVar: true
mapVar:
key1: "value1"
key2: "${{ .workflowInputs.initialValue }}"
listVar:
- "listItem1"
- "${{ .workflowInputs.initialValue }}"
- "${{ .workflowInputs.anotherValue }}"
statusCode: ${{ .steps.runAction.outputs.statusCode }}

패턴 예시 전체를 원하시나요? 오류 처리, 재시도 및 복잡한 통합을 포함한 추가 패턴은 해당 예제를 참조하십시오.

예제 연습: 승인을 통해 EC2 크기 자동 조정

이 예제는 Slack을 통해 팀 승인을 받은 후 CPU 사용량이 급증할 때 EC2 인스턴스의 크기를 조정하는 도구를 구축합니다. 이 예제는 데이터 수집, 조건 논리, 외부 통합 및 오류 처리를 보여줍니다.

워크플로우를 처음 사용하시나요? 이 예제에서는 AWS, Slack 및 승인 논리를 사용합니다. 이제 막 시작했다면 먼저 Slack에 보고서 보내기 를 시도해 보세요.

흐름 흐름 개요

상위 수준 흐름:

  1. 데이터 수집: 뉴렐릭으로부터 공지 및 세부정보 가져오기
  2. 승인 요청: Slack 메시지 보내기, 팀 응답 대기
  3. 크기 조정 실행: AWS Systems Manager를 사용하여 EC2 인스턴스 크기 조정
  4. 확인 및 정리: 결과 확인, 팀에 알림, 임시 리소스 제거

전제 조건

이 폴리스우를 구축하기 전에 다음 사항이 있는지 확인하세요.

  • AWS: EC2 및 Systems Manager 권한이 있는 자격 증명
  • Slack: 공지를 위한 봇 및 채널
  • 뉴렐릭: 공지사항 검토 EC2 CPU
  • 비밀 관리자: 구성됨, 비밀 관리자를참조하세요.

단계별 워크플로우 구축

워크플로우의 각 부분을 구성해 보세요. 각 단계에는 구체적인 동작이 포함되어 있으며 순우 패턴을 보여줍니다.

공지 컨텍스트 수집

조치를 취하기 전에 전체적인 맥락을 파악하기 위해 API 및 데이터베이스에 쿼리를 실행하세요.

공지 및 EC2외 정보를 수집하는 세 가지 작업:

  • getAlertDetails: NerdGraph API 호출하여 공지사항 데이터(활성화 시간, 조건 이름, 영향을 받는 정보)를 가져옵니다.

  • activatedDateTime: 타임스탬프를 Slack 메시지에서 읽기 쉬운 형식(예: 01-24-2025 14:30)으로 변환합니다.

  • impactedEC2Instance: NRDB를 쿼리하여 EC2 인스턴스 ID와 현재 유형을 찾습니다.

    Workflow diagram showing three steps: getAlertDetails queries NerdGraph API, activatedDateTime converts timestamp, and impactedEC2Instance retrieves instance details from NRDB

    이것이 중요한 이유: 이러한 세부 정보가 없으면 의미 있는 Slack 메시지를 구성하거나 올바른 EC2 서버를 타겟팅할 수 없습니다.

팀 승인 요청

의사 결정 시점에 협업 도구와 연결하세요.

Slack에 세부 정보를 보내고 답변을 기다리세요.

  • IssueDetected: 게시물 공지 세부정보, 현재 제외 여부 및 제안된 크기 조정입니다. 팀원들에게 :+1: (승인) 또는 :-1: (취소)로 반응해달라고 요청합니다.

  • GetUserReaction: 반응을 기다리며 5분간 일시 정지합니다.

  • checkQuery (스위치): 반응 기반 경로:

    • :+1: → 크기 조정 시작
    • :-1: → 흐름 중지
    • 기타 → 유효한 반응을 위한 루프백
    Workflow diagram showing user approval process: IssueDetected posts Slack message, GetUserReaction waits for response, checkQuery evaluates reactions with three conditions for approval, cancellation, or unexpected responses

팀 대응 처리

데이터 값 또는 사용자 입력에 따라 다른 경로를 생성합니다.

반응에 따라 분기합니다:

  • unexpectedReaction: 유효한 반응을 설명하고 다시 기다리기 위해 루프백합니다.

  • gotCancelReaction: 취소를 확인하고 완료로 건너뜁니다. 인프라 변경 없음.

  • gotYesReaction: 승인을 확인하고 크기 조정을 진행합니다.

    승인 게이트 패턴: 위험한 변경 사항을 적용하기 전에 인간의 판단이 필요할 때 이와 같은 스위치를 사용하세요. 이 패턴은 Slack 반응, PagerDuty 확인, 이메일 응답 또는 사용자 정의 웹후크와 함께 작동합니다.

크기 조정을 실행하세요

고유 토큰을 사용하여 중복 작업을 방지하세요. 루프를 사용하여 실행 시간이 긴 작업을 확인하십시오.

AWS Systems Manager(SSM)를 통해 인스턴스 크기를 조정합니다.

  • createSsmDocument: 인스턴스를 중지하고 유형을 수정하고 다시 시작하는 SSM 자동화 문서를 생성합니다.

  • generateIdempotencyToken: 중복 크기 조정을 방지하기 위해 고유한 UUID를 생성합니다.

  • startResizing: 인스턴스 ID와 새 유형을 사용하여 SSM 문서를 실행합니다.

  • progressLoop (루프): 10초마다 Slack 업데이트를 게시합니다(5회).

  • waitForCompletion: 2분 제한 시간으로 SSM 상태를 폴링합니다.

    중요

    SSM을 선택해야 하는 이유는 무엇일까요? Systems Manager는 오류 처리, 상태 검증, CloudTrail 감사 로그를 제공합니다. 직접 EC2 API 호출보다 낫습니다.

확인 및 정리

결과에 관계없이 임시 리소스를 정리하십시오.

결과를 확인하고 임시 리소스를 제거하세요.

  • hasCompleted (스위치): SSM 상태(성공/실패/시간 초과)의 분기.
  • displaySuccess: 뉴렐릭에 대한 로그인 성공입니다.
  • sendSuccessMessage: Slack에서 완료를 확인합니다.
  • displayError: 문제 해결, 해결을 위한 오류 세부정보를 기록합니다.
  • displayUnexpected: 비정상적인 상태(수동 취소 등)를 기록합니다.
  • cleanupSsmDocument: 임시 SSM 문서를 삭제합니다.
  • sendSSMCleanMessage: Slack에서 정리를 확인합니다.
  • workflowCompleted: 최종 완료 메시지(성공 또는 취소 시 실행).

완전한 형식, 참조

이 워크플로우에는 자격 증명, 설정 및 런타임 컨텍스트가 입력으로 필요합니다. 민감한 값은 ${{ :secrets:keyName }} 구문을 사용하여 비밀 관리자 에서 가져옵니다.

입력 카테고리:

  • 인증: AWS 및 Slack 자격 증명
  • 공지 내용: 뉴렐릭의 계정 ID 및 문제 ID
  • 설정: 지역,상태, 시간대, Slack 채널

반응, 이름

유형

기본값

설명

awsAccessKeyId

문자열

${{ :secrets:awsAccessKeyId }}

AWS 서비스 인증에 사용되는 AWS 액세스 키 ID입니다.

awsSecretAccessKey

문자열

${{ :secrets:awsSecretAccessKey }}

AWS 비밀 액세스 키. 액세스 키 ID와 쌍을 이룹니다.

awsSessionToken

문자열

${{ :secrets:awsSessionToken }}

임시 AWS 자격 증명에 대한 세션 토큰(선택 사항, IAM 역할과 함께 사용).

slackToken

문자열

${{ :secrets:slackToken }}

Slack에서 메시지를 게시하고 반응을 읽는 데 사용되는 봇 토큰입니다.

accountId

Int

필수의

귀하의 뉴렐릭 계정 ID입니다. 공지 내용 및 부품 데이터를 조회하는데 사용됩니다.

issueId

문자열

필수의

이 룩플로우를 촉발시킨 뉴렐릭 공지의 이슈 ID입니다. 공지에서 워크플로우 실행 시 자동으로 제공됩니다.

awsRegion

문자열

us-east-2

EC2 인스턴스가 실행되는 AWS 지역(예: us-east-1, us-west-2, eu-west-1).

InstanceType

문자열

t4g.nano

크기 조정을 위한 목표 EC2 형태. 귀하의 성능 요구 사항과 예산에 따라 선택하세요.

timestampUnit

문자열

MILLISECONDS

공지 타임스탬프의 시간 단위입니다. 일반적으로 MILLISECONDS 또는 SECONDS 입니다.

timezoneId

문자열

America/Los_Angeles

Slack 메시지에서 공지 활성화 시간을 표시하는 시간대(예: America/New_York, Europe/London, Asia/Tokyo).

pattern

문자열

MM-dd-yyyy HH:mm

타임스탬프를 표시하기 위한 날짜/시간 형식 패턴입니다. 다음 SimpleDateFormat 패턴을 사용합니다.

channel

문자열

필수의

공지가 게시된 Slack 채널 ID(이름 아님)입니다. 자세한 내용은 Slack 채널 세부정보에서 확인하세요.

다음 단계

이 예제를 완료한 후 다음 자료들을 살펴보세요.

AWS 자격 증명 설정

EC2 및 기타 AWS 작업에 대한 IAM 역할을 구성합니다.

작업 카탈로그

사용 가능한 모든 조치를 살펴보세요

워크플로우 예제

HTTP API, Slack 연동 등의 예시를 참조하세요.

모범 사례

오류 처리, 재시도 로직 및 보안 패턴을 학습하세요.

워크플로우 엔티티 개요

알림에서 또는 일정에 따라 워크플로우를 수동으로 트리거하세요.

워크플로우 관리

편집, 복제, 모니터플로우 실행

문제점 해결

맞춤형 영우의 일반적인 문제 및 해결책

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.