Sampla d’fheidhmchlár atá bunaithe ar imeacht atá bunaithe ar bhróga gréasáin i stóráil réad S3 Mail.ru Cloud Solutions

Sampla d’fheidhmchlár atá bunaithe ar imeacht atá bunaithe ar bhróga gréasáin i stóráil réad S3 Mail.ru Cloud Solutions
Meaisín caife Rube Goldberg

Méadaíonn ailtireacht atá bunaithe ar imeachtaí éifeachtúlacht costais na n-acmhainní a úsáidtear toisc nach n-úsáidtear iad ach amháin nuair a bhíonn gá leo. Tá go leor roghanna ann maidir le conas é seo a chur i bhfeidhm agus gan aonáin scamall breise a chruthú mar iarratais oibrithe. Agus inniu ní labhróidh mé faoi FaaS, ach faoi chuiceanna gréasáin. Taispeánfaidh mé sampla teagaisc de láimhseáil imeachtaí ag baint úsáide as cuaillí gréasáin stórála réad.

Cúpla focal faoi stóráil réad agus cuacha gréasáin. Ligeann stóráil oibiachtaí duit aon sonraí a stóráil sa néal i bhfoirm oibiachtaí, inrochtana trí S3 nó API eile (ag brath ar chur i bhfeidhm) trí HTTP/HTTPS. Go ginearálta is aisghlaonna HTTP saincheaptha iad cuacha gréasáin. Is gnách go spreagtar iad ag imeacht, mar chód á bhrú chuig stór nó nóta tráchta a phostáil ar bhlag. Nuair a tharlaíonn teagmhas, seolann an suíomh tionscnaimh iarratas HTTP chuig an URL atá sonraithe don chuach gréasáin. Mar thoradh air sin, is féidir leat imeachtaí a dhéanamh ar shuíomh amháin gníomhartha a spreagadh ar shuíomh eile (wiki). Sa chás gur stór réad é an láithreán foinse, gníomhaíonn imeachtaí mar athruithe ar a bhfuil ann.

Samplaí de chásanna simplí inar féidir uathoibriú den sórt sin a úsáid:

  1. Cruthú cóipeanna de gach réad i stóráil scamall eile. Ní mór cóipeanna a chruthú ar an eitilt aon uair a chuirtear nó a athraítear comhaid.
  2. Cruthú uathoibríoch de shraith mionsamhlacha de chomhaid ghrafacha, ag cur watermarks le grianghraif, agus modhnuithe íomhá eile.
  3. Fógra faoi theacht na gcáipéisí nua (mar shampla, déanann seirbhís chuntasaíochta dáilte tuarascálacha a uaslódáil chuig an néal, agus faigheann monatóireacht airgeadais fógraí faoi thuarascálacha nua, seiceálacha agus anailís orthu).
  4. Is éard atá i gceist le cásanna beagán níos casta, mar shampla, iarratas a ghiniúint chuig Kubernetes, a chruthaíonn pod leis na coimeádáin riachtanacha, a théann paraiméadair an taisc leis, agus tar éis próiseáil a thiteann an coimeádán.

Mar shampla, déanfaimid malairt de thasc 1, nuair a dhéantar athruithe ar bhuicéad stórála réad Mail.ru Cloud Solutions (MCS) a shioncronú i stóráil réad AWS ag baint úsáide as webooks. I gcás fíor-ualach, ba cheart obair asincrónach a chur ar fáil trí bhótaí gréasáin a chlárú i scuaine, ach le haghaidh an tasc oiliúna déanfaimid an cur i bhfeidhm gan é seo.

Scéim oibre

