Создание документа в Cosmos DB с помощью приложения Logic и несоответствие ключа раздела в документе и заголовке

#azure-cosmosdb #azure-logic-apps

#azure-cosmosdb #azure-logic-apps

Вопрос:

Итак, я пытаюсь создать приложение Azure Logic, которое создаст новую запись внутри коллекции Cosmos DB для хранения результатов проверки.

Я создал базу данных Cosmos DB (вызывается icecream ) коллекцию (вызывается reviews ). Ключом раздела reviews коллекции является /flavorIdentifier .

Ключ раздела

В моем приложении Logic у меня есть шаг, который вставляет новый документ. Шаг приложения Logic

Код выглядит следующим образом.

 "Create_review": {
    "inputs": {
        "body": {
            "flavor": "@{body('JSON_parseren_2')?['flavor']}",
            "flavorIdentifier": "@{body('JSON_parseren')?['itemOrdered']}",
            "id": "@{guid()}",
            "review": "@{body('E-mail_met_opties_verzenden')?['SelectedOption']}"
        },
        "headers": {
            "x-ms-documentdb-raw-partitionkey": "@body('JSON_parseren')?['itemOrdered']"
        },
        "host": {
            "connection": {
                "name": "@parameters('$connections')['documentdb']['connectionId']"
            }
        },
        "method": "post",
        "path": "/dbs/@{encodeURIComponent('icecream')}/colls/@{encodeURIComponent('reviews')}/docs"
    },
    "runAfter": {
        "E-mail_met_opties_verzenden": [
            "Succeeded"
        ]
    },
    "type": "ApiConnection"
},
  

Итак, я отправляю сообщение в Cosmos DB

 {
    "flavor": "My flavor",
    "flavorIdentifier": "3",
    "id": "4927042a-faa1-4e09-9c6d-d038ef659b25",
    "review": "Very satisfied"
}
  

Как вы можете видеть, я также присвоил ключу раздела то же значение, что и flavorIdentifier .
Я предполагаю, что это должно просто сработать. Но это не

Ошибка, которую я получаю, гласит

Извлеченный из документа ключ раздела не совпадает с ключом, указанным в заголовке

Что странно, поскольку оба имеют одинаковое значение, также при проверке необработанного ввода и вывода. Есть ли что-то, что я упускаю из виду?

Для полноты, полный ввод и вывод этого шага.

Необработанный ввод неудачного шага.

 {
    "host": {
        "connection": {
            "name": "/subscriptions/3b3729b4-021a-48b5-a2eb-47be0c7e7f44/resourceGroups/developerday-workshop/providers/Microsoft.Web/connections/documentdb"
        }
    },
    "method": "post",
    "path": "/dbs/icecream/colls/reviews/docs",
    "headers": {
        "x-ms-documentdb-raw-partitionkey": "3"
    },
    "body": {
        "flavor": "My flavor",
        "flavorIdentifier": "3",
        "id": "4927042a-faa1-4e09-9c6d-d038ef659b25",
        "review": "Very satisfied"
    }
}
  

Необработанный вывод неудачного шага.

 {
    "statusCode": 400,
    "headers": {
        "x-ms-last-state-change-utc": "Wed,27 Mar 2019 05:03:54.568 GMT",
        "lsn": "1",
        "x-ms-schemaversion": "1.7",
        "x-ms-quorum-acked-lsn": "1",
        "x-ms-substatus": "1001",
        "x-ms-current-write-quorum": "3",
        "x-ms-current-replica-set-size": "4",
        "x-ms-xp-role": "1",
        "x-ms-global-Committed-lsn": "1",
        "x-ms-number-of-read-regions": "0",
        "x-ms-transport-request-id": "1",
        "x-ms-cosmos-llsn": "1",
        "x-ms-cosmos-quorum-acked-llsn": "1",
        "x-ms-session-token": "1",
        "x-ms-request-charge": "1.24",
        "x-ms-serviceversion": "version=2.2.0.0",
        "x-ms-activity-id": "bd428162-ec1a-4f50-879a-04b8ca0817a1",
        "Strict-Transport-Security": "max-age=31536000",
        "x-ms-gatewayversion": "version=2.2.0.0",
        "Timing-Allow-Origin": "*",
        "x-ms-apihub-cached-response": "false",
        "Date": "Wed, 27 Mar 2019 11:39:57 GMT",
        "Content-Length": "1149",
        "Content-Type": "application/json"
    },
    "body": {
        "code": "BadRequest",
        "message": "Message: {"Errors":["PartitionKey extracted from document doesn't match the one specified in the header"]}rnActivityId: bd428162-ec1a-4f50-879a-04b8ca0817a1, Request URI: /apps/9bc5d0cc-9b7c-4b1d-9be2-0fa2654271c4/services/9d84c048-383b-498e-8472-1f57da72135d/partitions/0f29761a-9ffc-4560-94ce-0328c3c79f92/replicas/131981366274575376p/, RequestStats: rnRequestStartTime: 2019-03-27T11:39:57.0795308Z, RequestEndTime: 2019-03-27T11:39:57.0995601Z, Number of regions attempted: 1rnResponseTime: 2019-03-27T11:39:57.0995601Z, StoreResult: StorePhysicalAddress: rntbd://cdb-ms-prod-westeurope1-fd21.documents.azure.com:16833/apps/9bc5d0cc-9b7c-4b1d-9be2-0fa2654271c4/services/9d84c048-383b-498e-8472-1f57da72135d/partitions/0f29761a-9ffc-4560-94ce-0328c3c79f92/replicas/131981366274575376p/, LSN: 1, GlobalCommittedLsn: 1, PartitionKeyRangeId: 0, IsValid: True, StatusCode: 400, SubStatusCode: 1001, RequestCharge: 1.24, ItemLSN: -1, SessionToken: 1, UsingLocalLSN: False, TransportException: null, ResourceType: Document, OperationType: Creatern, SDK: Microsoft.Azure.Documents.Common/2.2.0.0"
    }
}
  

Есть мысли?

Ответ №1:

Пожалуйста, добавьте двойные кавычки "" вокруг вашего ключа раздела, и у меня все работает нормально.

введите описание изображения здесь

Просмотр кода:

введите описание изображения здесь

Комментарии:

1. Вау, такая очевидная ошибка. Спасибо!