日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

函數(shù)計(jì)算3.0和2.0版本差異及兼容性說明

更新時(shí)間:

函數(shù)計(jì)算3.0是產(chǎn)品的一個(gè)重大升級版本,在函數(shù)管理、函數(shù)執(zhí)行引擎、自定義域名、函數(shù)授權(quán)及彈性伸縮規(guī)則方面進(jìn)行了多項(xiàng)改進(jìn),旨在為用戶提供極簡的產(chǎn)品體驗(yàn)。本文主要介紹函數(shù)計(jì)算3.0的功能變化及兼容原有服務(wù)和函數(shù)的規(guī)則。

函數(shù)計(jì)算3.0功能變化

函數(shù)計(jì)算3.0功能變化如下:

  • 函數(shù)管理變化

    • 移除服務(wù)概念,函數(shù)成為一級實(shí)體,角色、日志和VPC等直接在函數(shù)級別配置。

    • 版本和別名直接作用在函數(shù)級別,可以對函數(shù)進(jìn)行獨(dú)立的版本控制。

    詳細(xì)變化,請參見函數(shù)管理變化。

  • 函數(shù)執(zhí)行引擎變化

    • 統(tǒng)一請求處理程序(Handler)簽名,HTTP請求和事件請求處理程序統(tǒng)一。具體信息,請參見HTTP Trigger行為變化。

    • 標(biāo)準(zhǔn)運(yùn)行時(shí)(Runtime)不再支持單實(shí)例多并發(fā)功能,Custom Runtime仍然支持單實(shí)例多并發(fā)功能。

    • 函數(shù)實(shí)例生命周期不再支持PreFreeze回調(diào)方法。

  • 自定義域名變化

    自定義域名不再依賴HTTP Trigger,可以直接引流到對應(yīng)的函數(shù)。

  • 函數(shù)授權(quán)變化

    支持服務(wù)關(guān)聯(lián)角色(SLR),簡化函數(shù)授權(quán)體驗(yàn)。更多信息,請參見函數(shù)角色變化(SLR)。

  • 彈性伸縮規(guī)則變化

    按量實(shí)例伸縮控制功能升級為函數(shù)并發(fā)度管理,可以限制預(yù)留實(shí)例和按量實(shí)例的總并發(fā)度。

原有的服務(wù)和函數(shù)配置等保持不變,調(diào)用不受影響。例如,原有的函數(shù)配置了單實(shí)例多并發(fā)可以繼續(xù)使用,但在函數(shù)計(jì)算3.0中新創(chuàng)建的標(biāo)準(zhǔn)運(yùn)行時(shí)的函數(shù),無法再配置單實(shí)例多并發(fā)功能。關(guān)于兼容原有的服務(wù)和函數(shù)的規(guī)則,請參見兼容原有的服務(wù)和函數(shù)

函數(shù)管理變化

函數(shù)計(jì)算3.0中,可以直接創(chuàng)建函數(shù),不需要先創(chuàng)建服務(wù)。原服務(wù)級別的配置例如角色、日志配置、VPC配置等,直接在函數(shù)級別配置。以Go SDK為例,代碼如下:

resp, err := client.CreateFunction(
    new(fc.CreateFunctionRequest).
        SetBody(&fc.CreateFunctionInput{
            FunctionName: &funcName,
            Runtime:      tea.String("nodejs12"),
            Handler:      tea.String("index.handler"),
            MemorySize:   tea.Int32(128),
            Role:         tea.String("role-arn"),
            VpcConfig: &fc.VPCConfig{
                VpcId:           tea.String("vpc-id"),
                VSwitchIds:      []*string{tea.String("vsw-id")},
                SecurityGroupId: tea.String("sg-id"),
            },
            Code: new(fc.InputCodeLocation).SetZipFile(fx.GetCodeZipBase64()),
        }))

event := "my event"
resp, err = client.InvokeFunction(&funcName,
    new(fc.InvokeFunctionRequest).SetBody(strings.NewReader(event)))
body, err := ioutil.ReadAll(resp.Body)

