typescript - cdk δεν είναι δυνατή η σύνδεση με το Docker daemon στο unix:///var/run/docker.sock. Τρέχει το docker daemon; - σφάλμα κατά την ανάπτυξη του cdk
Όταν προσπαθώ να αναπτύξω την υποδομή μου, αντιμετωπίζω αυτό το σφάλμα:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
ERRO[0000] Can't add file /Users/Samuel.Lawrence/uktv/Sandbox/cdk-arch/node_modules/aws-cdk-lib/aws-lambda-nodejs/lib/types.d.ts to tar: io: read/write on closed pipe
ERRO[0000] Can't close tar writer: io: read/write on closed pipe
Η υποδομή μου είναι αρκετά απλή και μοιάζει ακριβώς με:
Κλάση που δείχνει: index.ts
export class CdkArchStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
new AnalyticsReportService(this, "AnalyticsReportServiceHandler", {});
}
}
Κλάση που χειρίζεται τη δημιουργία της στοίβας: AnalyticsReportService.ts
export class AnalyticsReportService extends NodejsFunction {
constructor(scope: Stack, id: string, props: NodejsFunctionProps) {
super(scope, id, props);
}
}
Και τέλος, μια βασική συνάρτηση lambda:
export const handler = async (event: any = {}): Promise<any> => {
console.log("event: ", event);
return {
statusCode: 200,
body: JSON.stringify({
message: "Go Serverless v2.0! Your function executed successfully!",
}),
};
};
Τι ακριβώς μου λείπει; Αυτό το λάθος δεν φαίνεται να είναι πολύ συνηθισμένο. Έχω συνδεθεί στην κονσόλα AWS μου, οπότε οι διαπιστευτήριες σίγουρα δεν είναι το πρόβλημα
Απάντηση #1
Απαιτείται το Docker για τη συσκευασία/κατασκευή των TypeScript Lambdas στην απουσία του esbuild. Επομένως, εγκαταστήστε/ξεκινήστε το Docker ή εγκαταστήστε το esbuild.
Αναφορά: «Εάν το esbuild είναι διαθέσιμο, θα χρησιμοποιηθεί για να συγκεντρώσει τον κώδικά σας στο περιβάλλον σας. Διαφορετικά, η συγκέντρωση θα πραγματοποιηθεί σε ένα συμβατό με Lambda Docker container με την πλατφόρμα Docker βασισμένη στην στοχευμένη αρχιτεκτονική της συνάρτησης Lambda.»