getCodeSigningConfig function
Future<GetCodeSigningConfigResult>
getCodeSigningConfig(
- GetCodeSigningConfigArgs args, {
- InvokeOptions? options,
Provides details about an AWS Lambda Code Signing Config. Use this data source to retrieve information about an existing code signing configuration for Lambda functions to ensure code integrity and authenticity.
For information about Lambda code signing configurations and how to use them, see configuring code signing for Lambda functions.
Example Usage
Basic Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = aws.lambda.getCodeSigningConfig({
arn: "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b",
});
export const configDetails = {
configId: example.then(example => example.configId),
description: example.then(example => example.description),
policy: example.then(example => example.policies?.[0]?.untrustedArtifactOnDeployment),
};
import pulumi
import pulumi_aws as aws
example = aws.lambda_.get_code_signing_config(arn="arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b")
pulumi.export("configDetails", {
"configId": example.config_id,
"description": example.description,
"policy": example.policies[0].untrusted_artifact_on_deployment,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = Aws.Lambda.GetCodeSigningConfig.Invoke(new()
{
Arn = "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b",
});
return new Dictionary<string, object?>
{
["configDetails"] =
{
{ "configId", example.Apply(getCodeSigningConfigResult => getCodeSigningConfigResult.ConfigId) },
{ "description", example.Apply(getCodeSigningConfigResult => getCodeSigningConfigResult.Description) },
{ "policy", example.Apply(getCodeSigningConfigResult => getCodeSigningConfigResult.Policies[0]?.UntrustedArtifactOnDeployment) },
},
};
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lambda"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := lambda.LookupCodeSigningConfig(ctx, &lambda.LookupCodeSigningConfigArgs{
Arn: "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b",
}, nil)
if err != nil {
return err
}
ctx.Export("configDetails", pulumi.StringMap{
"configId": example.ConfigId,
"description": example.Description,
"policy": example.Policies[0].UntrustedArtifactOnDeployment,
})
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
data "aws_lambda_getcodesigningconfig" "example" {
arn = "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b"
}
output "configDetails" {
value = {
"configId" = data.aws_lambda_getcodesigningconfig.example.config_id
"description" = data.aws_lambda_getcodesigningconfig.example.description
"policy" = data.aws_lambda_getcodesigningconfig.example.policies[0].untrusted_artifact_on_deployment
}
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lambda.LambdaFunctions;
import com.pulumi.aws.lambda.inputs.GetCodeSigningConfigArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var example = LambdaFunctions.getCodeSigningConfig(GetCodeSigningConfigArgs.builder()
.arn("arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b")
.build());
ctx.export("configDetails", Map.ofEntries(
Map.entry("configId", example.configId()),
Map.entry("description", example.description()),
Map.entry("policy", example.policies()[0].untrustedArtifactOnDeployment())
));
}
}
variables:
example:
fn::invoke:
function: aws:lambda:getCodeSigningConfig
arguments:
arn: arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b
outputs:
configDetails:
configId: ${example.configId}
description: ${example.description}
policy: ${example.policies[0].untrustedArtifactOnDeployment}
Use in Lambda Function
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
// Get existing code signing configuration
const securityConfig = aws.lambda.getCodeSigningConfig({
arn: codeSigningConfigArn,
});
// Create Lambda function with code signing
const example = new aws.lambda.Function("example", {
code: new pulumi.asset.FileArchive("function.zip"),
name: "secure-function",
role: lambdaRole.arn,
handler: "index.handler",
runtime: aws.lambda.Runtime.NodeJS24dX,
codeSigningConfigArn: securityConfig.then(securityConfig => securityConfig.arn),
tags: {
Environment: "production",
Security: "code-signed",
},
});
import pulumi
import pulumi_aws as aws
# Get existing code signing configuration
security_config = aws.lambda_.get_code_signing_config(arn=code_signing_config_arn)
# Create Lambda function with code signing
example = aws.lambda_.Function("example",
code=pulumi.FileArchive("function.zip"),
name="secure-function",
role=lambda_role["arn"],
handler="index.handler",
runtime=aws.lambda_.Runtime.NODE_JS24D_X,
code_signing_config_arn=security_config.arn,
tags={
"Environment": "production",
"Security": "code-signed",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
// Get existing code signing configuration
var securityConfig = Aws.Lambda.GetCodeSigningConfig.Invoke(new()
{
Arn = codeSigningConfigArn,
});
// Create Lambda function with code signing
var example = new Aws.Lambda.Function("example", new()
{
Code = new FileArchive("function.zip"),
Name = "secure-function",
Role = lambdaRole.Arn,
Handler = "index.handler",
Runtime = Aws.Lambda.Runtime.NodeJS24dX,
CodeSigningConfigArn = securityConfig.Apply(getCodeSigningConfigResult => getCodeSigningConfigResult.Arn),
Tags =
{
{ "Environment", "production" },
{ "Security", "code-signed" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lambda"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Get existing code signing configuration
securityConfig, err := lambda.LookupCodeSigningConfig(ctx, &lambda.LookupCodeSigningConfigArgs{
Arn: codeSigningConfigArn,
}, nil)
if err != nil {
return err
}
// Create Lambda function with code signing
_, err = lambda.NewFunction(ctx, "example", &lambda.FunctionArgs{
Code: pulumi.NewFileArchive("function.zip"),
Name: pulumi.String("secure-function"),
Role: pulumi.Any(lambdaRole.Arn),
Handler: pulumi.String("index.handler"),
Runtime: pulumi.String(lambda.RuntimeNodeJS24dX),
CodeSigningConfigArn: pulumi.String(securityConfig.Arn),
Tags: pulumi.StringMap{
"Environment": pulumi.String("production"),
"Security": pulumi.String("code-signed"),
},
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
data "aws_lambda_getcodesigningconfig" "securityConfig" {
arn = codeSigningConfigArn
}
# Create Lambda function with code signing
resource "aws_lambda_function" "example" {
code = fileArchive("function.zip")
name = "secure-function"
role = lambdaRole.arn
handler = "index.handler"
runtime = "nodejs24.x"
code_signing_config_arn = data.aws_lambda_getcodesigningconfig.securityConfig.arn
tags = {
"Environment" = "production"
"Security" = "code-signed"
}
}
# Get existing code signing configuration
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lambda.LambdaFunctions;
import com.pulumi.aws.lambda.inputs.GetCodeSigningConfigArgs;
import com.pulumi.aws.lambda.Function;
import com.pulumi.aws.lambda.FunctionArgs;
import com.pulumi.asset.FileArchive;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Get existing code signing configuration
final var securityConfig = LambdaFunctions.getCodeSigningConfig(GetCodeSigningConfigArgs.builder()
.arn(codeSigningConfigArn)
.build());
// Create Lambda function with code signing
var example = new Function("example", FunctionArgs.builder()
.code(new FileArchive("function.zip"))
.name("secure-function")
.role(lambdaRole.arn())
.handler("index.handler")
.runtime("nodejs24.x")
.codeSigningConfigArn(securityConfig.arn())
.tags(Map.ofEntries(
Map.entry("Environment", "production"),
Map.entry("Security", "code-signed")
))
.build());
}
}
resources:
# Create Lambda function with code signing
example:
type: aws:lambda:Function
properties:
code:
fn::fileArchive: function.zip
name: secure-function
role: ${lambdaRole.arn}
handler: index.handler
runtime: nodejs24.x
codeSigningConfigArn: ${securityConfig.arn}
tags:
Environment: production
Security: code-signed
variables:
# Get existing code signing configuration
securityConfig:
fn::invoke:
function: aws:lambda:getCodeSigningConfig
arguments:
arn: ${codeSigningConfigArn}
Validate Signing Profiles
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
export = async () => {
const example = await aws.lambda.getCodeSigningConfig({
arn: codeSigningConfigArn,
});
const allowedProfiles = example.allowedPublishers?.[0]?.signingProfileVersionArns;
const requiredProfile = "arn:aws:signer:us-west-2:123456789012:/signing-profiles/MyProfile";
const profileAllowed = (await std.contains({
input: allowedProfiles,
element: requiredProfile,
})).result;
// Conditional resource creation based on signing profile validation
const conditional: aws.lambda.Function[] = [];
for (let range = 0; range < (profileAllowed ? 1 : 0); range++) {
conditional.push(new aws.lambda.Function(`conditional-${range}`, {
code: new pulumi.asset.FileArchive("function.zip"),
name: "conditional-function",
role: lambdaRole.arn,
handler: "index.handler",
runtime: aws.lambda.Runtime.Python3d12,
codeSigningConfigArn: example.arn,
}));
}
return {
deploymentStatus: {
profileAllowed: profileAllowed,
functionCreated: profileAllowed,
message: profileAllowed ? "Function deployed with valid signing profile" : "Deployment blocked - signing profile not allowed",
},
};
}
import pulumi
from typing import Any
import pulumi_aws as aws
import pulumi_std as std
example = aws.lambda_.get_code_signing_config(arn=code_signing_config_arn)
allowed_profiles = example.allowed_publishers[0].signing_profile_version_arns
required_profile = "arn:aws:signer:us-west-2:123456789012:/signing-profiles/MyProfile"
profile_allowed = std.contains(input=allowed_profiles,
element=required_profile).result
# Conditional resource creation based on signing profile validation
conditional: list[aws.lambda_.Function] = []
for conditional_range in [{"value": i} for i in range(0, 1 if profile_allowed else 0)]:
conditional.append(aws.lambda_.Function(f"conditional-{conditional_range['value']}",
code=pulumi.FileArchive("function.zip"),
name="conditional-function",
role=lambda_role["arn"],
handler="index.handler",
runtime=aws.lambda_.Runtime.PYTHON3D12,
code_signing_config_arn=example.arn))
pulumi.export("deploymentStatus", {
"profileAllowed": profile_allowed,
"functionCreated": profile_allowed,
"message": "Function deployed with valid signing profile" if profile_allowed else "Deployment blocked - signing profile not allowed",
})
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(async() =>
{
var example = await Aws.Lambda.GetCodeSigningConfig.InvokeAsync(new()
{
Arn = codeSigningConfigArn,
});
var allowedProfiles = example.AllowedPublishers[0]?.SigningProfileVersionArns;
var requiredProfile = "arn:aws:signer:us-west-2:123456789012:/signing-profiles/MyProfile";
var profileAllowed = (await Std.Contains.InvokeAsync(new()
{
Input = allowedProfiles,
Element = requiredProfile,
})).Result;
// Conditional resource creation based on signing profile validation
var conditional = new List<Aws.Lambda.Function>();
for (var rangeIndex = 0; rangeIndex < profileAllowed ? 1 : 0; rangeIndex++)
{
var range = new { Value = rangeIndex };
conditional.Add(new Aws.Lambda.Function($"conditional-{range.Value}", new()
{
Code = new FileArchive("function.zip"),
Name = "conditional-function",
Role = lambdaRole.Arn,
Handler = "index.handler",
Runtime = Aws.Lambda.Runtime.Python3d12,
CodeSigningConfigArn = example.Arn,
}));
}
return new Dictionary<string, object?>
{
["deploymentStatus"] =
{
{ "profileAllowed", profileAllowed },
{ "functionCreated", profileAllowed },
{ "message", profileAllowed ? "Function deployed with valid signing profile" : "Deployment blocked - signing profile not allowed" },
},
};
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lambda"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := lambda.LookupCodeSigningConfig(ctx, &lambda.LookupCodeSigningConfigArgs{
Arn: codeSigningConfigArn,
}, nil)
if err != nil {
return err
}
allowedProfiles := example.AllowedPublishers[0].SigningProfileVersionArns
requiredProfile := "arn:aws:signer:us-west-2:123456789012:/signing-profiles/MyProfile"
profileAllowed := std.Contains(ctx, &std.ContainsArgs{
Input: allowedProfiles,
Element: requiredProfile,
}, nil).Result
// Conditional resource creation based on signing profile validation
var tmp0 int
if pulumi.Bool(profileAllowed) {
tmp0 = 1
} else {
tmp0 = 0
}
var conditional []*lambda.Function
for index := 0; index < tmp0; index++ {
key0 := index
__res, err := lambda.NewFunction(ctx, fmt.Sprintf("conditional-%v", key0), &lambda.FunctionArgs{
Code: pulumi.NewFileArchive("function.zip"),
Name: pulumi.String("conditional-function"),
Role: pulumi.Any(lambdaRole.Arn),
Handler: pulumi.String("index.handler"),
Runtime: pulumi.String(lambda.RuntimePython3d12),
CodeSigningConfigArn: pulumi.String(example.Arn),
})
if err != nil {
return err
}
conditional = append(conditional, __res)
}
var tmp1 string
if pulumi.Bool(profileAllowed) {
tmp1 = "Function deployed with valid signing profile"
} else {
tmp1 = "Deployment blocked - signing profile not allowed"
}
ctx.Export("deploymentStatus", pulumi.Map{
"profileAllowed": profileAllowed,
"functionCreated": profileAllowed,
"message": pulumi.String(tmp1),
})
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
std = {
source = "pulumi/std"
}
}
}
data "aws_lambda_getcodesigningconfig" "example" {
arn = codeSigningConfigArn
}
# Conditional resource creation based on signing profile validation
resource "aws_lambda_function" "conditional" {
count = local.profileAllowed ? 1 : 0
code = fileArchive("function.zip")
name = "conditional-function"
role = lambdaRole.arn
handler = "index.handler"
runtime = "python3.12"
code_signing_config_arn = data.aws_lambda_getcodesigningconfig.example.arn
}
locals {
allowedProfiles = data.aws_lambda_getcodesigningconfig.example.allowed_publishers[0].signing_profile_version_arns
}
locals {
requiredProfile = "arn:aws:signer:us-west-2:123456789012:/signing-profiles/MyProfile"
}
locals {
profileAllowed = contains(local.allowedProfiles, local.requiredProfile)
}
output "deploymentStatus" {
value = {
"profileAllowed" = local.profileAllowed
"functionCreated" = local.profileAllowed
"message" = local.profileAllowed ? "Function deployed with valid signing profile" : "Deployment blocked - signing profile not allowed"
}
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lambda.LambdaFunctions;
import com.pulumi.aws.lambda.inputs.GetCodeSigningConfigArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.ContainsArgs;
import com.pulumi.aws.lambda.Function;
import com.pulumi.aws.lambda.FunctionArgs;
import com.pulumi.asset.FileArchive;
import com.pulumi.codegen.internal.KeyedValue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var example = LambdaFunctions.getCodeSigningConfig(GetCodeSigningConfigArgs.builder()
.arn(codeSigningConfigArn)
.build());
final var allowedProfiles = example.allowedPublishers()[0].signingProfileVersionArns();
final var requiredProfile = "arn:aws:signer:us-west-2:123456789012:/signing-profiles/MyProfile";
final var profileAllowed = StdFunctions.contains(ContainsArgs.builder()
.input(allowedProfiles)
.element(requiredProfile)
.build()).result();
// Conditional resource creation based on signing profile validation
for (var i = 0; i < profileAllowed ? 1 : 0; i++) {
new Function("conditional-" + i, FunctionArgs.builder()
.code(new FileArchive("function.zip"))
.name("conditional-function")
.role(lambdaRole.arn())
.handler("index.handler")
.runtime("python3.12")
.codeSigningConfigArn(example.arn())
.build());
}
ctx.export("deploymentStatus", Map.ofEntries(
Map.entry("profileAllowed", profileAllowed),
Map.entry("functionCreated", profileAllowed),
Map.entry("message", profileAllowed ? "Function deployed with valid signing profile" : "Deployment blocked - signing profile not allowed")
));
}
}
Multi-Environment Configuration
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
// Production code signing config
const prod = aws.lambda.getCodeSigningConfig({
arn: "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-prod-123",
});
// Development code signing config
const dev = aws.lambda.getCodeSigningConfig({
arn: "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-dev-456",
});
const prodPolicy = prod.then(prod => prod.policies?.[0]?.untrustedArtifactOnDeployment);
const devPolicy = dev.then(dev => dev.policies?.[0]?.untrustedArtifactOnDeployment);
const configComparison = {
prodEnforcement: prodPolicy,
devEnforcement: devPolicy,
policiesMatch: Promise.all([prodPolicy, devPolicy]).then(([prodPolicy, devPolicy]) => prodPolicy == devPolicy),
};
export const environmentComparison = configComparison;
import pulumi
import pulumi_aws as aws
# Production code signing config
prod = aws.lambda_.get_code_signing_config(arn="arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-prod-123")
# Development code signing config
dev = aws.lambda_.get_code_signing_config(arn="arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-dev-456")
prod_policy = prod.policies[0].untrusted_artifact_on_deployment
dev_policy = dev.policies[0].untrusted_artifact_on_deployment
config_comparison = {
"prodEnforcement": prod_policy,
"devEnforcement": dev_policy,
"policiesMatch": prod_policy == dev_policy,
}
pulumi.export("environmentComparison", config_comparison)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
// Production code signing config
var prod = Aws.Lambda.GetCodeSigningConfig.Invoke(new()
{
Arn = "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-prod-123",
});
// Development code signing config
var dev = Aws.Lambda.GetCodeSigningConfig.Invoke(new()
{
Arn = "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-dev-456",
});
var prodPolicy = prod.Apply(getCodeSigningConfigResult => getCodeSigningConfigResult.Policies[0]?.UntrustedArtifactOnDeployment);
var devPolicy = dev.Apply(getCodeSigningConfigResult => getCodeSigningConfigResult.Policies[0]?.UntrustedArtifactOnDeployment);
var configComparison =
{
{ "prodEnforcement", prodPolicy },
{ "devEnforcement", devPolicy },
{ "policiesMatch", Output.Tuple(prodPolicy, devPolicy).Apply(values =>
{
var prodPolicy = values.Item1;
var devPolicy = values.Item2;
return prodPolicy == devPolicy;
}) },
};
return new Dictionary<string, object?>
{
["environmentComparison"] = configComparison,
};
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lambda"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Production code signing config
prod, err := lambda.LookupCodeSigningConfig(ctx, &lambda.LookupCodeSigningConfigArgs{
Arn: "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-prod-123",
}, nil)
if err != nil {
return err
}
// Development code signing config
dev, err := lambda.LookupCodeSigningConfig(ctx, &lambda.LookupCodeSigningConfigArgs{
Arn: "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-dev-456",
}, nil)
if err != nil {
return err
}
prodPolicy := prod.Policies[0].UntrustedArtifactOnDeployment
devPolicy := dev.Policies[0].UntrustedArtifactOnDeployment
configComparison := map[string]interface{}{
"prodEnforcement": prodPolicy,
"devEnforcement": devPolicy,
"policiesMatch": prodPolicy == devPolicy,
}
ctx.Export("environmentComparison", pulumi.ToMap(configComparison))
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
data "aws_lambda_getcodesigningconfig" "prod" {
arn = "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-prod-123"
}
data "aws_lambda_getcodesigningconfig" "dev" {
arn = "arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-dev-456"
}
# Production code signing config
# Development code signing config
locals {
prodPolicy = data.aws_lambda_getcodesigningconfig.prod.policies[0].untrusted_artifact_on_deployment
}
locals {
devPolicy = data.aws_lambda_getcodesigningconfig.dev.policies[0].untrusted_artifact_on_deployment
}
locals {
configComparison = {
"prodEnforcement" = local.prodPolicy
"devEnforcement" = local.devPolicy
"policiesMatch" = local.prodPolicy == local.devPolicy
}
}
output "environmentComparison" {
value = local.configComparison
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lambda.LambdaFunctions;
import com.pulumi.aws.lambda.inputs.GetCodeSigningConfigArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Production code signing config
final var prod = LambdaFunctions.getCodeSigningConfig(GetCodeSigningConfigArgs.builder()
.arn("arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-prod-123")
.build());
// Development code signing config
final var dev = LambdaFunctions.getCodeSigningConfig(GetCodeSigningConfigArgs.builder()
.arn("arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-dev-456")
.build());
final var prodPolicy = prod.policies()[0].untrustedArtifactOnDeployment();
final var devPolicy = dev.policies()[0].untrustedArtifactOnDeployment();
final var configComparison = Map.ofEntries(
Map.entry("prodEnforcement", prodPolicy),
Map.entry("devEnforcement", devPolicy),
Map.entry("policiesMatch", prodPolicy == devPolicy)
);
ctx.export("environmentComparison", configComparison);
}
}
args Arguments passed to this invoke. Arguments for getCodeSigningConfig.
options Invoke options controlling this call.
Implementation
Future<GetCodeSigningConfigResult> getCodeSigningConfig(
GetCodeSigningConfigArgs args, {
pulumi.InvokeOptions? options,
}) async {
final deployment = pulumi.Deployment.instance;
final result = await deployment.invoke<Map<String, dynamic>>(
'aws:lambda/getCodeSigningConfig:getCodeSigningConfig',
args.toMap(),
options: pulumi.toDeploymentInvokeOptions(options),
);
return GetCodeSigningConfigResult.fromMap(result);
}