第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

擁有多個(gè) main.go 文件以部署基于 AWS Lambda 的應(yīng)用程序

擁有多個(gè) main.go 文件以部署基于 AWS Lambda 的應(yīng)用程序

Go
倚天杖 2023-06-19 14:05:30
我有以下復(fù)雜的結(jié)構(gòu):utils:    - utils.gofunction1:    pkg1_specific_to_fn1:        -pkg1_specific_to_fn1.go    pkg2_specific_to_fn1:        -pkg2_specific_to_fn1.go    main.gofunction2:    pkg1_specific_to_fn1:        -pkg1_specific_to_fn2.go    pkg2_specific_to_fn1:        -pkg2_specific_to_fn2.go    main.gofunction3:    pkg1_specific_to_fn1:        -pkg1_specific_to_fn3.go    pkg2_specific_to_fn1:        -pkg2_specific_to_fn3.go    main.go如何在 GoLang 中為所有這些函數(shù)創(chuàng)建 .YML 部署文件?如果所有這些函數(shù)都有自己的 main,會(huì)有什么問(wèn)題嗎?我是 GoLang 的新手,但據(jù)我所知,包只能包含一個(gè) main.go 文件,而在 YML 文件中,handler我必須為屬性指定可執(zhí)行文件bin。這是我的想法:service: myServiceprovider:  name: aws  runtime: go1.xfunctions:  function1:    handler: bin/function1/main    description: ..    events: ..  function2:    handler: bin/function2/main    events: ..  function3:    handler: bin/function3/main因?yàn)槲矣卸鄠€(gè)代表多個(gè) Lambda 函數(shù)的包,所以我應(yīng)該可以在每個(gè)包中包含 main.go,對(duì)嗎?如果不是那么正確的方法是什么?另外,如果這沒(méi)問(wèn)題,我如何main為每個(gè)函數(shù)指定正確的二進(jìn)制文件,這真的是用 GoLang 部署多個(gè) lambda 的慣例嗎?注意: 在每個(gè) main.go 中都有一個(gè)對(duì)應(yīng)的函數(shù) Handler。
查看完整描述

1 回答

?
翻翻過(guò)去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

lambda 函數(shù)的部署歸結(jié)為包/模塊組織和自動(dòng)化部署工具。第一個(gè)看起來(lái)像是在您的問(wèn)題中解決了共享代碼被放置到 util 并且每個(gè) lambda 都有一個(gè)單獨(dú)的包。在問(wèn)題中,不清楚使用的是什么部署方法。有多種方法可以部署 lambda

  • 命令行界面

  • AWS 無(wú)服務(wù)器應(yīng)用程序模型

  • Endly - 自動(dòng)化和 e2e 運(yùn)行器

  • 地貌

雖然我一直是 e2e 和自動(dòng)化的倡導(dǎo)者,但針對(duì)各種事件的最終運(yùn)行器多 lambda 部署工作流程可能如下所示


init:

? fn1ZipLocation: somepath1.zip

? fn2ZipLocation: somepath2.zip

? fnXZipLocation: somepathX.zip


pipeline:


? build:

? ? fn1:

? ? ? action: exec:run

? ? ? target: $target

? ? ? sleepTimeMs: 1500

? ? ? errors:

? ? ? ? - ERROR

? ? ? commands:

? ? ? ? - cd ${appPath}aeroagg/app

? ? ? ? - unset GOPATH

? ? ? ? - export GOOS=linux

? ? ? ? - export GOARCH=amd64

? ? ? ? - go build -o function1

? ? ? ? - zip -j somepath1.zip function1


? ...


? deployFunctions:

? ? fn1:

? ? ? action: aws/lambda:deploy

? ? ? credentials: aws-e2e

? ? ? functionname: fn1

? ? ? runtime:? go1.x

? ? ? handler: main

? ? ? code:

? ? ? ? zipfile: $LoadBinary(${fn1ZipLocation})

? ? ? rolename: lambda-fn1-executor

? ? ? define:

? ? ? ? - policyname: xxx-resource-fn1-role

? ? ? ? ? policydocument: $Cat('${privilegePolicy}')

? ? ? attach:

? ? ? ? - policyarn: arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

? ? ? triggers:

? ? ? ? - source: somequeue

? ? ? ? ? type: sqs

? ? ? ? ? enabled: true

? ? ? ? ? batchSize: 20000

? ? fn2:

? ? ? action: aws/lambda:deploy

? ? ? credentials: aws-e2e

? ? ? functionname: fn2

? ? ? runtime:? go1.x

? ? ? handler: main

? ? ? code:

? ? ? ? zipfile: $LoadBinary(${fn2ZipLocation})

? ? ? rolename: lambda-fn2-executor

? ? ? define:

? ? ? ? - policyname: xxx-resource-fn2-role

? ? ? ? ? policydocument: $Cat('${privilegePolicy}')

? ? ? attach:

? ? ? ? - policyarn: arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole


? ? ? notification:

? ? ? ? action: aws/s3:setupBucketNotification

? ? ? ? bucket: someBucket

? ? ? ? lambdaFunctionConfigurations:

? ? ? ? ? - functionName: fn2

? ? ? ? ? ? id: ObjectCreatedEvents

? ? ? ? ? ? events:

? ? ? ? ? ? ? - s3:ObjectCreated:*

? ? ? ? ? ? filter:

? ? ? ? ? ? ? prefix:

? ? ? ? ? ? ? ? - folderXXX

? ? ? ? ? ? ? suffix:

? ? ? ? ? ? ? ? - .csv


? ? ? ...

? ? fnX:

? ? ? action: aws/lambda:deploy

? ? ? ? functionname: fnX

? ? ? ? runtime:? go1.x

? ? ? ? handler: main

? ? ? ? timeout: 360

? ? ? ? vpcMatcher:

? ? ? ? ? instance:

? ? ? ? ? ? name: instanceWithVPC


? ? ? ? environment:

? ? ? ? ? variables:

? ? ? ? ? ? CONFIG: $AsString($config)

? ? ? ? code:

? ? ? ? ? zipfile: $LoadBinary(${fn2ZipLocation})

? ? ? ? rolename: lambda-fn3-executor

? ? ? ? define:

? ? ? ? ? - policyname: lambda-sns-execution-role

? ? ? ? ? ? policydocument: $Cat('${privilegePolicy}')

? ? ? ? attach:

? ? ? ? ? - policyarn: arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

? ? ? ? ? - policyarn: arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole

? ? ? setupSubscription:

? ? ? ? action: aws/sns:setupSubscription

? ? ? ? protocol: lambda

? ? ? ? endpoint: fnX

? ? ? ? topic: someTopic


? ? deployGatewayAPI:

? ? ? redeploy: true

? ? ? action: aws/apigateway:setupRestAPI

? ? ? '@name': myAPIName

? ? ? resources:

? ? ? ? - path: /

? ? ? ? ? methods:

? ? ? ? ? ? - httpMethod: GET

? ? ? ? ? ? ? functionname: fn3

? ? ? ? - path: /{proxy+}

? ? ? ? ? methods:

? ? ? ? ? ? - httpMethod: GET

? ? ? ? ? ? ? functionname: fn4

? ? ? ? - path: /v1/api/fn4

? ? ? ? ? methods:

? ? ? ? ? ? - httpMethod: GET

? ? ? ? ? ? ? functionname: fn5

最后,您可以使用 lambda e2e 實(shí)際測(cè)試示例檢查?無(wú)服務(wù)器 e2e。



查看完整回答
反對(duì) 回復(fù) 2023-06-19
  • 1 回答
  • 0 關(guān)注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)