적용 대상: Azure Logic Apps(사용량 + 표준)
워크플로우에서 값을 저장하고 전달하려면 변수를 생성하세요. 변수는 정수, float, 불리언, 문자열, 배열, 객체 값을 지원합니다.
예를 들어, 변수는 루프가 실행되는 횟수 계산에 유용할 수 있습니다. 배열을 반복하거나 특정 항목을 확인하려면 각 배열 항목의 인덱스 번호를 참조하는 변수를 사용하세요.
변수를 생성한 후에는 다음 작업을 선택하세요:
필수 조건
Azure 계정 및 구독 무료 Azure 계정을 만듭니다.
변수를 생성하고자 하는 로직 앱 워크플로우, 그리고 워크플로우를 시작하는 트리거를 포함합니다.
변수를 만들고 다루는 작업을 추가하기 전에, 워크플로우의 첫 단계로 트리거를 시작 해야 합니다.
이 가이드는 Azure 포털을 사용하지만, Visual Studio Code와 해당 Azure Logic Apps 확장 기능을 사용해 로직 앱 워크플로우를 구축할 수 있습니다:
- 사용 워크플로: Visual Studio Code
- 표준 워크플로: Visual Studio Code
변수 작업 시 고려사항
기본적으로 각 루프마다 반복이 병렬로 실행됩니다. 루프 내 변수들이 예측 가능한 결과를 내도록 하려면 루프를 순차적으로 실행하세요.
변수는 존재하며, 그것을 생성하는 워크플로우 내에서만 전역적입니다.
변수는 해당 워크플로우 내에서만 루프 반복 동안 지속됩니다.
변수를 생성한 액션의 이름이 아니라 이름으로 변수를 참조하는데, 이는 액션의 출력을 참조하는 일반적인 방법입니다.
변수 초기화
변수를 생성하려면 Initialize 변수 액션을 워크플로우에 추가하세요. 변수는 워크플로우 전역 수준에서만 선언할 수 있으며, 범위, 조건, 루프에서는 선언할 수 없습니다.
Azure Portal에서 디자이너에서 논리 앱 워크플로를 엽니다.
디자이너에서 워크플로우 유형에 따라 일반적인 단계를 따라 Initialize 변수 라는 액션을 추가하세요:
변수에 대해 다음 정보를 제공합니다.
속성 필요함 값 설명 이름 예 < 변수 이름> 변수의 이름. 유형 예 < 변수 유형> 변수의 데이터 형식입니다. 값 없음 < 시작 값> 변수의 초기 값입니다.
팁: 선택 사항이지만 항상 변수의 시작 값을 알 수 있도록 값을 모범 사례로 설정합니다.한 번에 둘 이상의 변수를 만들려면 변수 추가를 선택합니다.
예를 들어, 이 Initialize 변수 동작은 변수의 이름, 데이터 타입, 초기 값을 포함합니다:
시나리오에 대해 원하는 작업을 계속 추가합니다. 완료되면 디자이너 도구 모음에서 저장을 선택합니다.
디자이너에서 코드 뷰로 전환하면, 다음 예시는 Initialize 변수 동작이 JavaScript 객체 표기법(JSON) 형식으로 워크플로우 정의에 어떻게 나타나는지 보여줍니다:
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [
{
"name": "Count",
"type": "Integer",
"value": 0
}
]
},
"runAfter": {}
}
}
다음 예에서는 다른 변수 형식을 보여 줍니다.
부울 변수
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [
{
"name": "myBooleanVariable",
"type": "boolean",
"value": false
}
]
},
"runAfter": {}
}
},
부동 변수
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [
{
"name": "myFloatVariable",
"type": "float",
"value": 1.99999
}
]
},
"runAfter": {}
}
},
문자열 변수
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [
{
"name": "myStringVariable",
"type": "string",
"value": "lorem ipsum"
}
]
},
"runAfter": {}
}
},
개체 변수
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [
{
"name": "MyObjectVariable",
"type": "object",
"value": {
"ProductItem": {
"Name": "myProductName",
"ProductID": "000000"
}
}
}
]
},
"runAfter": {}
}
},
정수가 있는 배열
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [
{
"name": "myArrayVariable",
"type": "array",
"value": [1, 2, 3]
}
]
},
"runAfter": {}
}
},
문자열이 있는 배열
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [
{
"name": "myArrayVariable",
"type": "array",
"value": ["red", "orange", "yellow"]
}
]
},
"runAfter": {}
}
},
변수 값 가져오기
변수의 내용을 검색하거나 참조하려면 워크플로우 디자이너와 코드 뷰 편집기의 해당 함수를 사용variables()하세요. 변수를 참조할 때 작업의 출력을 참조하는 일반적인 방법인 작업 이름이 아닌 변수 이름을 토큰으로 사용합니다.
예를 들어, 다음 식은 variables() 함수를 사용하여 이 가이드에서 만드는 배열 변수에서 항목을 가져옵니다. 이 함수는 string() 변수의 내용을 문자열 형식 "1, 2, 3, red"으로 반환합니다.
@{string(variables('myArrayVariable'))}
변수 증분
특정 상수 값만큼 변수를 늘리거나 증분하려면 워크플로에 변수 증가 작업을 추가합니다. 이 작업은 정수 및 float 변수에 대해서만 작동합니다.
디자이너에서 워크플로우 유형에 따라 일반적인 단계를 따라 'Increment 변수 '라는 액션을 추가하세요:
이 작업에 대해 다음 정보를 제공합니다.
속성 필요함 값 설명 이름 예 < 변수 이름> 증분 변수의 이름입니다. 값 없음 < 증분값> 변수를 증가시키는 데 사용할 값입니다. 기본값은 1입니다.
팁: 선택 사항이지만, 변수를 증가하기 위한 특정 값을 항상 알 수 있도록 이 값을 설정하는 것이 좋습니다.다음 예에서는 이 작업의 샘플 값을 보여 줍니다.
완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.
디자이너에서 코드 보기로 전환하는 경우 다음 예에서는 JSON 형식의 워크플로 정의에 변수 증가 작업이 어떻게 나타나는지 보여 줍니다.
"actions": {
"Increment_variable": {
"type": "IncrementVariable",
"inputs": {
"name": "Count",
"value": 1
},
"runAfter": {}
}
},
예시: 루프로 이메일 첨부파일을 세기
이 예시에서는 카운터를 0에서 초기화하고, 각 이메일 첨부파일마다 카운터를 한 번씩 늘린 뒤, 총 첨부 파일을 반환합니다.
Azure Portal에서 빈 워크플로를 사용하여 논리 앱 리소스를 만듭니다. 새 이메일 및 첨부 파일을 확인하는 트리거를 추가합니다.
이 예시는 When a new email arrives라는 이름의 Office 365 Outlook 트리거를 사용합니다. 이 트리거를 이메일에 첨부파일이 있을 때만 발동하도록 설정하세요. 그러나 Outlook.com 커넥터와 같이 첨부 파일이 있는 새 이메일을 확인하는 모든 커넥터를 사용할 수 있습니다.
트리거에서 첨부 파일을 확인하고 해당 첨부 파일을 워크플로우로 전달하려면 다음 속성에 대해 예를 선택하세요:
- 첨부 파일만 포함
- 첨부 파일 포함
Initialize 변수 액션을 추가하여 0에서 시작하는 Count라는 정수 변수를 생성합니다.
디자이너에서 워크플로우 유형에 따라 일반적인 단계를 따라 'For each '라는 액션을 추가하세요:
루프에서 다음 단계를 따르세요:
- ' 이전 단계에서 출력 선택 '이라는 박스 안에서 입력 옵션을 확인하세요.
- 번개 아이콘을 선택하여 동적 콘텐츠 목록을 봅니다.
- 목록에서 새 전자 메일이 도착하는 경우첨부 파일을 선택합니다.
Attachments 속성은 트리거 출력의 이메일 첨부 파일이 포함된 배열을 워크플로가 반복할 수 있도록 루프에 전달합니다.
For each 루프에서 작업 추가를 선택합니다.
디자이너에서 워크플로우 유형에 따라 일반적인 단계를 따라 'Increment 변수 '라는 액션을 추가하세요:
참고
변수 증분 작업이 루프 내부에 표시되는지 확인합니다. 작업이 루프 외부에 표시되는 경우 작업을 루프로 끌어옵니다.
변수 증분 작업의 이름 목록에서 횟수 변수를 선택합니다. Value 속성을 1로 설정합니다.
루프 아래에 첨부 파일 개수를 보내는 작업을 추가합니다. 작업에 횟수 변수의 값을 추가합니다. 예를 들어
완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.
워크플로 테스트
워크플로를 수동으로 트리거하려면 디자이너 도구 모음에서 실행 실행을> 선택하여 워크플로를 수동으로 실행합니다.
이 예제에서 사용한 메일 계정에 하나 이상의 첨부 파일이 있는 메일을 보냅니다.
이 단계에서는 워크플로 인스턴스를 만들고 실행하는 워크플로 트리거를 실행합니다. 결과적으로 워크플로는 사용자가 보낸 이메일의 첨부 파일 수를 표시하는 메시지나 이메일을 보냅니다.
디자이너에서 코드 보기로 전환하는 경우 다음 예에서는 JSON 형식의 워크플로 정의에서 For Each 루프가 변수 증가 작업과 함께 표시되는 방식을 보여 줍니다.
"actions": {
"For_each": {
"type": "Foreach",
"actions": {
"Increment_variable": {
"type": "IncrementVariable",
"inputs": {
"name": "Count",
"value": 1
},
"runAfter": {}
}
},
"foreach": "@triggerBody()?['Attachments']",
"runAfter": {
"Initialize_variable": [ "Succeeded" ]
}
}
},
변수 감소
특정 상수 값만큼 변수를 줄이거나 감소하려면 변수 감소 작업을 워크플로에 추가하는 것을 제외하고 변수 증가 단계를 따릅니다. 이 작업은 정수 및 float 변수에 대해서만 작동합니다.
다음 표에서는 변수 감소 작업에 대한 정보를 설명합니다.
| 속성 | 필요함 | 값 | 설명 |
|---|---|---|---|
| 이름 | 예 | < 변수 이름> | 차감할 변수의 이름입니다 |
| 값 | 없음 | < 감소 값> | 변수를 차감하기 위한 값입니다. 기본값은 1입니다. 팁: 선택 사항이지만 모범 사례로써 이 값을 설정하면 항상 변수를 차감하기 위한 특정 값을 알 수 있습니다. |
디자이너에서 코드 보기로 전환하는 경우 다음 예에서는 JSON 형식의 워크플로 정의에 변수 감소 작업이 어떻게 나타나는지 보여 줍니다.
"actions": {
"Decrement_variable": {
"type": "DecrementVariable",
"inputs": {
"name": "Count",
"value": 1
},
"runAfter": {}
}
},
변수 설정
기존 변수에 다른 값을 할당하려면 다음을 제외하고 변수 증가 단계를 따릅니다.
대신 변수 설정 작업을 찾아 선택하세요.
이 작업에 대해 다음 정보를 제공합니다.
속성 필요함 값 설명 이름 예 < 변수 이름> 변수 이름이 바뀌는 것. 값 예 < 새 값> 변수에 할당하려는 값입니다. 변수와 새 값 모두 같은 데이터 타입을 가지는지 확인하세요. 이 작업에는 기본값이 없으므로 값이 필요합니다. 참고
변수를 증가 또는 감소하지 않는 경우 루프 내부에서 변수를 변경하면 루프가 기본적으로 병렬로 실행되거나 동시에 실행되므로 예기치 않은 결과가 생성될 수 있습니다. 이러한 경우, 순차적으로 실행되도록 루프를 설정합니다. 예를 들어, 루프 내에서 변수 값을 참조하고 해당 루프 인스턴스의 시작 및 끝에서 동일한 값이 필요한 경우, 다음 단계에 따라 루프 실행 방법을 변경합니다.
루프를 선택하여 정보 창을 본 다음 설정을 선택합니다.
일반 섹션의 동시성 제어에서 설정을 Off에서 On으로 변경합니다.
병렬 처리 수준 슬라이더를 1로 끌어옵니다.
디자이너에서 코드 뷰로 전환하면, 다음 예시는 Set 변수 액션이 워크플로우 정의(JSON 형식)에 어떻게 나타나 변수의 Count 현재 값을 다른 값으로 변경하는지 보여줍니다:
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [ {
"name": "Count",
"type": "Integer",
"value": 0
} ]
},
"runAfter": {}
},
"Set_variable": {
"type": "SetVariable",
"inputs": {
"name": "Count",
"value": 100
},
"runAfter": {
"Initialize_variable": [ "Succeeded" ]
}
}
},
변수에 추가
문자열 또는 배열을 저장하는 변수의 경우, 해당 문자열이나 배열에 마지막 항목으로 변수의 값을 삽입 또는 추가할 수 있습니다. 변수를 증분하는 방법은 다음과 같은 예외를 제외하고는 다음과 같이 따라가세요:
변수가 문자열인지 또는 배열인지에 따라 다음 작업 중 하나를 찾아서 선택합니다.
- 문자열 변수에 추가
- 배열 변수에 추가
문자열 또는 배열의 마지막 항목으로 추가할 값을 제공합니다.
속성 필요함 값 설명 이름 예 < 변수 이름> 변수 이름이 바뀌는 것. 값 예 < 값 추가> 추가하고자 하는 가치는 어떤 타입이든 될 수 있습니다.
디자이너에서 코드 보기로 전환하는 경우 다음 예에서는 JSON 형식의 워크플로 정의에 배열 변수에 추가 작업이 표시되는 방식을 보여 줍니다.
다음 예에서는 배열 변수를 만들고 다른 값을 배열의 마지막 항목으로 추가합니다. 결과는 다음 배열 [1,2,3,"red"]을 포함하는 업데이트된 변수입니다.
"actions": {
"Initialize_variable": {
"type": "InitializeVariable",
"inputs": {
"variables": [ {
"name": "myArrayVariable",
"type": "Array",
"value": [1, 2, 3]
} ]
},
"runAfter": {}
},
"Append_to_array_variable": {
"type": "AppendToArrayVariable",
"inputs": {
"name": "myArrayVariable",
"value": "red"
},
"runAfter": {
"Initialize_variable": [ "Succeeded" ]
}
}
},