UNPKG

@aws-cdk/aws-ecs

Version:

The CDK Construct Library for AWS::ECS

79 lines 9.45 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContainerImage = void 0; const jsiiDeprecationWarnings = require("../.warnings.jsii.js"); const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_ecr_assets_1 = require("@aws-cdk/aws-ecr-assets"); /** * Constructs for types of container images */ class ContainerImage { /** * Reference an image on DockerHub or another online registry */ static fromRegistry(name, props = {}) { jsiiDeprecationWarnings._aws_cdk_aws_ecs_RepositoryImageProps(props); return new repository_1.RepositoryImage(name, props); } /** * Reference an image in an ECR repository */ static fromEcrRepository(repository, tag = 'latest') { return new ecr_1.EcrImage(repository, tag); } /** * Reference an image that's constructed directly from sources on disk. * * If you already have a `DockerImageAsset` instance, you can use the * `ContainerImage.fromDockerImageAsset` method instead. * * @param directory The directory containing the Dockerfile */ static fromAsset(directory, props = {}) { jsiiDeprecationWarnings._aws_cdk_aws_ecs_AssetImageProps(props); return new asset_image_1.AssetImage(directory, props); } /** * Use an existing `DockerImageAsset` for this container image. * * @param asset The `DockerImageAsset` to use for this container definition. */ static fromDockerImageAsset(asset) { return { bind(_scope, containerDefinition) { asset.repository.grantPull(containerDefinition.taskDefinition.obtainExecutionRole()); return { imageName: asset.imageUri, }; }, }; } /** * Use an existing tarball for this container image. * * Use this method if the container image has already been created by another process (e.g. jib) * and you want to add it as a container image asset. * * @param tarballFile Absolute path to the tarball. You can use language-specific idioms (such as `__dirname` in Node.js) * to create an absolute path based on the current script running directory. */ static fromTarball(tarballFile) { return { bind(scope, containerDefinition) { const asset = new aws_ecr_assets_1.TarballImageAsset(scope, 'Tarball', { tarballFile }); asset.repository.grantPull(containerDefinition.taskDefinition.obtainExecutionRole()); return { imageName: asset.imageUri, }; }, }; } } exports.ContainerImage = ContainerImage; _a = JSII_RTTI_SYMBOL_1; ContainerImage[_a] = { fqn: "@aws-cdk/aws-ecs.ContainerImage", version: "1.149.0" }; const asset_image_1 = require("./images/asset-image"); const ecr_1 = require("./images/ecr"); const repository_1 = require("./images/repository"); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udGFpbmVyLWltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDREQUE4RTtBQVE5RTs7R0FFRztBQUNILE1BQXNCLGNBQWM7SUFDbEM7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVksRUFBRSxRQUE4QixFQUFFOztRQUN2RSxPQUFPLElBQUksNEJBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDekM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxVQUEyQixFQUFFLE1BQWMsUUFBUTtRQUNqRixPQUFPLElBQUksY0FBUSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUN0QztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQWlCLEVBQUUsUUFBeUIsRUFBRTs7UUFDcEUsT0FBTyxJQUFJLHdCQUFVLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3pDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUF1QjtRQUN4RCxPQUFPO1lBQ0wsSUFBSSxDQUFDLE1BQXFCLEVBQUUsbUJBQXdDO2dCQUNsRSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRixPQUFPO29CQUNMLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUTtpQkFDMUIsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDO0tBQ0g7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBbUI7UUFDM0MsT0FBTztZQUNMLElBQUksQ0FBQyxLQUFvQixFQUFFLG1CQUF3QztnQkFFakUsTUFBTSxLQUFLLEdBQUcsSUFBSSxrQ0FBaUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDdkUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztnQkFFckYsT0FBTztvQkFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVE7aUJBQzFCLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQztLQUNIOztBQWhFSCx3Q0FzRUM7OztBQWlCRCxzREFBbUU7QUFDbkUsc0NBQXdDO0FBQ3hDLG9EQUE0RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGVjciBmcm9tICdAYXdzLWNkay9hd3MtZWNyJztcbmltcG9ydCB7IERvY2tlckltYWdlQXNzZXQsIFRhcmJhbGxJbWFnZUFzc2V0IH0gZnJvbSAnQGF3cy1jZGsvYXdzLWVjci1hc3NldHMnO1xuaW1wb3J0IHsgQ29udGFpbmVyRGVmaW5pdGlvbiB9IGZyb20gJy4vY29udGFpbmVyLWRlZmluaXRpb24nO1xuaW1wb3J0IHsgQ2ZuVGFza0RlZmluaXRpb24gfSBmcm9tICcuL2Vjcy5nZW5lcmF0ZWQnO1xuXG4vLyB2MiAtIGtlZXAgdGhpcyBpbXBvcnQgYXMgYSBzZXBhcmF0ZSBzZWN0aW9uIHRvIHJlZHVjZSBtZXJnZSBjb25mbGljdCB3aGVuIGZvcndhcmQgbWVyZ2luZyB3aXRoIHRoZSB2MiBicmFuY2guXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmltcG9ydCB7IENvbnN0cnVjdCBhcyBDb3JlQ29uc3RydWN0IH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbi8qKlxuICogQ29uc3RydWN0cyBmb3IgdHlwZXMgb2YgY29udGFpbmVyIGltYWdlc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29udGFpbmVySW1hZ2Uge1xuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGltYWdlIG9uIERvY2tlckh1YiBvciBhbm90aGVyIG9ubGluZSByZWdpc3RyeVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUmVnaXN0cnkobmFtZTogc3RyaW5nLCBwcm9wczogUmVwb3NpdG9yeUltYWdlUHJvcHMgPSB7fSkge1xuICAgIHJldHVybiBuZXcgUmVwb3NpdG9yeUltYWdlKG5hbWUsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgYW4gaW1hZ2UgaW4gYW4gRUNSIHJlcG9zaXRvcnlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUVjclJlcG9zaXRvcnkocmVwb3NpdG9yeTogZWNyLklSZXBvc2l0b3J5LCB0YWc6IHN0cmluZyA9ICdsYXRlc3QnKSB7XG4gICAgcmV0dXJuIG5ldyBFY3JJbWFnZShyZXBvc2l0b3J5LCB0YWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSBhbiBpbWFnZSB0aGF0J3MgY29uc3RydWN0ZWQgZGlyZWN0bHkgZnJvbSBzb3VyY2VzIG9uIGRpc2suXG4gICAqXG4gICAqIElmIHlvdSBhbHJlYWR5IGhhdmUgYSBgRG9ja2VySW1hZ2VBc3NldGAgaW5zdGFuY2UsIHlvdSBjYW4gdXNlIHRoZVxuICAgKiBgQ29udGFpbmVySW1hZ2UuZnJvbURvY2tlckltYWdlQXNzZXRgIG1ldGhvZCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAcGFyYW0gZGlyZWN0b3J5IFRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgRG9ja2VyZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXNzZXQoZGlyZWN0b3J5OiBzdHJpbmcsIHByb3BzOiBBc3NldEltYWdlUHJvcHMgPSB7fSkge1xuICAgIHJldHVybiBuZXcgQXNzZXRJbWFnZShkaXJlY3RvcnksIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYW4gZXhpc3RpbmcgYERvY2tlckltYWdlQXNzZXRgIGZvciB0aGlzIGNvbnRhaW5lciBpbWFnZS5cbiAgICpcbiAgICogQHBhcmFtIGFzc2V0IFRoZSBgRG9ja2VySW1hZ2VBc3NldGAgdG8gdXNlIGZvciB0aGlzIGNvbnRhaW5lciBkZWZpbml0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRG9ja2VySW1hZ2VBc3NldChhc3NldDogRG9ja2VySW1hZ2VBc3NldCk6IENvbnRhaW5lckltYWdlIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmluZChfc2NvcGU6IENvcmVDb25zdHJ1Y3QsIGNvbnRhaW5lckRlZmluaXRpb246IENvbnRhaW5lckRlZmluaXRpb24pOiBDb250YWluZXJJbWFnZUNvbmZpZyB7XG4gICAgICAgIGFzc2V0LnJlcG9zaXRvcnkuZ3JhbnRQdWxsKGNvbnRhaW5lckRlZmluaXRpb24udGFza0RlZmluaXRpb24ub2J0YWluRXhlY3V0aW9uUm9sZSgpKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbWFnZU5hbWU6IGFzc2V0LmltYWdlVXJpLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBhbiBleGlzdGluZyB0YXJiYWxsIGZvciB0aGlzIGNvbnRhaW5lciBpbWFnZS5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGlmIHRoZSBjb250YWluZXIgaW1hZ2UgaGFzIGFscmVhZHkgYmVlbiBjcmVhdGVkIGJ5IGFub3RoZXIgcHJvY2VzcyAoZS5nLiBqaWIpXG4gICAqIGFuZCB5b3Ugd2FudCB0byBhZGQgaXQgYXMgYSBjb250YWluZXIgaW1hZ2UgYXNzZXQuXG4gICAqXG4gICAqIEBwYXJhbSB0YXJiYWxsRmlsZSBBYnNvbHV0ZSBwYXRoIHRvIHRoZSB0YXJiYWxsLiBZb3UgY2FuIHVzZSBsYW5ndWFnZS1zcGVjaWZpYyBpZGlvbXMgKHN1Y2ggYXMgYF9fZGlybmFtZWAgaW4gTm9kZS5qcylcbiAgICogICAgICAgICAgICAgICAgICAgIHRvIGNyZWF0ZSBhbiBhYnNvbHV0ZSBwYXRoIGJhc2VkIG9uIHRoZSBjdXJyZW50IHNjcmlwdCBydW5uaW5nIGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhcmJhbGwodGFyYmFsbEZpbGU6IHN0cmluZyk6IENvbnRhaW5lckltYWdlIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmluZChzY29wZTogQ29yZUNvbnN0cnVjdCwgY29udGFpbmVyRGVmaW5pdGlvbjogQ29udGFpbmVyRGVmaW5pdGlvbik6IENvbnRhaW5lckltYWdlQ29uZmlnIHtcblxuICAgICAgICBjb25zdCBhc3NldCA9IG5ldyBUYXJiYWxsSW1hZ2VBc3NldChzY29wZSwgJ1RhcmJhbGwnLCB7IHRhcmJhbGxGaWxlIH0pO1xuICAgICAgICBhc3NldC5yZXBvc2l0b3J5LmdyYW50UHVsbChjb250YWluZXJEZWZpbml0aW9uLnRhc2tEZWZpbml0aW9uLm9idGFpbkV4ZWN1dGlvblJvbGUoKSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbWFnZU5hbWU6IGFzc2V0LmltYWdlVXJpLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBpbWFnZSBpcyB1c2VkIGJ5IGEgQ29udGFpbmVyRGVmaW5pdGlvblxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQoc2NvcGU6IENvcmVDb25zdHJ1Y3QsIGNvbnRhaW5lckRlZmluaXRpb246IENvbnRhaW5lckRlZmluaXRpb24pOiBDb250YWluZXJJbWFnZUNvbmZpZztcbn1cblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBjb250YWluZXIgaW1hZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVySW1hZ2VDb25maWcge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjcmVkZW50aWFscyB1c2VkIHRvIGFjY2VzcyB0aGUgaW1hZ2UgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlDcmVkZW50aWFscz86IENmblRhc2tEZWZpbml0aW9uLlJlcG9zaXRvcnlDcmVkZW50aWFsc1Byb3BlcnR5O1xufVxuXG5pbXBvcnQgeyBBc3NldEltYWdlLCBBc3NldEltYWdlUHJvcHMgfSBmcm9tICcuL2ltYWdlcy9hc3NldC1pbWFnZSc7XG5pbXBvcnQgeyBFY3JJbWFnZSB9IGZyb20gJy4vaW1hZ2VzL2Vjcic7XG5pbXBvcnQgeyBSZXBvc2l0b3J5SW1hZ2UsIFJlcG9zaXRvcnlJbWFnZVByb3BzIH0gZnJvbSAnLi9pbWFnZXMvcmVwb3NpdG9yeSc7XG4iXX0=