Déantar cur síos mionsonraithe ar an bprótacal idirghníomhaíochta i Treoir maidir le gréasán S3 ar MCS. Tá na gnéithe seo a leanas sa scéim oibre:

  • Seirbhís foilsitheoireachta, atá ar thaobh stórála S3 agus a fhoilsíonn iarratais HTTP nuair a spreagtar an webnhook.
  • Freastalaí glactha cuaille gréasáin, a éisteann le hiarratais ón tseirbhís foilsitheoireachta HTTP agus a dhéanann gníomhartha cuí. Is féidir an freastalaí a scríobh i dteanga ar bith; inár sampla, scríobhfaimid an freastalaí in Go.

Gné speisialta de chur i bhfeidhm cuacha gréasáin san API S3 is ea clárú an fhreastalaí glactha greimeanna gréasáin ar an tseirbhís foilsitheoireachta. Go háirithe, ní mór don fhreastalaí glactha cuaille gréasáin an síntiús do theachtaireachtaí ón tseirbhís foilsitheoireachta a dheimhniú (i bhfeidhmiúcháin eile gréasán, ní gá de ghnáth deimhniú an tsíntiúis).

Dá réir sin, ní mór don fhreastalaí glactha cuaille gréasáin tacú le dhá phríomhoibríocht:

  • freagra a thabhairt ar iarratas ón tseirbhís foilsitheoireachta clárú a dheimhniú,
  • imeachtaí ag teacht isteach a phróiseáil.

Freastalaí glactha cuaille gréasáin a shuiteáil

Chun an freastalaí glactha cuaille gréasáin a rith, teastaíonn freastalaí Linux uait. San Airteagal seo, mar shampla, bainimid úsáid as sampla fíorúil a úsáidimid ar MCS.

Déanaimis na bogearraí riachtanacha a shuiteáil agus an freastalaí glactha cuaille gréasáin a sheoladh.

ubuntu@ubuntu-basic-1-2-10gb:~$ sudo apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  bc dns-root-data dnsmasq-base ebtables landscape-common liblxc-common 
liblxc1 libuv1 lxcfs lxd lxd-client python3-attr python3-automat 
python3-click python3-constantly python3-hyperlink
  python3-incremental python3-pam python3-pyasn1-modules 
python3-service-identity python3-twisted python3-twisted-bin 
python3-zope.interface uidmap xdelta3
Use 'sudo apt autoremove' to remove them.
Suggested packages:
  git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui 
gitk gitweb git-cvs git-mediawiki git-svn
The following NEW packages will be installed:
  git
0 upgraded, 1 newly installed, 0 to remove and 46 not upgraded.
Need to get 3915 kB of archives.
After this operation, 32.3 MB of additional disk space will be used.
Get:1 http://MS1.clouds.archive.ubuntu.com/ubuntu bionic-updates/main 
amd64 git amd64 1:2.17.1-1ubuntu0.7 [3915 kB]
Fetched 3915 kB in 1s (5639 kB/s)
Selecting previously unselected package git.
(Reading database ... 53932 files and directories currently installed.)
Preparing to unpack .../git_1%3a2.17.1-1ubuntu0.7_amd64.deb ...
Unpacking git (1:2.17.1-1ubuntu0.7) ...
Setting up git (1:2.17.1-1ubuntu0.7) ...

Clón an fillteán leis an bhfreastalaí glactha cuaille gréasáin:

ubuntu@ubuntu-basic-1-2-10gb:~$ git clone
https://github.com/RomanenkoDenys/s3-webhook.git
Cloning into 's3-webhook'...
remote: Enumerating objects: 48, done.
remote: Counting objects: 100% (48/48), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 114 (delta 20), reused 45 (delta 18), pack-reused 66
Receiving objects: 100% (114/114), 23.77 MiB | 20.25 MiB/s, done.
Resolving deltas: 100% (49/49), done.

Cuirimis tús leis an bhfreastalaí:

ubuntu@ubuntu-basic-1-2-10gb:~$ cd s3-webhook/
ubuntu@ubuntu-basic-1-2-10gb:~/s3-webhook$ sudo ./s3-webhook -port 80

Liostáil le seirbhís foilsitheoireachta