在函數(shù)級別發(fā)布版本和創(chuàng)建別名,以Go SDK為例,代碼如下:

resp, err := client.PublishFunctionVersion(&funcName,
    new(fc.PublishFunctionVersionRequest).SetBody(&fc.PublishVersionInput{
        Description: tea.String("version desc"),
    }))

aliasName := "my-alias"
routingConfig := map[string]*float32{
    "2": tea.Float32(float32(0.05)),
}

resp, err := client.CreateAlias(&funcName, new(fc.CreateAliasRequest).
    SetBody(&fc.CreateAliasInput{
        AliasName:               &aliasName,
        VersionId:               tea.String("1"),
        AdditionalVersionWeight: routingConfig,
    }))

HTTP Trigger行為變化

函數(shù)計(jì)算3.0中,處理事件請求和處理HTTP請求的函數(shù)入口統(tǒng)一。以Python為例,代碼如下:

def handler(event, context):
    return 'hello fc'

對于HTTP Trigger調(diào)用,即通過HTTP Trigger的URL訪問的請求或者通過自定義域名訪問的請求,函數(shù)計(jì)算會將HTTP請求轉(zhuǎn)換成event,同時(shí)將函數(shù)的響應(yīng)轉(zhuǎn)換成HTTP響應(yīng)。

請求event示例如下:

{
    "version": "v1",
    "rawPath": "/my/path",
    "httpMethod": "POST",
    "headers": {
        "header1": "value1,value2",
        "header2": "value2"
    },
    "queryParameters": {
        "param1": "value1,value2",
        "param2": "value2"
    },
    "body": "hello from client",
    "isBase64Encoded": false,
    "requestContext": {
        "accountId": "12345678",
        "domainName": "my-domain.com",
        "domainPrefix": "prefix",
        "requestId": "abcd-efgh",
        "time": "2023-09-01T14:17:23+08:00",
        "timeEpoch": 1693549043255,
        "http": {
            "method": "GET",
            "path": "/my/path",
            "protocol": "http",
            "sourceIP": "39.40.41.42",
            "userAgent": "go-sdk/1.0"
        }
    }
}

HTTP響應(yīng)示例如下:

def handler(event, context):
    return {
        'body': 'hello FC',
        'headers': {
            'my-custom-header': 'foo'
        },
        'statusCode': 400
    }

以上代碼將被轉(zhuǎn)換成如下的HTTP響應(yīng):

HTTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8
My-Custom-Header: foo
X-Fc-Request-Id: 64e866c9-69902fbc525fd10989e7299c
Date: Fri, 25 Aug 2023 10:18:06 GMT
Content-Length: 8

hello FC

詳細(xì)的請求和響應(yīng)格式轉(zhuǎn)換請參考HTTP觸發(fā)器概述

函數(shù)角色變化(SLR)

在使用函數(shù)計(jì)算提供的日志、VPC、異步調(diào)用目標(biāo)服務(wù)等功能時(shí),函數(shù)計(jì)算需要訪問其他的云服務(wù)。例如配置函數(shù)日志時(shí),用戶需要授權(quán)函數(shù)計(jì)算對指定日志Logstore的寫入權(quán)限,函數(shù)計(jì)算才能夠?qū)⒑瘮?shù)日志寫入到用戶的Logstore。原來這個(gè)授權(quán)是通過服務(wù)角色進(jìn)行授權(quán),服務(wù)角色一方面用于函數(shù)計(jì)算訪問其他的云服務(wù),另一方面也用于函數(shù)執(zhí)行時(shí)用戶代碼訪問其他云服務(wù)。這樣可能會導(dǎo)致服務(wù)角色的權(quán)限過大的問題。

函數(shù)計(jì)算3.0,函數(shù)計(jì)算支持了服務(wù)關(guān)聯(lián)角色,專門用于授權(quán)函數(shù)計(jì)算訪問其他的云服務(wù),而用戶代碼訪問其他云服務(wù),則由函數(shù)角色來授權(quán),用戶可以根據(jù)函數(shù)的需要,細(xì)粒度地控制函數(shù)角色的授權(quán)。

