我正在使用来创建传递输出(S3)前缀,我选择了JQ作为解析器,其中一个前缀键是可选的,我尝试了jq提供的替代选项,但是它给了我一个错误。我附加了随机AWS云跟踪和代码片段。
`
{
"eventVersion": "1.08",
"OptionalKey": "Optional" ---> I want to get the optional field and if it does not exist return "undefined"
"userIdentity": {
"type": "AssumedRole",
"principalId": "XXXXXXXXXXXXXXXXX:dkboss",
"arn": "XXXXXXXXXXXXXXXXXXXXXXXXX/dkboss",
"accountId": "XXXXXXXXXXXXXXXX",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
"arn": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"accountId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"userName": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"webIdFederationData": {},
"attributes": {
"creationDate": "2022-11-27T15:24:28Z",
"mfaAuthenticated": "false" }
}
},
"eventTime": "2022-11-27T15:24:29Z",
"eventSource": "signin.amazonaws.com",
"eventName": "ConsoleLogin",
"awsRegion": "us-east-1",
"sourceIPAddress": "1.1.1.1",
"userAgent": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"requestParameters": null,
"responseElements": {
"ConsoleLogin": "Success"
},
"additionalEventData": {
"MobileVersion": "No",
"MFAUsed": "No"
},
"eventID": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"readOnly": false,
"eventType": "AwsConsoleSignIn",
"managementEvent": true,
"recipientAccountId": "XXXXXXXXXXXXXXXXXXXXXXX",
"eventCategory": "Management",
"tlsDetails": {
"tlsVersion": "TLSv1.2",
"cipherSuite": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"clientProvidedHostHeader": "signin.aws.amazon.com"
}
}‘我想要构建S3前缀,但我不知道如何支持可选值。
`
CfnDeliveryStream.ProcessorParameterProperty(
parameter_name="MetadataExtractionQuery",
parameter_value="{"
"tlsDetais : .tlsDetails.tlsVersion,"
'OptionalKey : .OptionalKey // "undefined",'
"}"`在ProcessorParameterProperty内部,但是它失败了,出现了以下错误:
JQ Subprocess failed due to: jq: error: syntax error, unexpected //, expecting '}' (Unix shell quoting issues?) at <top-level>, 发布于 2022-11-28 17:36:01
您必须用括号对表达式进行分组:
{
tlsDetais : .tlsDetails.tlsVersion,
OptionalKey : (.OptionalKey // "undefined")
}https://stackoverflow.com/questions/74602745
复制相似问题