Is féidir leat do fhreastalaí glactha cuaille gréasáin a chlárú tríd an API nó an comhéadan gréasáin. Ar mhaithe le simplíocht, cláróimid tríd an gcomhéadan gréasáin:

  1. A ligean ar dul go dtí an t-alt buicéid sa seomra rialaithe.
  2. Téigh go dtí an buicéad a mbeidh muid ag cumrú cuaillí gréasáin dó agus cliceáil ar an bhfearas:

Sampla d’fheidhmchlár atá bunaithe ar imeacht atá bunaithe ar bhróga gréasáin i stóráil réad S3 Mail.ru Cloud Solutions

Téigh go dtí an cluaisín Webbhooks agus cliceáil Cuir:

Sampla d’fheidhmchlár atá bunaithe ar imeacht atá bunaithe ar bhróga gréasáin i stóráil réad S3 Mail.ru Cloud Solutions
Líon isteach na réimsí:

Sampla d’fheidhmchlár atá bunaithe ar imeacht atá bunaithe ar bhróga gréasáin i stóráil réad S3 Mail.ru Cloud Solutions

ID — ainm an chuaille gréasáin.

Imeacht - a imeachtaí a tharchur. Tá tarchur na n-imeachtaí go léir a tharlaíonn nuair a bhíonn muid ag obair le comhaid socraithe againn (ag cur agus scriosadh).

URL - cuaille gréasáin ag fáil seoladh an fhreastalaí.

Is scagaire é réimír/iarmhír an scagaire a ligeann duit cuacha gréasáin a ghiniúint ach amháin le haghaidh rudaí a bhfuil a n-ainmneacha ag teacht le rialacha áirithe. Mar shampla, ionas go spreagfaidh an cuaille gréasáin comhaid leis an síneadh .png amháin, cuir isteach Iarmhír scagaire ní mór duit "png" a scríobh.

Faoi láthair, ní thacaítear ach le calafoirt 80 agus 443 chun rochtain a fháil ar an bhfreastalaí glactha cuaille gréasáin.

A ligean ar cliceáil Cuir hook agus feicfimid na rudaí seo a leanas:

Sampla d’fheidhmchlár atá bunaithe ar imeacht atá bunaithe ar bhróga gréasáin i stóráil réad S3 Mail.ru Cloud Solutions
Hook leis.

Taispeánann an freastalaí glactha cuaí gréasáin ina logaí dul chun cinn an phróisis chlárúcháin duán:

ubuntu@ubuntu-basic-1-2-10gb:~/s3-webhook$ sudo ./s3-webhook -port 80
2020/06/15 12:01:14 [POST] incoming HTTP request from 
95.163.216.92:42530
2020/06/15 12:01:14 Got timestamp: 2020-06-15T15:01:13+03:00 TopicArn: 
mcs5259999770|myfiles-ash|s3:ObjectCreated:*,s3:ObjectRemoved:* Token: 
E2itMqAMUVVZc51pUhFWSp13DoxezvRxkUh5P7LEuk1dEe9y URL: 
http://89.208.199.220/webhook
2020/06/15 12:01:14 Generate responce signature: 
3754ce36636f80dfd606c5254d64ecb2fd8d555c27962b70b4f759f32c76b66d

Tá clárú críochnaithe. Sa chéad chuid eile, déanfaimid breathnú níos dlúithe ar algartam oibríochta an fhreastalaí glactha gréasáin.

Cur síos ar an bhfreastalaí glactha cuaille

In ár sampla, tá an freastalaí scríofa i Go. Breathnaímid ar bhunphrionsabail a oibríochta.

package main

// Generate hmac_sha256_hex
func HmacSha256hex(message string, secret string) string {
}

// Generate hmac_sha256
func HmacSha256(message string, secret string) string {
}

// Send subscription confirmation
func SubscriptionConfirmation(w http.ResponseWriter, req *http.Request, body []byte) {
}

