dry-oil-69545
05/30/2024, 10:24 AMlambdaImage, err := dockerbuild.NewImage(ctx, "my-image", &dockerbuild.ImageArgs{
// Tag our image with our ECR repository's address.
Tags: pulumi.StringArray{
repo.RepositoryUrl.ApplyT(func(repositoryUrl string) (string, error) {
return fmt.Sprintf("%v:latest", repositoryUrl), nil
}).(pulumi.StringOutput),
},
Context: &dockerbuild.BuildContextArgs{
Location: pulumi.String(dpResizerLambdaDir),
},
// Use the pushed image as a cache source.
CacheFrom: dockerbuild.CacheFromArray{
&dockerbuild.CacheFromArgs{
Registry: &dockerbuild.CacheFromRegistryArgs{
Ref: repo.RepositoryUrl.ApplyT(func(repositoryUrl string) (string, error) {
return fmt.Sprintf("%v:latest", repositoryUrl), nil
}).(pulumi.StringOutput),
},
},
},
// Include an inline cache with our pushed image.
CacheTo: dockerbuild.CacheToArray{
&dockerbuild.CacheToArgs{
Inline: nil,
},
},
// Build a multi-platform image manifest for ARM and AMD.
Platforms: dockerbuild.PlatformArray{
dockerbuild.Platform_Linux_arm64,
},
// Push the final result to ECR.
Push: pulumi.Bool(true),
// Provide our ECR credentials.
Registries: dockerbuild.RegistryArray{
&dockerbuild.RegistryArgs{
Address: repo.RepositoryUrl,
Password: authToken.ApplyT(func(authToken ecr.GetAuthorizationTokenResult) (*string, error) {
return &authToken.Password, nil
}).(pulumi.StringPtrOutput),
Username: authToken.ApplyT(func(authToken ecr.GetAuthorizationTokenResult) (*string, error) {
return &authToken.UserName, nil
}).(pulumi.StringPtrOutput),
},
},
})
if err != nil {
return nil, err
}
// Set arguments for constructing the function resource.
args := &lambda.FunctionArgs{
PackageType: pulumi.String("Image"),
ImageUri: lambdaImage.?????
Role: role.Arn,
Architectures: pulumi.StringArray{
pulumi.String("arm64"),
},
Environment: &lambda.FunctionEnvironmentArgs{
Variables: pulumi.StringMap{
"DISTRIBUTION_BUCKET": distBucket.Bucket,
},
},
Timeout: <http://pulumi.Int|pulumi.Int>(30),
}
dry-oil-69545
05/30/2024, 11:27 AMimageURI := lambdaImage.Ref.ApplyT(func(ref string) (pulumi.StringOutput, error) {
return pulumi.Sprintf("%v:latest", repo.RepositoryUrl), nil
}).(pulumi.StringOutput) //creates dependancy on just setting lambda to @latest to occur after image is pushed
No matter how you like to participate in developer communities, Pulumi wants to meet you there. If you want to meet other Pulumi users to share use-cases and best practices, contribute code or documentation, see us at an event, or just tell a story about something cool you did with Pulumi, you are part of our community.
Powered by