다음을 사용할 수 있습니다. mode=draft
의 쿼리 매개 변수 [Flow Service API] (https://www.adobe.io/experience-platform-apis/references/flow-service/) 을(를) 설정하려면 Flow Service 기본 연결, 소스 연결, 타겟 연결 및 데이터 흐름과 같은 엔티티가 도면 상태로 이동합니다.
초안은 나중에 새 정보로 업데이트한 다음 준비가 되면 다음을 사용하여 게시할 수 있습니다. op=publish
쿼리 매개 변수.
이 자습서에서는 를 설정하는 방법에 대한 단계를 제공합니다. Flow Service 엔티티를 도면 상태로 전환하고 나중에 완료할 수 있도록 워크플로우를 일시 중지하고 저장할 수 있습니다.
이 자습서를 사용하려면 Adobe Experience Platform의 다음 구성 요소를 잘 알고 있어야 합니다.
Platform API를 성공적으로 호출하는 방법에 대한 자세한 내용은 의 안내서를 참조하십시오. platform API 시작하기.
사용 중인 소스의 연결 사양 ID 및 해당 흐름 사양 ID가 초안 모드에 대해 활성화되어 있는지도 확인해야 합니다.
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connectionSpecs/be5ec48c-5b78-49d5-b8fa-7c89ec4569b8' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
성공한 응답은 소스에 대한 연결 사양 정보를 반환합니다. 소스에 대해 초안 모드가 지원되는지 확인하려면 items[0].attributes.isDraftModeSupported
의 값이 true
.
{
"items": [
{
"id": "be5ec48c-5b78-49d5-b8fa-7c89ec4569b8",
"name": "azure-file-storage",
"providerId": "0ed90a81-07f4-4586-8190-b40eccef1c5a",
"version": "1.0",
"authSpec": [
{
"name": "Basic Authentication",
"type": "basicAuthentication",
"spec": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"description": "defines auth params",
"properties": {
"host": {
"type": "string",
"description": "Specifies the Azure File Storage endpoint."
},
"userid": {
"type": "string",
"description": "Specify the user to access the Azure File Storage."
},
"password": {
"type": "string",
"description": "Specify the storage access key",
"format": "password"
}
},
"required": [
"host",
"userid",
"password"
]
}
}
],
"sourceSpec": {
"name": "CloudStorage",
"type": "CloudStorage",
"spec": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "input path for copying files, can be a folder path, file path or a wildcard pattern"
},
"recursive": {
"type": "boolean",
"description": "indicates recursive copy in case of folder or wild card path, default is false"
}
},
"required": [
"path"
]
},
"attributes": {
"uiAttributes": {
"documentationLink": "http://www.adobe.com/go/sources-azure-file-storage-en",
"isSource": true,
"category": {
"key": "cloudStorage"
},
"icon": {
"key": "azureFileStorage"
},
"description": {
"key": "azureFileStorageDescription"
},
"label": {
"key": "azureFileStorageLabel"
}
}
}
},
"exploreSpec": {
"name": "FileSystem",
"type": "FileSystem",
"requestSpec": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"description": "defines explorable objects",
"properties": {
"objectType": {
"type": "string",
"enum": [
"file",
"folder",
"root"
]
}
},
"allOf": [
{
"if": {
"properties": {
"objectType": {
"enum": [
"file"
]
}
}
},
"then": {
"properties": {
"object": {
"type": "string",
"description": "defines file to get schema or preview of."
},
"fileType": {
"type": "string",
"enum": [
"delimited"
]
},
"preview": {
"type": "boolean"
}
},
"required": [
"object",
"fileType"
]
}
},
{
"if": {
"properties": {
"objectType": {
"enum": [
"folder"
]
}
}
},
"then": {
"properties": {
"object": {
"type": "string"
}
},
"required": [
"object"
]
}
}
]
},
"responseSpec": {
"root": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"description": "lists tables/items under the database/container requested.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "defines type of an item."
},
"name": {
"type": "string",
"description": "defines display name of an item."
},
"path": {
"type": "string",
"description": "defines path of an item."
},
"canPreview": {
"type": "boolean",
"default": false,
"description": "defines whether an item is previewable or not."
},
"canFetchSchema": {
"type": "boolean",
"default": false,
"description": "defines whether schema can be fetched for an item or not."
}
}
}
},
"folder": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"name": {
"type": "string"
},
"path": {
"type": "string"
},
"canPreview": {
"type": "boolean",
"default": false
},
"canFetchSchema": {
"type": "boolean",
"default": false
}
}
}
},
"file": {
"delimited": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"format": {
"type": "string"
},
"schema": {
"type": "object",
"properties": {
"columns": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
}
}
}
}
}
},
"data": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
}
},
"attributes": {
"category": "Cloud Storage",
"connectorName": "Azure File Storage",
"isSource": true,
"isDraftModeSupported": true,
"uiAttributes": {
"apiFeatures": {
"explorePaginationSupported": false
}
}
},
"permissionsInfo": {
"manage": [
{
"@type": "lowLevel",
"name": "EnterpriseSource",
"permissions": [
"write"
]
}
],
"view": [
{
"@type": "lowLevel",
"name": "EnterpriseSource",
"permissions": [
"read"
]
}
]
}
}
]
}
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/flowSpecs?property=name==%22CloudStorageToAEP%22' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
성공한 응답은 소스에 대한 흐름 사양 정보를 반환합니다. 소스에 대해 초안 모드가 지원되는지 확인하려면 items[0].attributes.isDraftModeSupported
의 값이 true
.
{
"items": [
{
"id": "9753525b-82c7-4dce-8a9b-5ccfce2b9876",
"name": "CloudStorageToAEP",
"providerId": "0ed90a81-07f4-4586-8190-b40eccef1c5a",
"version": "1.0",
"sourceConnectionSpecIds": [
"b3ba5556-48be-44b7-8b85-ff2b69b46dc4",
"ecadc60c-7455-4d87-84dc-2a0e293d997b",
"b7829c2f-2eb0-4f49-a6ee-55e33008b629",
"4c10e202-c428-4796-9208-5f1f5732b1cf",
"fb2e94c9-c031-467d-8103-6bd6e0a432f2",
"32e8f412-cdf7-464c-9885-78184cb113fd",
"b7bf2577-4520-42c9-bae9-cad01560f7bc",
"998b8ae3-cec0-43b7-8abe-40b1eb4ee069",
"be5ec48c-5b78-49d5-b8fa-7c89ec4569b8",
"54e221aa-d342-4707-bcff-7a4bceef0001",
"c85f9425-fb21-426c-ad0b-405e9bd8a46c",
"26f526f2-58f4-4712-961d-e41bf1ccc0e8"
],
"targetConnectionSpecIds": [
"c604ff05-7f1a-43c0-8e18-33bf874cb11c"
],
"optionSpec": {
"name": "OptionSpec",
"spec": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"errorDiagnosticsEnabled": {
"title": "Error diagnostics.",
"description": "Flag to enable detailed and sample error diagnostics summary.",
"type": "boolean",
"default": false
},
"partialIngestionPercent": {
"title": "Partial ingestion threshold.",
"description": "Percentage which defines the threshold of errors allowed before the run is marked as failed.",
"type": "number",
"exclusiveMinimum": 0
}
}
}
},
"transformationSpecs": [
{
"name": "Mapping",
"spec": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"description": "defines various params required for different mapping from source to target",
"properties": {
"mappingId": {
"type": "string"
},
"mappingVersion": {
"type": "string"
}
}
}
},
{
"name": "Encryption",
"spec": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"description": "defines various params required for encrypted data ingestion",
"properties": {
"publicKeyId": {
"type": "string",
"description": "publicKeyId returned in encryptionKey creation API. One must use the publicKeyId corresponding to the same publicKey they used for encrypting the files"
}
}
}
}
],
"scheduleSpec": {
"name": "PeriodicSchedule",
"type": "Periodic",
"spec": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"startTime": {
"description": "epoch time",
"type": "integer"
},
"frequency": {
"type": "string",
"enum": [
"once",
"minute",
"hour",
"day",
"week"
]
},
"interval": {
"type": "integer"
},
"backfill": {
"type": "boolean",
"default": true
}
},
"required": [
"startTime",
"frequency"
],
"if": {
"properties": {
"frequency": {
"const": "once"
}
}
},
"then": {
"allOf": [
{
"not": {
"required": [
"interval"
]
}
},
{
"not": {
"required": [
"backfill"
]
}
}
]
},
"else": {
"required": [
"interval"
],
"if": {
"properties": {
"frequency": {
"const": "minute"
}
}
},
"then": {
"properties": {
"interval": {
"minimum": 15
}
}
},
"else": {
"properties": {
"interval": {
"minimum": 1
}
}
}
}
}
},
"attributes": {
"isSourceFlow": true,
"flacValidationSupported": true,
"isDraftModeSupported": true,
"frequency": "batch",
"notification": {
"category": "sources",
"flowRun": {
"enabled": true
}
}
},
"permissionsInfo": {
"manage": [
{
"@type": "lowLevel",
"name": "EnterpriseSource",
"permissions": [
"write"
]
}
],
"view": [
{
"@type": "lowLevel",
"name": "EnterpriseSource",
"permissions": [
"read"
]
}
]
}
}
]
}
POST 초안 기본 연결을 만들려면 /connections
의 엔드포인트 Flow Service API 및 제공 mode=draft
를 쿼리 매개 변수로 사용하십시오.
API 형식
POST /connections?mode=draft
매개변수 | 설명 |
---|---|
mode |
기본 연결의 상태를 결정하는 사용자 제공 쿼리 매개 변수입니다. 기본 연결을 초안으로 설정하려면 를 설정합니다 mode 끝 draft . |
요청
다음 요청은 다음에 대한 기본 연결을 만듭니다. Azure File Storage 소스:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"name": "ACME Azure File Storage Base Connection",
"description": "Azure File Storage base connection for ACME data (DRAFT)",
"auth": {
"specName": "Basic Authentication",
"params": {
"host": "{HOST}",
"userId": "{USER_ID}",
"password": "{PASSWORD}"
}
},
"connectionSpec": {
"id": "be5ec48c-5b78-49d5-b8fa-7c89ec4569b8",
"version": "1.0"
}
}'
응답
성공적인 응답은 기본 연결 ID와 초안 기본 연결에 대한 해당 etag를 반환합니다. 나중에 이 ID를 사용하여 기본 연결을 업데이트하고 게시할 수 있습니다.
{
"id": "f9377f50-607a-4818-b77f-50607a181860",
"etag": "\"2f0276fa-0000-0200-0000-5eab3abb0000\""
}
초안을 게시할 준비가 되면에 POST 요청을 /connections
게시하려는 초안 기본 연결의 ID를 끝점에 추가하고 게시를 위한 작업 작업을 제공합니다.
API 형식
POST /connections/{BASE_CONNECTION_ID}/action?op=publish
매개변수 | 설명 |
---|---|
op |
쿼리된 기본 연결의 상태를 업데이트하는 작업 작업입니다. 구배 베이스 연결을 게시하려면 를 설정합니다. op 끝 publish . |
요청
다음 요청은 다음에 대한 기본 연결 초안을 게시합니다. Azure File Storage 이전 단계에서 만들어졌습니다.
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections/f9377f50-607a-4818-b77f-50607a181860/action?op=publish' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
응답
성공한 응답은 게시된 기본 연결에 대해 ID와 해당 etag를 반환합니다.
{
"id": "f9377f50-607a-4818-b77f-50607a181860",
"etag": "\"2f0276fa-0000-0200-0000-5eab3abb0000\""
}
POST 초안 소스 연결을 만들려면 /sourceConnections
의 엔드포인트 Flow Service API 및 제공 mode=draft
를 쿼리 매개 변수로 사용하십시오.
API 형식
POST /sourceConnections?mode=draft
매개변수 | 설명 |
---|---|
mode |
소스 연결의 상태를 결정하는 사용자 제공 쿼리 매개 변수입니다. 소스 연결을 초안으로 설정하려면 를 설정합니다 mode 끝 draft . |
요청
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections?mode=draft' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"name": "ACME Azure File Storage Source Connection",
"description: "Azure File Storage source connection for ACME data (DRAFT)",
"baseConnectionId": "f9377f50-607a-4818-b77f-50607a181860",
"data": {
"format": "delimited",
},
"params": {
"path": "/acme/summerCampaign/account.csv",
"type": "file"
},
"connectionSpec": {
"id": "be5ec48c-5b78-49d5-b8fa-7c89ec4569b8",
"version": "1.0"
}
}'
응답
성공적인 응답은 초안 소스 연결에 대해 소스 연결 ID와 해당 태그를 반환합니다. 나중에 이 ID를 사용하여 소스 연결을 업데이트하고 게시할 수 있습니다.
{
"id": "26b53912-1005-49f0-b539-12100559f0e2",
"etag": "\"11004d97-0000-0200-0000-5f3c3b140000\""
}
연관된 기본 연결이 여전히 초안 상태인 경우 소스 연결을 게시할 수 없습니다. 소스 연결을 게시하기 전에 기본 연결이 먼저 게시되었는지 확인하십시오.
초안을 게시할 준비가 되면에 POST 요청을 /sourceConnections
게시하려는 초안 소스 연결의 ID를 끝점으로 지정하고 입력한 다음 게시하기 위한 작업 작업을 제공합니다.
API 형식
POST /sourceConnections/{SOURCE_CONNECTION_ID}/action?op=publish
매개변수 | 설명 |
---|---|
op |
쿼리된 소스 연결의 상태를 업데이트하는 작업 작업입니다. 초안 소스 연결을 게시하려면 을 설정합니다. op 끝 publish . |
요청
다음 요청은 다음에 대한 초안 소스 연결을 게시합니다. Azure File Storage 이전 단계에서 만들어졌습니다.
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections/26b53912-1005-49f0-b539-12100559f0e2/action?op=publish' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
응답
성공적인 응답은 게시된 소스 연결에 대한 ID 및 해당 etag를 반환합니다.
{
"id": "26b53912-1005-49f0-b539-12100559f0e2",
"etag": "\"11004d97-0000-0200-0000-5f3c3b140000\""
}
POST 초안 대상 연결을 만들려면 /targetConnections
의 엔드포인트 Flow Service API 및 제공 mode=draft
를 쿼리 매개 변수로 사용하십시오.
API 형식
POST /targetConnections?mode=draft
매개변수 | 설명 |
---|---|
mode |
대상 연결의 상태를 결정하는 사용자 제공 쿼리 매개 변수입니다. 대상 연결을 초안으로 설정하려면 를 설정합니다 mode 끝 draft . |
요청
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections?mode=draft' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"name": "ACME Azure File Storage Target Connection",
"description": "Azure File Storage target connection ACME data (DRAFT)",
"data": {
"schema": {
"id": "{SCHEMA_ID}",
"version": "application/vnd.adobe.xed-full+json;version=1"
}
},
"params": {
"dataSetId": "{DATASET_ID}"
},
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
}
}'
응답
성공적인 응답은 대상 연결 ID와 초안 대상 연결에 대한 해당 etag를 반환합니다. 나중에 이 ID를 사용하여 대상 연결을 업데이트하고 게시할 수 있습니다.
{
"id": "dbc5c132-bc2a-4625-85c1-32bc2a262558",
"etag": "\"8e000533-0000-0200-0000-5f3c40fd0000\""
}
연관된 기본 연결이 여전히 초안 상태인 경우 대상 연결을 게시할 수 없습니다. 대상 연결을 게시하기 전에 기본 연결이 먼저 게시되었는지 확인하십시오.
초안을 게시할 준비가 되면에 POST 요청을 /targetConnections
을(를) 종단하여 게시하려는 초안 타겟 연결의 ID와 함께 게시를 위한 작업 작업을 제공합니다.
API 형식
POST /targetConnections/{TARGET_CONNECTION_ID}/action?op=publish
매개변수 | 설명 |
---|---|
op |
쿼리된 대상 연결의 상태를 업데이트하는 작업 작업입니다. 초안 대상 연결을 게시하려면 다음을 설정하십시오. op 끝 publish . |
요청
다음 요청은 다음에 대한 초안 대상 연결을 게시합니다. Azure File Storage 이전 단계에서 만들어졌습니다.
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections/dbc5c132-bc2a-4625-85c1-32bc2a262558/action?op=publish' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
응답
성공적인 응답은 게시된 타겟 연결에 대한 ID 및 해당 etag를 반환합니다.
{
"id": "dbc5c132-bc2a-4625-85c1-32bc2a262558",
"etag": "\"8e000533-0000-0200-0000-5f3c40fd0000\""
}
POST 데이터 흐름을 초안으로 설정하려면 /flows
를 추가하는 동안 엔드포인트 mode=draft
를 쿼리 매개 변수로 사용하십시오. 이를 통해 데이터 흐름을 만들고 초안으로 저장할 수 있습니다.
API 형식
POST /flows?mode=draft
매개변수 | 설명 |
---|---|
mode |
데이터 흐름의 상태를 결정하는 사용자 제공 쿼리 매개 변수입니다. 데이터 흐름을 초안으로 설정하려면 를 설정합니다. mode 끝 draft . |
요청
다음 요청은 초안 데이터 흐름을 만듭니다.
'https://platform.adobe.io/data/foundation/flowservice/flows?mode=draft' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"name": "ACME Azure File Storage Dataflow",
"description": "Azure File Storage dataflow for ACME data (DRAFT)",
"sourceConnectionIds": [
"26b53912-1005-49f0-b539-12100559f0e2"
],
"targetConnectionIds": [
"dbc5c132-bc2a-4625-85c1-32bc2a262558"
],
"flowSpec": {
"id": "9753525b-82c7-4dce-8a9b-5ccfce2b9876",
"version": "1.0"
}
}'
응답
성공적인 응답은 초안 데이터 흐름에 대한 흐름 ID와 해당 태그를 반환합니다. 나중에 이 ID를 사용하여 데이터 흐름을 업데이트하고 게시할 수 있습니다.
{
"id": "c9751426-dff8-49b0-965f-50defcf4187b",
"etag": "\"69057131-0000-0200-0000-640f48320000\""
}
연결된 소스 및 타겟 연결이 여전히 초안 상태인 경우 데이터 흐름을 게시할 수 없습니다. 데이터 흐름을 게시하기 전에 소스 및 타겟 연결이 먼저 게시되었는지 확인하십시오.
초안을 게시할 준비가 되면에 POST 요청을 /flows
게시하려는 초안 데이터 흐름의 ID와 게시를 위한 작업 작업을 제공하는 동안 엔드포인트가 발생했습니다.
API 형식
POST /flows/{FLOW_ID}/action?op=publish
매개변수 | 설명 |
---|---|
op |
쿼리된 데이터 흐름의 상태를 업데이트하는 작업 작업입니다. 초안 데이터 흐름을 게시하려면 다음을 설정하십시오. op 끝 publish . |
요청
다음 요청은 초안 데이터 흐름을 게시합니다.
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows/c9751426-dff8-49b0-965f-50defcf4187b/action?op=publish' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
응답
성공적인 응답은 ID 및 해당 를 반환합니다 etag
데이터 흐름의.
{
"id": "c9751426-dff8-49b0-965f-50defcf4187b",
"etag": "\"69057131-0000-0200-0000-640f48320000\""
}
이 자습서를 따라 의 초안을 만드는 방법을 배웠습니다. Flow Service 이러한 초안을 게시할 뿐만 아니라 엔티티도 게시합니다. 소스에 대한 자세한 내용은 소스 개요를 참조하십시오.