cdk-ecr-deployment 3.0.66 → 3.0.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/.jsii +56 -20
  2. package/.jsii.tabl.json +1 -1
  3. package/API.md +4 -0
  4. package/lambda/go.mod +6 -14
  5. package/lambda/go.sum +2295 -138
  6. package/lib/index.d.ts +16 -4
  7. package/lib/index.js +6 -6
  8. package/node_modules/@types/cacheable-request/node_modules/@types/node/README.md +1 -1
  9. package/node_modules/@types/cacheable-request/node_modules/@types/node/dns/promises.d.ts +25 -23
  10. package/node_modules/@types/cacheable-request/node_modules/@types/node/dns.d.ts +23 -23
  11. package/node_modules/@types/cacheable-request/node_modules/@types/node/events.d.ts +39 -1
  12. package/node_modules/@types/cacheable-request/node_modules/@types/node/globals.d.ts +1 -0
  13. package/node_modules/@types/cacheable-request/node_modules/@types/node/package.json +2 -2
  14. package/node_modules/@types/cacheable-request/node_modules/@types/node/worker_threads.d.ts +3 -0
  15. package/node_modules/@types/keyv/node_modules/@types/node/README.md +1 -1
  16. package/node_modules/@types/keyv/node_modules/@types/node/dns/promises.d.ts +25 -23
  17. package/node_modules/@types/keyv/node_modules/@types/node/dns.d.ts +23 -23
  18. package/node_modules/@types/keyv/node_modules/@types/node/events.d.ts +39 -1
  19. package/node_modules/@types/keyv/node_modules/@types/node/globals.d.ts +1 -0
  20. package/node_modules/@types/keyv/node_modules/@types/node/package.json +2 -2
  21. package/node_modules/@types/keyv/node_modules/@types/node/worker_threads.d.ts +3 -0
  22. package/node_modules/@types/responselike/node_modules/@types/node/README.md +1 -1
  23. package/node_modules/@types/responselike/node_modules/@types/node/dns/promises.d.ts +25 -23
  24. package/node_modules/@types/responselike/node_modules/@types/node/dns.d.ts +23 -23
  25. package/node_modules/@types/responselike/node_modules/@types/node/events.d.ts +39 -1
  26. package/node_modules/@types/responselike/node_modules/@types/node/globals.d.ts +1 -0
  27. package/node_modules/@types/responselike/node_modules/@types/node/package.json +2 -2
  28. package/node_modules/@types/responselike/node_modules/@types/node/worker_threads.d.ts +3 -0
  29. package/package.json +6 -6
package/.jsii CHANGED
@@ -3840,7 +3840,7 @@
3840
3840
  },
3841
3841
  "locationInModule": {
3842
3842
  "filename": "src/index.ts",
3843
- "line": 119
3843
+ "line": 133
3844
3844
  },