在用戶一次性授權(quán)后,在函數(shù)計(jì)算3.0創(chuàng)建的函數(shù),默認(rèn)將使用服務(wù)關(guān)聯(lián)角色(SLR)。函數(shù)不需要配置角色即可使用日志、VPC、異步調(diào)用目標(biāo)服務(wù)等功能。

兼容原有的服務(wù)和函數(shù)

函數(shù)計(jì)算3.0提供了一套全新的API和控制臺操作界面,針對用戶原有的服務(wù)和函數(shù),也能夠兼容。兼容的規(guī)則如下:

類別

兼容規(guī)則

示例

服務(wù)配置

原有的服務(wù)和函數(shù)將被統(tǒng)一轉(zhuǎn)換成函數(shù),函數(shù)名為<serviceName>$<functionName>。

服務(wù)的配置,例如服務(wù)角色、日志配置、VPC配置等將被轉(zhuǎn)換成函數(shù)配置。

原有服務(wù)s1,s1中有2個(gè)函數(shù)f1和f2,在函數(shù)計(jì)算3.0中,將被轉(zhuǎn)換成2個(gè)函數(shù),函數(shù)名分別為s1$f1s1$f2

更新函數(shù)配置,不改變服務(wù)配置,也不會影響服務(wù)下的其他函數(shù)。

原有服務(wù)s1有2個(gè)函數(shù)f1和f2,更新s1$f1的VPC配置,只會對s1$f1生效,s1和s1$f2的VPC配置不受影響。

使用函數(shù)計(jì)算2.0API更新服務(wù)配置,則服務(wù)下所有函數(shù)的對應(yīng)配置會被更新。

原有服務(wù)s1有2個(gè)函數(shù)f1和f2,更新s1的VPC配置,則s1$f1s1$f2的VPC配置均會被更新。

版本和別名

原有的服務(wù)版本和別名會被轉(zhuǎn)換成函數(shù)版本和別名。

原有的服務(wù)s1有2個(gè)版本1和2,有1個(gè)別名prod,在函數(shù)計(jì)算3.0版中,s1$f1s1$f2將都有2個(gè)版本1和2,并都有1個(gè)別名prod。

對函數(shù)發(fā)布一個(gè)版本,同時(shí)也會對服務(wù)和服務(wù)下的其他函數(shù)發(fā)布一個(gè)版本。

s1$f1發(fā)布一個(gè)版本3,則s1和s1$f2也會增加一個(gè)版本3。

對函數(shù)創(chuàng)建別名,同時(shí)也會對服務(wù)和服務(wù)下的其他函數(shù)也會增加一個(gè)別名。

s1$f1創(chuàng)建一個(gè)版本test,則s1和s1$f2也會增加一個(gè)別名test。

不允許對函數(shù)刪除版本或別名,因?yàn)楹瘮?shù)版本和別名是服務(wù)及其服務(wù)下的其他函數(shù)共同的版本和別名。

刪除s1$f1的版本3,會收到DeleteVersionNotAllowed錯(cuò)誤。

更新函數(shù)別名,不改變服務(wù)別名,也不影響服務(wù)下的其他函數(shù)。

更新s1$f1的prod別名,讓它從指向版本1變成指向版本2,則只會對s1$f1的別名prod生效,s1和s1$f2的別名prod仍然指向版本1。

使用函數(shù)計(jì)算2.0API更新服務(wù)別名,則服務(wù)下的所有函數(shù)的別名配置都會被更新。

更新s1的prod別名,讓它從指向版本1變成指向版本2,則s1$f1s1$f2的別名prod都被更新成指向版本2.

重要

已有函數(shù)在函數(shù)計(jì)算3.0控制臺操作后,函數(shù)將具有獨(dú)立的服務(wù)級別配置,之后在函數(shù)計(jì)算3.0控制臺對此函數(shù)的操作都只會更新此函數(shù)的配置,不會影響同服務(wù)下的其他函數(shù)。在函數(shù)計(jì)算2.0控制臺,修改服務(wù)級別的配置,則會更新該服務(wù)下的所有函數(shù)對應(yīng)配置。