// Send subscription confirmation
func GotRecords(w http.ResponseWriter, req *http.Request, body []byte) {
}

// Liveness probe
func Ping(w http.ResponseWriter, req *http.Request) {
    // log request
    log.Printf("[%s] incoming HTTP Ping request from %sn", req.Method, req.RemoteAddr)
    fmt.Fprintf(w, "Pongn")
}

//Webhook
func Webhook(w http.ResponseWriter, req *http.Request) {
}

func main() {

    // get command line args
    bindPort := flag.Int("port", 80, "number between 1-65535")
    bindAddr := flag.String("address", "", "ip address in dot format")
    flag.StringVar(&actionScript, "script", "", "external script to execute")
    flag.Parse()

    http.HandleFunc("/ping", Ping)
    http.HandleFunc("/webhook", Webhook)

log.Fatal(http.ListenAndServe(*bindAddr+":"+strconv.Itoa(*bindPort), nil))
}

Smaoinigh ar na príomhfheidhmeanna:

  • Ping() - bealach a fhreagraíonn trí URL/ping, an cur i bhfeidhm is simplí de thaiscéalaí beocht.
  • Webhook() - príomhbhealach, URL/láimhseálaí cuaille gréasáin:
    • a dheimhníonn clárú ar an tseirbhís foilsitheoireachta (téigh chuig an bhfeidhm SubscriptionConfirmation),
    • próiseálann cuacha gréasáin isteach (feidhm Gorecords).
  • Feidhmeanna Is éard atá i bhfeidhmeanna HmacSha256 agus HmacSha256hex feidhmiú na n-halgartaim criptithe HMAC-SHA256 agus HMAC-SHA256 le haschur mar shraith d'uimhreacha heicsidheacha chun an síniú a ríomh.
  • is é an príomhfheidhm an phríomhfheidhm, próiseálann paraiméadair na n-orduithe agus cláraíonn sé láimhseálaithe URL.

Paraiméadair na líne ordaithe a nglacann an freastalaí leo:

  • -port is ea an port ar a éistfidh an freastalaí.
  • -address - seoladh IP a éistfidh an freastalaí leis.
  • Is clár seachtrach é -script a ghlaoitear ar gach duán isteach.

Breathnaímid ar roinnt de na feidhmeanna:

//Webhook
func Webhook(w http.ResponseWriter, req *http.Request) {

    // Read body
    body, err := ioutil.ReadAll(req.Body)
    defer req.Body.Close()
    if err != nil {
        http.Error(w, err.Error(), 500)
        return
    }

    // log request
    log.Printf("[%s] incoming HTTP request from %sn", req.Method, req.RemoteAddr)
    // check if we got subscription confirmation request
    if strings.Contains(string(body), 
""Type":"SubscriptionConfirmation"") {
        SubscriptionConfirmation(w, req, body)
    } else {
        GotRecords(w, req, body)
    }

}

Cinneann an fheidhm seo cibé an bhfuil iarratas chun clárú a dheimhniú nó cuaille gréasáin tagtha. Mar a leanas ó doiciméadú, má dheimhnítear clárú, faightear an struchtúr Json seo a leanas san iarratas Post:

POST http://test.com HTTP/1.1
x-amz-sns-messages-type: SubscriptionConfirmation
content-type: application/json

{
    "Timestamp":"2019-12-26T19:29:12+03:00",
    "Type":"SubscriptionConfirmation",
    "Message":"You have chosen to subscribe to the topic $topic. To confirm the subscription you need to response with calculated signature",
    "TopicArn":"mcs2883541269|bucketA|s3:ObjectCreated:Put",
    "SignatureVersion":1,
    "Token":«RPE5UuG94rGgBH6kHXN9FUPugFxj1hs2aUQc99btJp3E49tA»
}

Ní mór an cheist seo a fhreagairt:

content-type: application/json

