UNPKG

@pulumi/aws

Version:

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

214 lines 8.1 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.getFunctionOutput = exports.getFunction = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("../utilities"); /** * Provides details about an AWS Lambda Function. Use this data source to obtain information about an existing Lambda function for use in other resources or as a reference for function configurations. * * > **Note:** This data source returns information about the latest version or alias specified by the `qualifier`. If no `qualifier` is provided, it returns information about the most recent published version, or `$LATEST` if no published version exists. * * ## Example Usage * * ### Basic Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.lambda.getFunction({ * functionName: "my-lambda-function", * }); * export const functionArn = example.then(example => example.arn); * ``` * * ### Using Function Alias * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.lambda.getFunction({ * functionName: "api-handler", * qualifier: "production", * }); * // Use in API Gateway integration * const exampleIntegration = new aws.apigateway.Integration("example", { * restApi: exampleAwsApiGatewayRestApi.id, * resourceId: exampleAwsApiGatewayResource.id, * httpMethod: exampleAwsApiGatewayMethod.httpMethod, * integrationHttpMethod: "POST", * type: "AWS_PROXY", * uri: example.then(example => example.invokeArn), * }); * ``` * * ### Function Configuration Reference * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * // Get existing function details * const reference = aws.lambda.getFunction({ * functionName: "existing-function", * }); * // Create new function with similar configuration * const example = new aws.lambda.Function("example", { * code: new pulumi.asset.FileArchive("new-function.zip"), * name: "new-function", * role: reference.then(reference => reference.role), * handler: reference.then(reference => reference.handler), * runtime: reference.then(reference => reference.runtime).apply((x) => aws.lambda.Runtime[x]), * memorySize: reference.then(reference => reference.memorySize), * timeout: reference.then(reference => reference.timeout), * architectures: reference.then(reference => reference.architectures), * vpcConfig: { * subnetIds: reference.then(reference => reference.vpcConfig?.subnetIds), * securityGroupIds: reference.then(reference => reference.vpcConfig?.securityGroupIds), * }, * environment: { * variables: reference.then(reference => reference.environment?.variables), * }, * }); * ``` * * ### Function Version Management * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * // Get details about specific version * const version = aws.lambda.getFunction({ * functionName: "my-function", * qualifier: "3", * }); * // Get details about latest version * const latest = aws.lambda.getFunction({ * functionName: "my-function", * qualifier: "$LATEST", * }); * export const versionComparison = { * specificVersion: version.then(version => version.version), * latestVersion: latest.then(latest => latest.version), * codeDifference: Promise.all([version, latest]).then(([version, latest]) => version.codeSha256 != latest.codeSha256), * }; * ``` */ function getFunction(args, opts) { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invoke("aws:lambda/getFunction:getFunction", { "functionName": args.functionName, "qualifier": args.qualifier, "region": args.region, "tags": args.tags, }, opts); } exports.getFunction = getFunction; /** * Provides details about an AWS Lambda Function. Use this data source to obtain information about an existing Lambda function for use in other resources or as a reference for function configurations. * * > **Note:** This data source returns information about the latest version or alias specified by the `qualifier`. If no `qualifier` is provided, it returns information about the most recent published version, or `$LATEST` if no published version exists. * * ## Example Usage * * ### Basic Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.lambda.getFunction({ * functionName: "my-lambda-function", * }); * export const functionArn = example.then(example => example.arn); * ``` * * ### Using Function Alias * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.lambda.getFunction({ * functionName: "api-handler", * qualifier: "production", * }); * // Use in API Gateway integration * const exampleIntegration = new aws.apigateway.Integration("example", { * restApi: exampleAwsApiGatewayRestApi.id, * resourceId: exampleAwsApiGatewayResource.id, * httpMethod: exampleAwsApiGatewayMethod.httpMethod, * integrationHttpMethod: "POST", * type: "AWS_PROXY", * uri: example.then(example => example.invokeArn), * }); * ``` * * ### Function Configuration Reference * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * // Get existing function details * const reference = aws.lambda.getFunction({ * functionName: "existing-function", * }); * // Create new function with similar configuration * const example = new aws.lambda.Function("example", { * code: new pulumi.asset.FileArchive("new-function.zip"), * name: "new-function", * role: reference.then(reference => reference.role), * handler: reference.then(reference => reference.handler), * runtime: reference.then(reference => reference.runtime).apply((x) => aws.lambda.Runtime[x]), * memorySize: reference.then(reference => reference.memorySize), * timeout: reference.then(reference => reference.timeout), * architectures: reference.then(reference => reference.architectures), * vpcConfig: { * subnetIds: reference.then(reference => reference.vpcConfig?.subnetIds), * securityGroupIds: reference.then(reference => reference.vpcConfig?.securityGroupIds), * }, * environment: { * variables: reference.then(reference => reference.environment?.variables), * }, * }); * ``` * * ### Function Version Management * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * // Get details about specific version * const version = aws.lambda.getFunction({ * functionName: "my-function", * qualifier: "3", * }); * // Get details about latest version * const latest = aws.lambda.getFunction({ * functionName: "my-function", * qualifier: "$LATEST", * }); * export const versionComparison = { * specificVersion: version.then(version => version.version), * latestVersion: latest.then(latest => latest.version), * codeDifference: Promise.all([version, latest]).then(([version, latest]) => version.codeSha256 != latest.codeSha256), * }; * ``` */ function getFunctionOutput(args, opts) { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("aws:lambda/getFunction:getFunction", { "functionName": args.functionName, "qualifier": args.qualifier, "region": args.region, "tags": args.tags, }, opts); } exports.getFunctionOutput = getFunctionOutput; //# sourceMappingURL=getFunction.js.map