google.golang.org/appengine 包 (v1.6.8)

appengine 包可为 Google App Engine 提供基本函数。

如需详细了解如何为 Google App Engine 写入 Go 应用,请参阅:https://cloud.google.com/appengine/docs/go/

变量

中间件

var Middleware func(http.Handler) http.Handler = internal.Middleware

中间件会封装 http 处理程序,以便进行 GAE API 调用

函数

func APICall

func APICall(ctx context.Context, service, method string, in, out proto.Message) error

APICall 执行 API 调用。

它不适用于一般用途;请将其导出以与 withAPICallFunc 一起使用。

func AccessToken

func AccessToken(c context.Context, scopes string) (token string, expiry time.Time, err error)

AccessToken 可以代表相应应用的服务账号为指定的范围生成 OAuth2 访问令牌。此令牌将在返回的时间后过期。

func AppID

func AppID(c context.Context) string

AppID 返回当前应用的应用 ID。该字符串是普通的应用 ID(例如“appid”),带有自定义域名部署的域名前缀(例如“example.com:appid”)。

func BackgroundContext(已弃用)

func BackgroundContext() context.Context

BackgroundContext 会返回与请求不关联的上下文。

已弃用:App Engine 不再具有特殊的后台上下文。只需使用 context.Background() 即可。

func Datacenter

func Datacenter(c context.Context) string

数据中心可以返回运行实例的数据中心的标识符。

func DefaultVersionHostname

func DefaultVersionHostname(c context.Context) string

DefaultVersionHostname 返回当前应用默认版本的标准主机名(例如“my-app.appspot.com”)。该函数适合用于构建网址。

func InstanceID

func InstanceID() string

InstanceID 可以为相应实例返回唯一性最高的标识符。

func IsAppEngine

func IsAppEngine() bool

IsAppEngine 报告 App Engine 应用在 App Engine 标准环境还是 App Engine 柔性环境中运行。

func IsDevAppServer

func IsDevAppServer() bool

IsDevAppServer 报告 App Engine 应用在开发应用服务器中运行。

func IsFlex

func IsFlex() bool

IsFlex 报告 App Engine 应用是否在柔性环境中运行。

func IsOverQuota

func IsOverQuota(err error) bool

IsOverQuota 报告错误是否表示因可用配额不足而导致 API 调用失败。

func IsSecondGen

func IsSecondGen() bool

IsSecondGen 报告 App Engine 应用是否在第二代运行时(>= Go 1.11)上运行。

func IsStandard

func IsStandard() bool

IsStandard 报告 App Engine 应用是否在标准环境中运行。这包括第一代运行时 (<= Go 1.9) 和第二代运行时 (>= Go 1.11)。

func IsTimeoutError

func IsTimeoutError(err error) bool

IsTimeoutError 报告错误是否为超时错误。

func Main

func Main()

Main 是 App Engine 中运行的应用的主入口点。

在 App Engine 柔性环境中,如果尚未注册,则 App Engine 柔性环境会安装一个简单的健康检查程序,然后开始侦听端口 8080(已被 $PORT 环境变量替换)。

如需详细了解如何自行执行健康检查,请参阅 https://cloud.google.com/appengine/docs/flexible/custom-runtimes#health_check_requests

在 App Engine 标准环境中,它确保服务器已启动并准备好接收请求。

Main 永远不会返回。

Main 的设计旨在使应用的 main 软件包如下所示:

package main

import (
        "google.golang.org/appengine"

        _ "myapp/package0"
        _ "myapp/package1"
)

func main() {
        appengine.Main()
}

“myapp/packageX”软件包应在其 init 函数中注册 HTTP 处理程序。

func ModuleHostname

func ModuleHostname(c context.Context, module, version, instance string) (string, error)

ModuleHostname 返回模块实例的主机名。如果模块是空字符串,则引用当前实例的模块。如果版本为空,则引用当前实例的版本(如有效)或当前实例模块的默认版本。如果实例为空,ModuleHostname 将返回负载均衡主机名。

func ModuleName

func ModuleName(c context.Context) string

ModuleName 返回当前实例的模块名称。

func Namespace

func Namespace(c context.Context, namespace string) (context.Context, error)

Namespace 返回在给定命名空间内运行的替换上下文。

func NewContext

func NewContext(req *http.Request) context.Context

NewContext 返回动态 HTTP 请求的上下文。该函数的费用很低。

func RequestID

func RequestID(c context.Context) string

RequestID 返回识别相应请求的唯一字符串。

func ServerSoftware

func ServerSoftware() string

ServerSoftware 返回 App Engine 发行版本。在生产环境中,其形式类似“Google App Engine/X.Y.Z”。在开发应用服务器中,其形式类似“Development/X.Y”。

func ServiceAccount

func ServiceAccount(c context.Context) (string, error)

ServiceAccount 通过电子邮件地址的形式返回表示服务账号名称的字符串(通常为 app_id@appspot.gserviceaccount.com)。

func SignBytes

func SignBytes(c context.Context, bytes []byte) (keyName string, signature []byte, err error)

SignBytes 使用您的应用特有的私钥为字节签名。

func VersionID

func VersionID(c context.Context) string

VersionID 返回当前应用的版本 ID。其形式为“X.Y”,其中 X 在 app.yaml 中指定,Y 是应用的各版本上传后生成的数字。它不包含模块名称。

func WithAPICallFunc

func WithAPICallFunc(ctx context.Context, f APICallFunc) context.Context

WithAPICallFunc 会返回父上下文的副本,这会导致“API 调用”调用 f 而不是其正常操作。

这仅适用于高级用户。

func WithContext

func WithContext(parent context.Context, req *http.Request) context.Context

WithContext 返回父上下文的副本,并将其与动态 HTTP 请求关联。该函数的费用很低。

APICallFunc

type APICallFunc func(ctx context.Context, service, method string, in, out proto.Message) error

APICallFunc 定义用于处理 API 调用的函数类型。请参阅 WithCallOverride。

BlobKey

type BlobKey string

BlobKey 是 blobstore Blob 的键。

从概念上来说,该类型属于 Bobstore 软件包,但将它归入 appengine 软件包是为了避免循环依赖:Blobstore 依赖数据存储区,数据存储区也需要引用 BlobKey 类型。

证书

type Certificate struct {
	KeyName string
	Data    []byte // PEM-encoded X.509 certificate
}

Certificate 表示应用的公共证书。

func PublicCertificates

func PublicCertificates(c context.Context) ([]Certificate, error)

PublicCertificates 检索应用的公共证书。该证书可用于验证 SignBytes 返回的签名。

GeoPoint

type GeoPoint struct {
	Lat, Lng float64
}

GeoPoint 使用纬度/经度表示位置。

func (GeoPoint) Valid

func (g GeoPoint) Valid() bool

Valid 可以返回 GeoPoint 是否在 [-90, 90] 的纬度和 [-180, 180] 的经度范围之内的结果。

MultiError

type MultiError []error

特定元素存在错误时,批处理操作返回 MultiError。错误将与输入元素保持一对一的对应关系;成功的元素将拥有 nil 条目。

func (MultiError) Error

func (m MultiError) Error() string