{"signature":«ea3fce4bb15c6de4fec365d36bcebbc34ccddf54616d5ca12e1972f82b6d37af»}

I gcás ina ríomhtar an síniú mar:

signature = hmac_sha256(url, hmac_sha256(TopicArn, 
hmac_sha256(Timestamp, Token)))

Má thagann cuóg gréasáin isteach, is mar seo a bheidh struchtúr an iarratais Postála:

POST <url> HTTP/1.1
x-amz-sns-messages-type: SubscriptionConfirmation

{ "Records":
    [
        {
            "s3": {
                "object": {
                    "eTag":"aed563ecafb4bcc5654c597a421547b2",
                    "sequencer":1577453615,
                    "key":"some-file-to-bucket",
                    "size":100
                },
            "configurationId":"1",
            "bucket": {
                "name": "bucketA",
                "ownerIdentity": {
                    "principalId":"mcs2883541269"}
                },
                "s3SchemaVersion":"1.0"
            },
            "eventVersion":"1.0",
            "requestParameters":{
                "sourceIPAddress":"185.6.245.156"
            },
            "userIdentity": {
                "principalId":"2407013e-cbc1-415f-9102-16fb9bd6946b"
            },
            "eventName":"s3:ObjectCreated:Put",
            "awsRegion":"ru-msk",
            "eventSource":"aws:s3",
            "responseElements": {
                "x-amz-request-id":"VGJR5rtJ"
            }
        }
    ]
}

Dá réir sin, ag brath ar an iarratas, ní mór duit a thuiscint conas na sonraí a phróiseáil. Roghnaigh mé an iontráil mar tháscaire "Type":"SubscriptionConfirmation", ós rud é go bhfuil sé i láthair san iarratas deimhnithe ar shíntiús agus nach bhfuil sé i láthair sa chuach gréasáin. Bunaithe ar láithreacht/neamhláithreacht na hiontrála seo san iarratas POST, téann feidhmiú breise an chláir chuig ceachtar den dá fheidhm SubscriptionConfirmation, nó isteach sa fheidhm GotRecords.

Ní bhreithneofar go mion an fheidhm Deimhnithe Síntiúis; cuirtear i bhfeidhm í de réir na bprionsabal atá leagtha amach i doiciméadú. Is féidir leat an cód foinse don fheidhm seo a fheiceáil ag stórtha git tionscadail.

Déanann an fheidhm GotRecords iarratas isteach a pharsáil agus glaonn script sheachtrach (ar cuireadh a ainm sa pharaiméadar -script) leis na paraiméadair do gach oibiacht Taifeadta:

  • ainm buicéad
  • eochair réad
  • gníomh:
    • copy - más rud é sa bhuniarratas EventName = ObjectCreated | CuirObject | PutObjectCopy
    • delete - más rud é sa bhuniarratas EventName = ObjectRemoved | Scrios Object

Mar sin, má thagann duán le hiarratas Post, mar a thuairiscítear thuas, agus an paraiméadar -script=script.sh ansin tabharfar an script mar seo a leanas:

script.sh  bucketA some-file-to-bucket copy

Ba cheart a thuiscint nach réiteach táirgeachta iomlán é an freastalaí glactha cuasaí gréasáin seo, ach sampla simplithe de chur i bhfeidhm féideartha.

Sampla den obair

Déanaimis na comhaid a shioncronú ón bpríomhbhuicéad in MCS go dtí an buicéad cúltaca in AWS. Tugtar myfiles-ash ar an bpríomhbhuicéad, tugtar myfiles-backup ar an gceann cúltaca (tá cumraíocht buicéad in AWS thar raon feidhme an ailt seo). Dá réir sin, nuair a chuirtear comhad sa phríomhbhuicéad, ba cheart go mbeadh a chóip le feiceáil sa chúltaca, agus nuair a scriostar é ón bpríomhcheann, ba cheart é a scriosadh sa chúltaca.