3845
3845
  "parameters": [
3846
3846
  {
@@ -3868,7 +3868,7 @@
3868
3868
  "kind": "class",
3869
3869
  "locationInModule": {
3870
3870
  "filename": "src/index.ts",
3871
- "line": 118
3871
+ "line": 132
3872
3872
  },
3873
3873
  "name": "DockerImageName",
3874
3874
  "properties": [
@@ -3881,7 +3881,7 @@
3881
3881
  "immutable": true,
3882
3882
  "locationInModule": {
3883
3883
  "filename": "src/index.ts",
3884
- "line": 120
3884
+ "line": 134
3885
3885
  },
3886
3886
  "name": "uri",
3887
3887
  "overrides": "cdk-ecr-deployment.IImageName",
@@ -3897,7 +3897,7 @@
3897
3897
  },
3898
3898
  "locationInModule": {
3899
3899
  "filename": "src/index.ts",
3900
- "line": 119
3900
+ "line": 133
3901
3901
  },
3902
3902
  "name": "creds",
3903
3903
  "optional": true,
@@ -3922,7 +3922,7 @@
3922
3922
  },
3923
3923
  "locationInModule": {
3924
3924
  "filename": "src/index.ts",
3925
- "line": 137
3925
+ "line": 151
3926
3926
  },
3927
3927
  "parameters": [
3928
3928
  {
@@ -3948,7 +3948,7 @@
3948
3948
  "kind": "class",
3949
3949
  "locationInModule": {
3950
3950
  "filename": "src/index.ts",
3951
- "line": 134
3951
+ "line": 148
3952
3952
  },
3953
3953
  "methods": [
3954
3954
  {
@@ -3957,7 +3957,7 @@
3957
3957
  },
3958
3958
  "locationInModule": {
3959
3959
  "filename": "src/index.ts",
3960
- "line": 199
3960
+ "line": 213
3961
3961
  },
3962
3962
  "name": "addToPrincipalPolicy",
3963
3963
  "parameters": [
@@ -4027,7 +4027,7 @@
4027
4027
  {
4028
4028
  "abstract": true,
4029
4029
  "docs": {
4030
- "default": "public.ecr.aws/sam/build-go1.x:latest",
4030
+ "default": "- public.ecr.aws/sam/build-go1.x:latest",
4031
4031
  "remarks": "Might be needed for local build if all images need to come from own registry.\n\nNote that image should use yum as a package manager and have golang available.",
4032
4032
  "stability": "stable",
4033
4033
  "summary": "Image to use to build Golang lambda for custom resource, if download fails or is not wanted."
@@ -4052,7 +4052,7 @@
4052
4052
  "immutable": true,
4053
4053
  "locationInModule": {
4054
4054
  "filename": "src/index.ts",
4055
- "line": 81
4055
+ "line": 95
4056
4056
  },
4057
4057
  "name": "environment",
4058
4058
  "optional": true,
@@ -4068,7 +4068,43 @@
4068
4068
  {
4069
4069
  "abstract": true,
4070
4070
  "docs": {
4071
- "default": "512",
4071
+ "default": "- bootstrap",
4072
+ "stability": "stable",
4073
+ "summary": "The name of the lambda handler."
4074
+ },
4075
+ "immutable": true,
4076
+ "locationInModule": {
4077
+ "filename": "src/index.ts",
4078
+ "line": 90
4079
+ },
4080
+ "name": "lambdaHandler",
4081
+ "optional": true,
4082
+ "type": {
4083
+ "primitive": "string"
4084
+ }
4085
+ },
4086
+ {
4087
+ "abstract": true,
4088
+ "docs": {
4089
+ "default": "- lambda.Runtime.PROVIDED_AL2023",
4090
+ "stability": "stable",
4091
+ "summary": "The lambda function runtime environment."
4092
+ },
4093
+ "immutable": true,
4094
+ "locationInModule": {
4095
+ "filename": "src/index.ts",
4096
+ "line": 83
4097
+ },
4098
+ "name": "lambdaRuntime",
4099
+ "optional": true,
4100
+ "type": {
4101
+ "fqn": "aws-cdk-lib.aws_lambda.Runtime"
4102
+ }
4103
+ },
4104
+ {
4105
+ "abstract": true,
4106
+ "docs": {
4107
+ "default": "- 512",
4072
4108
  "remarks": "If you are deploying large files, you will need to increase this number\naccordingly.",
4073
4109
  "stability": "stable",
4074
4110
  "summary": "The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket."
@@ -4129,7 +4165,7 @@
4129
4165
  {
4130
4166
  "abstract": true,
4131
4167
  "docs": {
4132
- "default": "None",
4168
+ "default": "- None",
4133
4169
  "stability": "stable",
4134
4170
  "summary": "The VPC network to place the deployment lambda handler in."
4135
4171
  },
@@ -4175,7 +4211,7 @@
4175
4211
  "kind": "interface",
4176
4212
  "locationInModule": {
4177
4213
  "filename": "src/index.ts",
4178
- "line": 84
4214
+ "line": 98
4179
4215
  },
4180
4216
  "name": "IImageName",
4181
4217
  "properties": [
@@ -4189,7 +4225,7 @@
4189
4225
  "immutable": true,
4190
4226
  "locationInModule": {
4191
4227
  "filename": "src/index.ts",
4192
- "line": 90
4228
+ "line": 104
4193
4229
  },
4194
4230
  "name": "uri",
4195
4231
  "type": {
@@ -4205,7 +4241,7 @@
4205
4241
  },
4206
4242
  "locationInModule": {
4207
4243
  "filename": "src/index.ts",
4208
- "line": 95
4244
+ "line": 109
4209
4245
  },
4210
4246
  "name": "creds",
4211
4247
  "optional": true,
@@ -4228,7 +4264,7 @@
4228
4264
  },
4229
4265
  "locationInModule": {
4230
4266
  "filename": "src/index.ts",
4231
- "line": 125
4267
+ "line": 139
4232
4268
  },
4233
4269
  "parameters": [
4234
4270
  {
@@ -4263,7 +4299,7 @@
4263
4299
  "kind": "class",
4264
4300
  "locationInModule": {
4265
4301
  "filename": "src/index.ts",
4266
- "line": 123
4302
+ "line": 137
4267
4303
  },
4268
4304
  "name": "S3ArchiveName",
4269
4305
  "properties": [
@@ -4276,7 +4312,7 @@
4276
4312
  "immutable": true,
4277
4313
  "locationInModule": {
4278
4314
  "filename": "src/index.ts",
4279
- "line": 131
4315
+ "line": 145
4280
4316
  },
4281
4317
  "name": "uri",
4282
4318
  "overrides": "cdk-ecr-deployment.IImageName",
@@ -4292,7 +4328,7 @@
4292
4328
  },
4293
4329
  "locationInModule": {
4294
4330
  "filename": "src/index.ts",
4295
- "line": 125
4331
+ "line": 139
4296
4332
  },
4297
4333
  "name": "creds",
4298
4334
  "optional": true,
@@ -4305,6 +4341,6 @@
4305
4341
  "symbolId": "src/index:S3ArchiveName"
4306
4342
  }
4307
4343
  },
4308
- "version": "3.0.66",
4309
- "fingerprint": "NhdqHnH4Z5LopfNcXz/GU6JSmRkTdRESecpe4NGlnj8="
4344
+ "version": "3.0.68",
4345
+ "fingerprint": "cIiRzouasa/VXo+X4O78eybX3M2Rjk8Y94d31KM9v60="
4310
4346
  }
package/.jsii.tabl.json CHANGED
@@ -1 +1 @@
1
- {"version":"2","toolVersion":"5.4.21","snippets":{"33850328020507963bc7787401a169bb06e49f6132425a6d1529815c1554c645":{"translations":{"python":{"source":"from aws_cdk.aws_ecr_assets import DockerImageAsset\n\n\nimage = DockerImageAsset(self, \"CDKDockerImage\",\n directory=path.join(__dirname, \"docker\")\n)\n\n# Copy from cdk docker image asset to another ECR.\necrdeploy.ECRDeployment(self, \"DeployDockerImage1\",\n src=ecrdeploy.DockerImageName(image.image_uri),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\")\n)\n\n# Copy from docker registry to ECR.\necrdeploy.ECRDeployment(self, \"DeployDockerImage2\",\n src=ecrdeploy.DockerImageName(\"nginx:latest\"),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\")\n)\n\n# Copy from private docker registry to ECR.\n# The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\necrdeploy.ECRDeployment(self, \"DeployDockerImage3\",\n src=ecrdeploy.DockerImageName(\"javacs3/nginx:latest\", \"username:password\"),\n # src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n # src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\")\n).add_to_principal_policy(iam.PolicyStatement(\n effect=iam.Effect.ALLOW,\n actions=[\"secretsmanager:GetSecretValue\"\n ],\n resources=[\"*\"]\n))","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.Ecr.Assets;\n\n\nvar image = new DockerImageAsset(this, \"CDKDockerImage\", new DockerImageAssetProps {\n Directory = Join(__dirname, \"docker\")\n});\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\nnew ECRDeployment(this, \"DeployDockerImage1\", new ECRDeploymentProps {\n Src = new DockerImageName(image.ImageUri),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\")\n});\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\nnew ECRDeployment(this, \"DeployDockerImage2\", new ECRDeploymentProps {\n Src = new DockerImageName(\"nginx:latest\"),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\")\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\nnew ECRDeployment(this, \"DeployDockerImage3\", new ECRDeploymentProps {\n Src = new DockerImageName(\"javacs3/nginx:latest\", \"username:password\"),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\")\n}).AddToPrincipalPolicy(new PolicyStatement(new PolicyStatementProps {\n Effect = Effect.ALLOW,\n Actions = new [] { \"secretsmanager:GetSecretValue\" },\n Resources = new [] { \"*\" }\n}));","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ecr.assets.DockerImageAsset;\n\n\nDockerImageAsset image = DockerImageAsset.Builder.create(this, \"CDKDockerImage\")\n .directory(join(__dirname, \"docker\"))\n .build();\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\nECRDeployment.Builder.create(this, \"DeployDockerImage1\")\n .src(new DockerImageName(image.getImageUri()))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\", Aws.ACCOUNT_ID)))\n .build();\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\nECRDeployment.Builder.create(this, \"DeployDockerImage2\")\n .src(new DockerImageName(\"nginx:latest\"))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\", Aws.ACCOUNT_ID)))\n .build();\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\nECRDeployment.Builder.create(this, \"DeployDockerImage3\")\n .src(new DockerImageName(\"javacs3/nginx:latest\", \"username:password\"))\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\", Aws.ACCOUNT_ID)))\n .build().addToPrincipalPolicy(PolicyStatement.Builder.create()\n .effect(Effect.ALLOW)\n .actions(List.of(\"secretsmanager:GetSecretValue\"))\n .resources(List.of(\"*\"))\n .build());","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\n\n\nimage := awscdk.NewDockerImageAsset(this, jsii.String(\"CDKDockerImage\"), &DockerImageAssetProps{\n\tDirectory: path.join(__dirname, jsii.String(\"docker\")),\n})\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage1\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(image.ImageUri),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\", cdk.Aws_ACCOUNT_ID())),\n})\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage2\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"nginx:latest\")),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\", cdk.Aws_ACCOUNT_ID())),\n})\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage3\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"javacs3/nginx:latest\"), jsii.String(\"username:password\")),\n\t// src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n\t// src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\", cdk.Aws_ACCOUNT_ID())),\n}).AddToPrincipalPolicy(awscdk.Aws_iam.NewPolicyStatement(&PolicyStatementProps{\n\tEffect: awscdk.*Aws_iam.Effect_ALLOW,\n\tActions: []*string{\n\t\tjsii.String(\"secretsmanager:GetSecretValue\"),\n\t},\n\tResources: []*string{\n\t\tjsii.String(\"*\"),\n\t},\n}))","version":"1"},"$":{"source":"import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';\n\nconst image = new DockerImageAsset(this, 'CDKDockerImage', {\n directory: path.join(__dirname, 'docker'),\n});\n\n// Copy from cdk docker image asset to another ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {\n src: new ecrdeploy.DockerImageName(image.imageUri),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),\n});\n\n// Copy from docker registry to ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {\n src: new ecrdeploy.DockerImageName('nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {\n src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),\n}).addToPrincipalPolicy(new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'secretsmanager:GetSecretValue',\n ],\n resources: ['*'],\n}));","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-ecr-deployment"},"field":{"field":"markdown","line":33}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.aws_ecr_assets.DockerImageAsset","aws-cdk-lib.aws_ecr_assets.DockerImageAsset#imageUri","aws-cdk-lib.aws_ecr_assets.DockerImageAssetProps","aws-cdk-lib.aws_iam.Effect","aws-cdk-lib.aws_iam.Effect#ALLOW","aws-cdk-lib.aws_iam.PolicyStatement","aws-cdk-lib.aws_iam.PolicyStatementProps","cdk-ecr-deployment.DockerImageName","cdk-ecr-deployment.ECRDeployment","cdk-ecr-deployment.ECRDeployment#addToPrincipalPolicy","cdk-ecr-deployment.ECRDeploymentProps","cdk-ecr-deployment.IImageName","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport * as path from 'node:path';\nimport { Construct } from 'constructs';\n import * as ecrdeploy from 'cdk-ecr-deployment';\nimport {\n Stack,\n aws_iam as iam,\n} from 'aws-cdk-lib';\nimport * as cdk from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst image = new DockerImageAsset(this, 'CDKDockerImage', {\n directory: path.join(__dirname, 'docker'),\n});\n\n// Copy from cdk docker image asset to another ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {\n src: new ecrdeploy.DockerImageName(image.imageUri),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),\n});\n\n// Copy from docker registry to ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {\n src: new ecrdeploy.DockerImageName('nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {\n src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),\n}).addToPrincipalPolicy(new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'secretsmanager:GetSecretValue',\n ],\n resources: ['*'],\n}));\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":11,"16":3,"18":3,"80":51,"110":4,"209":2,"210":5,"211":21,"213":2,"214":11,"228":3,"239":3,"243":1,"244":3,"260":1,"261":1,"272":1,"273":1,"275":1,"276":1,"303":10,"312":1},"fqnsFingerprint":"9d435b1b2c76010f8a75490e073b59c4d776eb93ca570ed78a292aecd169403d"}}}
1
+ {"version":"2","toolVersion":"5.4.22","snippets":{"33850328020507963bc7787401a169bb06e49f6132425a6d1529815c1554c645":{"translations":{"python":{"source":"from aws_cdk.aws_ecr_assets import DockerImageAsset\n\n\nimage = DockerImageAsset(self, \"CDKDockerImage\",\n directory=path.join(__dirname, \"docker\")\n)\n\n# Copy from cdk docker image asset to another ECR.\necrdeploy.ECRDeployment(self, \"DeployDockerImage1\",\n src=ecrdeploy.DockerImageName(image.image_uri),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\")\n)\n\n# Copy from docker registry to ECR.\necrdeploy.ECRDeployment(self, \"DeployDockerImage2\",\n src=ecrdeploy.DockerImageName(\"nginx:latest\"),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\")\n)\n\n# Copy from private docker registry to ECR.\n# The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\necrdeploy.ECRDeployment(self, \"DeployDockerImage3\",\n src=ecrdeploy.DockerImageName(\"javacs3/nginx:latest\", \"username:password\"),\n # src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n # src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest=ecrdeploy.DockerImageName(f\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\")\n).add_to_principal_policy(iam.PolicyStatement(\n effect=iam.Effect.ALLOW,\n actions=[\"secretsmanager:GetSecretValue\"\n ],\n resources=[\"*\"]\n))","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.Ecr.Assets;\n\n\nvar image = new DockerImageAsset(this, \"CDKDockerImage\", new DockerImageAssetProps {\n Directory = Join(__dirname, \"docker\")\n});\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\nnew ECRDeployment(this, \"DeployDockerImage1\", new ECRDeploymentProps {\n Src = new DockerImageName(image.ImageUri),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\")\n});\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\nnew ECRDeployment(this, \"DeployDockerImage2\", new ECRDeploymentProps {\n Src = new DockerImageName(\"nginx:latest\"),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\")\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\nnew ECRDeployment(this, \"DeployDockerImage3\", new ECRDeploymentProps {\n Src = new DockerImageName(\"javacs3/nginx:latest\", \"username:password\"),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n Dest = new DockerImageName($\"{cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\")\n}).AddToPrincipalPolicy(new PolicyStatement(new PolicyStatementProps {\n Effect = Effect.ALLOW,\n Actions = new [] { \"secretsmanager:GetSecretValue\" },\n Resources = new [] { \"*\" }\n}));","version":"1"},"java":{"source":"import software.amazon.awscdk.services.ecr.assets.DockerImageAsset;\n\n\nDockerImageAsset image = DockerImageAsset.Builder.create(this, \"CDKDockerImage\")\n .directory(join(__dirname, \"docker\"))\n .build();\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\nECRDeployment.Builder.create(this, \"DeployDockerImage1\")\n .src(new DockerImageName(image.getImageUri()))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\", Aws.ACCOUNT_ID)))\n .build();\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\nECRDeployment.Builder.create(this, \"DeployDockerImage2\")\n .src(new DockerImageName(\"nginx:latest\"))\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\", Aws.ACCOUNT_ID)))\n .build();\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\nECRDeployment.Builder.create(this, \"DeployDockerImage3\")\n .src(new DockerImageName(\"javacs3/nginx:latest\", \"username:password\"))\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n .dest(new DockerImageName(String.format(\"%s.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\", Aws.ACCOUNT_ID)))\n .build().addToPrincipalPolicy(PolicyStatement.Builder.create()\n .effect(Effect.ALLOW)\n .actions(List.of(\"secretsmanager:GetSecretValue\"))\n .resources(List.of(\"*\"))\n .build());","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\n\n\nimage := awscdk.NewDockerImageAsset(this, jsii.String(\"CDKDockerImage\"), &DockerImageAssetProps{\n\tDirectory: path.join(__dirname, jsii.String(\"docker\")),\n})\n\n// Copy from cdk docker image asset to another ECR.\n// Copy from cdk docker image asset to another ECR.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage1\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(image.ImageUri),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest\", cdk.Aws_ACCOUNT_ID())),\n})\n\n// Copy from docker registry to ECR.\n// Copy from docker registry to ECR.\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage2\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"nginx:latest\")),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest\", cdk.Aws_ACCOUNT_ID())),\n})\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\necrdeploy.NewECRDeployment(this, jsii.String(\"DeployDockerImage3\"), &ECRDeploymentProps{\n\tSrc: ecrdeploy.NewDockerImageName(jsii.String(\"javacs3/nginx:latest\"), jsii.String(\"username:password\")),\n\t// src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n\t// src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n\tDest: ecrdeploy.NewDockerImageName(fmt.Sprintf(\"%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest\", cdk.Aws_ACCOUNT_ID())),\n}).AddToPrincipalPolicy(awscdk.Aws_iam.NewPolicyStatement(&PolicyStatementProps{\n\tEffect: awscdk.*Aws_iam.Effect_ALLOW,\n\tActions: []*string{\n\t\tjsii.String(\"secretsmanager:GetSecretValue\"),\n\t},\n\tResources: []*string{\n\t\tjsii.String(\"*\"),\n\t},\n}))","version":"1"},"$":{"source":"import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';\n\nconst image = new DockerImageAsset(this, 'CDKDockerImage', {\n directory: path.join(__dirname, 'docker'),\n});\n\n// Copy from cdk docker image asset to another ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {\n src: new ecrdeploy.DockerImageName(image.imageUri),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),\n});\n\n// Copy from docker registry to ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {\n src: new ecrdeploy.DockerImageName('nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {\n src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),\n}).addToPrincipalPolicy(new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'secretsmanager:GetSecretValue',\n ],\n resources: ['*'],\n}));","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-ecr-deployment"},"field":{"field":"markdown","line":33}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.aws_ecr_assets.DockerImageAsset","aws-cdk-lib.aws_ecr_assets.DockerImageAsset#imageUri","aws-cdk-lib.aws_ecr_assets.DockerImageAssetProps","aws-cdk-lib.aws_iam.Effect","aws-cdk-lib.aws_iam.Effect#ALLOW","aws-cdk-lib.aws_iam.PolicyStatement","aws-cdk-lib.aws_iam.PolicyStatementProps","cdk-ecr-deployment.DockerImageName","cdk-ecr-deployment.ECRDeployment","cdk-ecr-deployment.ECRDeployment#addToPrincipalPolicy","cdk-ecr-deployment.ECRDeploymentProps","cdk-ecr-deployment.IImageName","constructs.Construct"],"fullSource":"// Hoisted imports begin after !show marker below\n/// !show\nimport { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport * as path from 'node:path';\nimport { Construct } from 'constructs';\n import * as ecrdeploy from 'cdk-ecr-deployment';\nimport {\n Stack,\n aws_iam as iam,\n} from 'aws-cdk-lib';\nimport * as cdk from 'aws-cdk-lib';\n\nclass Fixture extends Stack {\n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\n\nconst image = new DockerImageAsset(this, 'CDKDockerImage', {\n directory: path.join(__dirname, 'docker'),\n});\n\n// Copy from cdk docker image asset to another ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {\n src: new ecrdeploy.DockerImageName(image.imageUri),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),\n});\n\n// Copy from docker registry to ECR.\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {\n src: new ecrdeploy.DockerImageName('nginx:latest'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),\n});\n\n// Copy from private docker registry to ECR.\n// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>\nnew ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {\n src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),\n // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),\n dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),\n}).addToPrincipalPolicy(new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'secretsmanager:GetSecretValue',\n ],\n resources: ['*'],\n}));\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}","syntaxKindCounter":{"11":11,"16":3,"18":3,"80":51,"110":4,"209":2,"210":5,"211":21,"213":2,"214":11,"228":3,"239":3,"243":1,"244":3,"260":1,"261":1,"272":1,"273":1,"275":1,"276":1,"303":10,"312":1},"fqnsFingerprint":"49c3b893d162beea6924f8cf712357c6390954e35a181bc42817e82aa4070d12"}}}
package/API.md CHANGED
@@ -77,6 +77,8 @@ new ECRDeployment(scope: Construct, id: string, props: ECRDeploymentProps)
77
77
  * **src** (<code>[IImageName](#cdk-ecr-deployment-iimagename)</code>) The source of the docker image.
78
78
  * **buildImage** (<code>string</code>) Image to use to build Golang lambda for custom resource, if download fails or is not wanted. __*Default*__: public.ecr.aws/sam/build-go1.x:latest
79
79
  * **environment** (<code>Map<string, string></code>) The environment variable to set. __*Optional*__
80
+ * **lambdaHandler** (<code>string</code>) The name of the lambda handler. __*Default*__: bootstrap
81
+ * **lambdaRuntime** (<code>[aws_lambda.Runtime](#aws-cdk-lib-aws-lambda-runtime)</code>) The lambda function runtime environment. __*Default*__: lambda.Runtime.PROVIDED_AL2023
80
82
  * **memoryLimit** (<code>number</code>) The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket. __*Default*__: 512
81
83
  * **role** (<code>[aws_iam.IRole](#aws-cdk-lib-aws-iam-irole)</code>) Execution role associated with this function. __*Default*__: A role is automatically created
82
84
  * **securityGroups** (<code>Array<[aws_ec2.SecurityGroup](#aws-cdk-lib-aws-ec2-securitygroup)></code>) The list of security groups to associate with the Lambda's network interfaces. __*Default*__: If the function is placed within a VPC and a security group is not specified, either by this or securityGroup prop, a dedicated security group will be created for this function.
@@ -146,6 +148,8 @@ Name | Type | Description
146
148
  **src** | <code>[IImageName](#cdk-ecr-deployment-iimagename)</code> | The source of the docker image.
147
149
  **buildImage**? | <code>string</code> | Image to use to build Golang lambda for custom resource, if download fails or is not wanted.<br/>__*Default*__: public.ecr.aws/sam/build-go1.x:latest
148
150
  **environment**? | <code>Map<string, string></code> | The environment variable to set.<br/>__*Optional*__
151
+ **lambdaHandler**? | <code>string</code> | The name of the lambda handler.<br/>__*Default*__: bootstrap
152
+ **lambdaRuntime**? | <code>[aws_lambda.Runtime](#aws-cdk-lib-aws-lambda-runtime)</code> | The lambda function runtime environment.<br/>__*Default*__: lambda.Runtime.PROVIDED_AL2023
149
153
  **memoryLimit**? | <code>number</code> | The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket.<br/>__*Default*__: 512
150
154
  **role**? | <code>[aws_iam.IRole](#aws-cdk-lib-aws-iam-irole)</code> | Execution role associated with this function.<br/>__*Default*__: A role is automatically created
151
155
  **securityGroups**? | <code>Array<[aws_ec2.SecurityGroup](#aws-cdk-lib-aws-ec2-securitygroup)></code> | The list of security groups to associate with the Lambda's network interfaces.<br/>__*Default*__: If the function is placed within a VPC and a security group is not specified, either by this or securityGroup prop, a dedicated security group will be created for this function.
package/lambda/go.mod CHANGED
@@ -3,25 +3,17 @@ module cdk-ecr-deployment-handler
3
3
  go 1.15
4
4
 
5
5
  require (
6
- github.com/BurntSushi/toml v1.1.0 // indirect
7
6
  github.com/aws/aws-lambda-go v1.29.0
8
- github.com/aws/aws-sdk-go-v2 v1.16.2
9
- github.com/aws/aws-sdk-go-v2/config v1.15.3
7
+ github.com/aws/aws-sdk-go-v2 v1.21.0
8
+ github.com/aws/aws-sdk-go-v2/config v1.18.37
10
9
  github.com/aws/aws-sdk-go-v2/service/ecr v1.17.3
11
- github.com/aws/aws-sdk-go-v2/service/s3 v1.26.4
12
- github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.4
13
- github.com/containerd/containerd v1.6.26 // indirect
14
- github.com/containers/image/v5 v5.21.0
15
- github.com/containers/storage v1.39.0 // indirect
10
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.35.0
11
+ github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.10
12
+ github.com/containers/image/v5 v5.29.3
16
13
  github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
17
- github.com/gorilla/mux v1.8.0 // indirect
18
- github.com/imdario/mergo v0.3.13 // indirect
19
14
  github.com/opencontainers/go-digest v1.0.0
20
15
  github.com/pkg/errors v0.9.1
21
- github.com/prometheus/common v0.33.0 // indirect
22
16
  github.com/sirupsen/logrus v1.9.3
23
17
  github.com/stretchr/testify v1.8.4
24
- github.com/vbauerster/mpb/v7 v7.4.1 // indirect
25
- go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect
26
- gopkg.in/square/go-jose.v2 v2.6.0 // indirect
18
+ github.com/tchap/go-patricia v2.3.0+incompatible // indirect
27
19
  )