Transform Json Input
function input
Use a Pass type Step Function to merge a script under the field name "transformScript into the input JSON.
"Inject Update Status and Updated": {
"Type": "Pass",
// The example is in Groovy but this probably works for any kind of logging for an app/test running in IDEA | |
// The important part is the template: "ComparisonFailure\nexpected:<{?}> but was:<{?}>" | |
// This works for multi-line values for each '?', which is why being able to use in-ide diff is so nice | |
def expected = ... | |
def actual = ... | |
// do your custom comparison, then if fails throw: | |
String msg = "ComparisonFailure\nexpected:<{${expected}}> but was:<{${actual}}>" |
// I made one of my @Configuration classes extend org.springframework.beans.factory.config.BeanPostProcessor | |
// There probably is a better way to intecept the ContentNegotiationManager when it is being updated but I couldn't figure out how | |
// This solved the problems I had better than using the {id:.+} regular expression in path variables idea I've seen on other fixes. | |
@Override | |
Object postProcessBeforeInitialization(Object bean, String name) throws BeansException { | |
if (bean instanceof RequestMappingHandlerMapping) { | |
// handle when dots in url path |
def cmd = ['sh', '-c', 'ls -l | sort'] | |
def p = cmd.execute() | |
println p.text | |
// Java would be something like | |
// String[] cmd = { "sh", "-c", "ls -l | sort" }; | |
// Process p = Runtime.getRuntime().exec(cmd); | |
// ... |
// Configure Google Cloud library with JSON credentials in an environment variable | |
const | |
os = require('os'), | |
fs = require('fs') | |
; | |
exports.configureGoogleCloud = function (isWarnOnly) { | |
// if standard GOOGLE_APPLICATION_CREDENTIALS is set then use that | |
if (!process.env['GOOGLE_APPLICATION_CREDENTIALS']) { | |
package com.clario.aws | |
import com.amazonaws.DefaultRequest | |
import com.amazonaws.SignableRequest | |
import com.amazonaws.auth.AWS4Signer | |
import com.amazonaws.auth.AWSCredentialsProvider | |
import com.amazonaws.http.HttpMethodName | |
import groovy.util.logging.Slf4j | |
import org.apache.http.client.utils.URLEncodedUtils | |
import org.springframework.http.HttpHeaders |
# Pull latest static opa executable image | |
FROM openpolicyagent/opa:latest-static AS opa-stage | |
# Start lambda image | |
FROM public.ecr.aws/lambda/java:11 | |
ARG OPA_INSTALL_PATH=${LAMBDA_TASK_ROOT}/opa | |
ARG OPA_EXECUTABLE_PATH=${OPA_INSTALL_PATH}/opa | |
COPY --from=opa-stage /opa ${OPA_INSTALL_PATH}/ |
def out = new StringWriter() | |
def xml = new groovy.xml.MarkupBuilder(out) | |
// MarkupBuilder gives us an instance of MarkupBuilderHelper named 'mkp' | |
// MarkupBuilderHelper has several helpful methods | |
xml.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8") | |
xml.example { | |
a { | |
b { | |
mkp.comment('a comment') |