Oibreoimid le buicéid ag baint úsáide as an bhfóntas awscli, atá comhoiriúnach le stóráil scamall MCS agus stóráil scamall AWS araon.

ubuntu@ubuntu-basic-1-2-10gb:~$ sudo apt-get install awscli
Reading package lists... Done
Building dependency tree
Reading state information... Done
After this operation, 34.4 MB of additional disk space will be used.
Unpacking awscli (1.14.44-1ubuntu1) ...
Setting up awscli (1.14.44-1ubuntu1) ...

Déanaimis rochtain ar an S3 MCS API a chumrú:

ubuntu@ubuntu-basic-1-2-10gb:~$ aws configure --profile mcs
AWS Access Key ID [None]: hdywEPtuuJTExxxxxxxxxxxxxx
AWS Secret Access Key [None]: hDz3SgxKwXoxxxxxxxxxxxxxxxxxx
Default region name [None]:
Default output format [None]:

Déanaimis rochtain ar an API AWS S3 a chumrú:

ubuntu@ubuntu-basic-1-2-10gb:~$ aws configure --profile aws
AWS Access Key ID [None]: AKIAJXXXXXXXXXXXX
AWS Secret Access Key [None]: dfuerphOLQwu0CreP5Z8l5fuXXXXXXXXXXXXXXXX
Default region name [None]:
Default output format [None]:

Déanaimis na bealaí isteach a sheiceáil:

Chuig AWS:

ubuntu@ubuntu-basic-1-2-10gb:~$ aws s3 ls --profile aws
2020-07-06 08:44:11 myfiles-backup

Le haghaidh MCS, agus an t-ordú á rith agat ní mór duit —endpoint-url a chur leis:

ubuntu@ubuntu-basic-1-2-10gb:~$ aws s3 ls --profile mcs --endpoint-url 
https://hb.bizmrg.com
2020-02-04 06:38:05 databasebackups-0cdaaa6402d4424e9676c75a720afa85
2020-05-27 10:08:33 myfiles-ash

Rochtainte.

Anois scríobhaimis script chun an dubhán ag teacht isteach a phróiseáil, cuirimis glaoch air s3_backup_mcs_aws.sh

#!/bin/bash
# Require aws cli
# if file added — copy it to backup bucket
# if file removed — remove it from backup bucket
# Variables
ENDPOINT_MCS="https://hb.bizmrg.com"
AWSCLI_MCS=`which aws`" --endpoint-url ${ENDPOINT_MCS} --profile mcs s3"
AWSCLI_AWS=`which aws`" --profile aws s3"
BACKUP_BUCKET="myfiles-backup"

SOURCE_BUCKET=""
SOURCE_FILE=""
ACTION=""

SOURCE="s3://${SOURCE_BUCKET}/${SOURCE_FILE}"
TARGET="s3://${BACKUP_BUCKET}/${SOURCE_FILE}"
TEMP="/tmp/${SOURCE_BUCKET}/${SOURCE_FILE}"

case ${ACTION} in
    "copy")
    ${AWSCLI_MCS} cp "${SOURCE}" "${TEMP}"
    ${AWSCLI_AWS} cp "${TEMP}" "${TARGET}"
    rm ${TEMP}
    ;;

    "delete")
    ${AWSCLI_AWS} rm ${TARGET}
    ;;

    *)
    echo "Usage: 
