При створенні CICD пайплайну для проекту на мові програмування Go з використанням інструменту AWS CDK Golang можуть виникати деякі складнощі, особливо пов’язані з налаштуванням модулів Go і роботою з Docker. Однією з основних проблем є неможливість завантаження залежностей Go під час роботи CICD пайплайну через обмеження доступу до Інтернету в рамках політики організації.
Під час спроби вирішення цієї проблеми виявляється, що CDK не використовує локально збережені залежності, незважаючи на наявність папки vendor з усіма необхідними файли. Навіть при встановленні змінних середовища, таких як GOFLAGS=-mod=vendor
, проблема залишається актуальною.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
lambdaFunction := awscdklambdagoalpha.NewGoFunction(stack, jsii.String("BackendLambda"), &awscdklambdagoalpha.GoFunctionProps{ Runtime: awslambda.Runtime_PROVIDED_AL2(), Entry: jsii.String("./src"), Architecture: awslambda.Architecture_ARM_64(), Bundling: &awscdklambdagoalpha.BundlingOptions{ GoBuildFlags: jsii.Strings(`-ldflags "-s -w" -mod=vendor`), }, Environment: &e, FunctionName: jsii.String("BackendLambda"), Description: jsii.String("backend Lambda function"), Role: applicationRole, Vpc: vpc, MemorySize: jsii.Number(128), EphemeralStorageSize: awscdk.Size_Mebibytes(jsii.Number(512)), }) |
Навіть при вимкненні модулів Go через GO111MODULE=off
, виникає помилка, що свідчить про неможливість використання CDK з цими налаштуваннями. При спробі виконати команду cdk deploy
з увімкненими модулями, все ще спостерігається спроба доступу до Інтернету для завантаження залежностей.
Ця ситуація ставить під питання можливість використання AWS CDK Golang в умовах обмеженого доступу до Інтернету і потребує додаткового аналізу та пошуку рішень.