@pulumi/aws
Version:
A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
214 lines • 8.1 kB
JavaScript
;
// *** 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