#!/bin/bash
# Require aws cli
# if file added — copy it to backup bucket
# if file removed — remove it from backup bucket
# Variables
ENDPOINT_MCS="https://hb.bizmrg.com"
AWSCLI_MCS=`which aws`" --endpoint-url ${ENDPOINT_MCS} --profile mcs s3"
AWSCLI_AWS=`which aws`" --profile aws s3"
BACKUP_BUCKET="myfiles-backup"
SOURCE_BUCKET="${1}"
SOURCE_FILE="${2}"
ACTION="${3}"
SOURCE="s3://${SOURCE_BUCKET}/${SOURCE_FILE}"
TARGET="s3://${BACKUP_BUCKET}/${SOURCE_FILE}"
TEMP="/tmp/${SOURCE_BUCKET}/${SOURCE_FILE}"
case ${ACTION} in
"copy")
${AWSCLI_MCS} cp "${SOURCE}" "${TEMP}"
${AWSCLI_AWS} cp "${TEMP}" "${TARGET}"
rm ${TEMP}
;;
"delete")
${AWSCLI_AWS} rm ${TARGET}
;;
*)
echo "Usage: ${0} sourcebucket sourcefile copy/delete"
exit 1
;;
esac
sourcebucket sourcefile copy/delete" exit 1 ;; esac

Cuirimis tús leis an bhfreastalaí:

ubuntu@ubuntu-basic-1-2-10gb:~/s3-webhook$ sudo ./s3-webhook -port 80 -
script scripts/s3_backup_mcs_aws.sh

A ligean ar a fheiceáil conas a oibríonn sé. Tríd Comhéadan Gréasáin MCS cuir an comhad test.txt leis an mbuicéad myfiles-fuinseog. Léiríonn logaí an chonsóil go ndearnadh iarratas chuig an bhfreastalaí gréasán:

2020/07/06 09:43:08 [POST] incoming HTTP request from 
95.163.216.92:56612
download: s3://myfiles-ash/test.txt to ../../../tmp/myfiles-ash/test.txt
upload: ../../../tmp/myfiles-ash/test.txt to 
s3://myfiles-backup/test.txt

Déanaimis seiceáil ar a bhfuil sa bhuicéad cúltaca myfiles in AWS:

ubuntu@ubuntu-basic-1-2-10gb:~/s3-webhook$ aws s3 --profile aws ls 
myfiles-backup
2020-07-06 09:43:10       1104 test.txt

Anois, tríd an gcomhéadan gréasáin, scriosfaimid an comhad ón buicéad myfiles-ash.

Logchomhaid an fhreastalaí:

2020/07/06 09:44:46 [POST] incoming HTTP request from 
95.163.216.92:58224
delete: s3://myfiles-backup/test.txt

Ábhar an bhuicéid:

ubuntu@ubuntu-basic-1-2-10gb:~/s3-webhook$ aws s3 --profile aws ls 
myfiles-backup
ubuntu@ubuntu-basic-1-2-10gb:~$

Scriostar an comhad, réitítear an fhadhb.

Conclúid agus TÚ

Tá gach cód a úsáidtear san Airteagal seo i mo stór. Tá samplaí ann freisin de scripteanna agus samplaí de shínithe a chomhaireamh chun cuacha gréasáin a chlárú.

Níl sa chód seo ach sampla de conas is féidir leat cuaillí gréasáin S3 a úsáid i do ghníomhaíochtaí. Mar a dúirt mé ag an tús, má tá sé ar intinn agat freastalaí den sórt sin a úsáid i dtáirgeadh, ní mór duit ar a laghad an freastalaí a athscríobh le haghaidh obair asincrónach: cláraigh sreafaí gréasáin ag teacht isteach i scuaine (RabbitMQ nó NATS), agus as sin iad a pharsáil agus iad a phróiseáil. le hiarratais oibrithe. Seachas sin, nuair a thagann cuacha gréasáin isteach go mór, seans go dtiocfaidh tú ar easpa acmhainní freastalaí chun tascanna a chur i gcrích. Ceadaíonn láithreacht scuainí duit an freastalaí agus na hoibrithe a dháileadh, chomh maith le fadhbanna a réiteach le tascanna athrá i gcás teipeanna. Tá sé inmholta freisin an logáil a athrú go ceann níos mionsonraithe agus níos caighdeánaithe.

N-éirí leat!

Tuilleadh léitheoireachta ar an ábhar:

Foinse: will.com

Add a comment