/** * Construct a synchronous implementation of AWSLambda using the current builder configuration. * * @param params * Current builder configuration represented as a parameter object. * @return Fully configured implementation of AWSLambda. */ @Override protected AWSLambda build(AwsSyncClientParams params) { return new AWSLambdaClient(params); }
@SdkInternalApi final GetAccountSettingsResult executeGetAccountSettings(GetAccountSettingsRequest getAccountSettingsRequest) { ExecutionContext executionContext = createExecutionContext(getAccountSettingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<GetAccountSettingsRequest> request = null; Response<GetAccountSettingsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetAccountSettingsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getAccountSettingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lambda"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAccountSettings"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<GetAccountSettingsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAccountSettingsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } }
/** * Constructs a new client to invoke service methods on AWS Lambda using the specified parameters. * * <p> * All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSLambdaClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); }
ExecutionContext executionContext = createExecutionContext(invokeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); unmarshaller); response = invoke(request, responseHandler, executionContext); endClientExecution(awsRequestMetrics, request, response, LOGGING_AWS_REQUEST_METRIC);
public String translate(final String testPhrase, final String language) { final Map<String, Slot> slots = new HashMap<>(); slots.put("termA", Slot.builder().withName("termA").withValue(testPhrase).build()); slots.put("termB", Slot.builder().withName("termB").build()); slots.put("language", Slot.builder().withName("language").withValue(language).build()); final SpeechletRequestEnvelope envelope = givenIntentSpeechletRequestEnvelope("Translate", slots); final ObjectMapper mapper = new ObjectMapper(); String response = null; try { final AWSLambdaClient awsLambda = new AWSLambdaClient(); final InvokeRequest invokeRequest = new InvokeRequest() .withInvocationType(InvocationType.RequestResponse) .withFunctionName(lambdaName) .withPayload(mapper.writeValueAsString(envelope)); final InvokeResult invokeResult = awsLambda.invoke(invokeRequest); response = new String(invokeResult.getPayload().array()); } catch (JsonProcessingException e) { log.error(e.getMessage()); } return response; }
public AWSLambdaClient getClient() { if(useDefaultAWSCredentials){ return new AWSLambdaClient(new DefaultAWSCredentialsProviderChain(), getClientConfiguration()) .withRegion(Region.getRegion(Regions.fromName(region))); } else { return new AWSLambdaClient(new BasicAWSCredentials(accessKeyId, secretKey), getClientConfiguration()) .withRegion(Region.getRegion(Regions.fromName(region))); } }
/** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request, HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler, ExecutionContext executionContext) { return invoke(request, responseHandler, executionContext, null, null); }
/** * Constructs a new client to invoke service methods on AWSLambda using the * specified AWS account credentials provider, client configuration options * and request metric collector. * <p> * All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider The AWS credentials provider which will * provide credentials to authenticate requests with AWS * services. * @param clientConfiguration The client configuration options controlling * how this client connects to AWSLambda (ex: proxy settings, * retry counts, etc.). * @param httpClient A http client */ public AWSLambdaClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, HttpClient httpClient) { super(adjustClientConfiguration(clientConfiguration), httpClient); this.awsCredentialsProvider = awsCredentialsProvider; init(); }
protected Object updateAlias(String functionName, String version, String alias) { try { CreateAliasRequest req = new CreateAliasRequest().withFunctionName(functionName).withFunctionVersion(version).withName(alias); return lambdaClient.createAlias(req); } catch (ResourceConflictException exc) { UpdateAliasRequest req = new UpdateAliasRequest().withFunctionName(functionName).withFunctionVersion(version).withName(alias); return lambdaClient.updateAlias(req); } }
public void createEventSourceMapping(EventSourceConfig config, String functionArn) { String functionName = StringUtils.isNotEmpty(config.getFunctionAlias()) ? functionArn + ":" + config.getFunctionAlias() : config.getFunctionName(); CreateEventSourceMappingRequest eventSourceMappingRequest = new CreateEventSourceMappingRequest() .withEventSourceArn(config.getEventSourceArn()) .withFunctionName(functionName) .withStartingPosition(config.getStartingPosition()) .withEnabled(true); // check for mapping first ListEventSourceMappingsRequest listMappingsRequest = new ListEventSourceMappingsRequest() .withEventSourceArn(eventSourceMappingRequest.getEventSourceArn()) .withFunctionName(eventSourceMappingRequest.getFunctionName()); ListEventSourceMappingsResult listMappingsResult = client.listEventSourceMappings(listMappingsRequest); if (listMappingsResult.getEventSourceMappings().isEmpty()) { logger.log("EventSource mapping request:%n%s%n", eventSourceMappingRequest.toString()); CreateEventSourceMappingResult eventSourceMappingResult = client.createEventSourceMapping(eventSourceMappingRequest); logger.log("EventSource mapping response:%n%s%n", eventSourceMappingResult.toString()); } else { logger.log("Skipping EventSource mapping (already exists): " + config.getEventSourceArn()); } }
@Override public ListEventSourceMappingsResult listEventSourceMappings() { return listEventSourceMappings(new ListEventSourceMappingsRequest()); }
private CreateFunctionResult createFunction(LambdaFunctionDefinition d) { CreateFunctionRequest req = new CreateFunctionRequest() .withCode(new FunctionCode().withS3Bucket(s3Uri.getBucket()).withS3Key(s3Uri.getKey())) .withDescription(d.getDescription()) .withFunctionName(d.getName()) .withHandler(d.getHandler()) .withMemorySize(d.getMemorySize()) .withRole(d.getRole()) .withRuntime(Runtime.Java8) .withPublish(this.deployPublish) .withVpcConfig(new VpcConfig().withSecurityGroupIds(securityGroupIds).withSubnetIds(subnetIds)) .withTimeout(d.getTimeout()); final CreateFunctionResult createFunctionResult = lambdaClient.createFunction(req); return createFunctionResult; }
private void createLambdaAliasFunction(DeployConfig config, String functionVersion) throws IOException { CreateAliasRequest createAliasRequest = new CreateAliasRequest() .withFunctionName(config.getFunctionName()) .withName(config.getAlias()) .withFunctionVersion(functionVersion); logger.log("Lambda create alias request:%n%s%n", createAliasRequest.toString()); CreateAliasResult createAliasResponse = client.createAlias(createAliasRequest); logger.log("Lambda create alias response:%n%s%n", createAliasResponse.toString()); }
protected AWSLambda getLambdaClient() { if (lambdaClient != null) { return lambdaClient; } return lambdaClient = new AWSLambdaClient(getAWSCredentialsProvideChain()).withRegion(Region.getRegion(Regions.fromName(deployment.getRegion()))); }
long startTime = System.nanoTime(); InvokeResult result = client.invoke(invokeRequest);
/** * Constructs a new client to invoke service methods on AWSLambda using the * specified AWS account credentials provider, client configuration options * and request metric collector. * <p> * All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider The AWS credentials provider which will * provide credentials to authenticate requests with AWS * services. * @param clientConfiguration The client configuration options controlling * how this client connects to AWSLambda (ex: proxy settings, * retry counts, etc.). * @param requestMetricCollector optional request metric collector */ @Deprecated public AWSLambdaClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(adjustClientConfiguration(clientConfiguration), requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); }
@Override public ListEventSourceMappingsResult listEventSourceMappings() { return listEventSourceMappings(new ListEventSourceMappingsRequest()); }
CreateFunctionResult uploadFunctionResult = client.createFunction(createFunctionRequest); logger.log("Lambda create response:%n%s%n", uploadFunctionResult.toString());
@SdkInternalApi final PublishVersionResult executePublishVersion(PublishVersionRequest publishVersionRequest) { ExecutionContext executionContext = createExecutionContext(publishVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<PublishVersionRequest> request = null; Response<PublishVersionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PublishVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(publishVersionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Lambda"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PublishVersion"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<PublishVersionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PublishVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } }
/** * Create client using aws credentials provider. This is the preferred way for creating clients */ @Override protected AWSLambdaClient createClient(final ProcessContext context, final AWSCredentialsProvider credentialsProvider, final ClientConfiguration config) { getLogger().info("Creating client using aws credentials provider"); return new AWSLambdaClient(credentialsProvider, config); }