Documentation ¶
Index ¶
- Constants
- Variables
- func NewErrInvalidHeader(message string, kv map[string]interface{}, err error) error
- func ValidateJWTFromInvoker(ctx context.Context, r *http.Request, audience string) (*auth.JWTPayload, error)
- type Error
- type GetTask
- type Header
- type JsonPostTask
- type Queue
- type Service
- func (s *Service) CreateGetTask(ctx context.Context, queue *Queue, task *GetTask) (string, error)
- func (s *Service) CreateJsonPostTask(ctx context.Context, queue *Queue, task *JsonPostTask) (string, error)
- func (s *Service) CreateTask(ctx context.Context, queue *Queue, taskName string, req *taskspb.HttpRequest, ...) (*taskspb.Task, error)
Constants ¶
View Source
const ( // QueueName is X-CloudTasks-QueueName Header Key QueueName = "X-CloudTasks-QueueName" // TaskName is X-CloudTasks-TaskName Header Key TaskName = "X-CloudTasks-TaskName" // RetryCount is X-CloudTasks-TaskRetryCount Header Key RetryCount = "X-CloudTasks-TaskRetryCount" // ExecutionCount is X-CloudTasks-TaskExecutionCount Header Key ExecutionCount = "X-CloudTasks-TaskExecutionCount" // ETA is X-CloudTasks-TaskETA Header Key ETA = "X-CloudTasks-TaskETA" // PreviousResponse is X-CloudTasks-TaskPreviousResponse Header Key PreviousResponse = "X-CloudTasks-TaskPreviousResponse" // RetryReason is X-CloudTasks-TaskRetryReason Header Key RetryReason = "X-CloudTasks-TaskRetryReason" )
Variables ¶
View Source
var ErrInvalidHeader = &Error{ Code: "InvalidHeader", Message: "InvalidHeader", KV: map[string]interface{}{}, }
ErrInvalidHeader is Header が invalid な時に返す
Functions ¶
func NewErrInvalidHeader ¶
NewErrInvalidHeader is return ErrInvalidHeader
func ValidateJWTFromInvoker ¶
func ValidateJWTFromInvoker(ctx context.Context, r *http.Request, audience string) (*auth.JWTPayload, error)
ValidateJWT is JWT を検証して、 Cloud Run Invoker を持った Service Account からの Request なのかを確かめる Cloud Run Invoker の場合は Authorization Header に JWT が入って Request が飛んでくる audience には Cloud Task からの Request の URL を指定する
Types ¶
type Error ¶
type Error struct { Code string Message string KV map[string]interface{} // contains filtered or unexported fields }
Error is Error情報を保持する struct
type GetTask ¶
type GetTask struct { // OIDC の Audience // // IAPに向けて投げる時は、IAPのClient IDを指定する // https://cloud.google.com/iap/docs/authentication-howto#authenticating_from_a_service_account // // Cloud Run.Invokerに投げる場合は RelativeUri と同じものを指定する Audience string // Task Request の Header Headers map[string]string // Task が到達する Handler の URL RelativeUri string // ScheduledTime is estimated time of arrival ScheduledTime time.Time // HandlerのDeadline // default は 10min 最長は 30min Deadline time.Duration // Name is Task Name // optional // Task の重複を抑制するために指定するTaskのName // 未指定の場合は自動的に設定される Name string }
GetTask is Get Request 用の Task
type Header ¶
type Header struct { // QueueName is Queue Name QueueName string // TaskName is Task の Short Name // または、作成時に名前が指定されなかった場合は、システムによって生成された一意の ID です。 // これは、完全なタスク名(task_name = projects/my-project-id/locations/my-location/queues/my-queue-id/tasks/my-task-id)の my-task-id 値になります。 TaskName string // RetryCount is このタスクが再試行された回数。 // 最初の試行の場合は、この値は 0 です。 // この試行回数には、インスタンス数不足が原因でタスクが異常終了したため実行フェーズに到達できなかった試行も含まれています。 RetryCount int // ExecutionCount is タスクがハンドラからレスポンスを受け取った合計回数。 // Cloud Tasks は成功のレスポンスを受け取った時点でタスクを削除するため、それ以前のハンドラからのレスポンスはすべて失敗を意味します。 // この回数には、インスタンス数不足が原因の失敗は含まれていません。 ExecutionCount int // タスクのスケジュール時間。 ETA time.Time // PreviousResponse is 前回の再試行の HTTP レスポンス コード。 // optional PreviousResponse string // RetryReason is タスクを再試行する理由。 // optional RetryReason string }
Header is Cloud Tasks から来た Request の Header https://cloud.google.com/tasks/docs/creating-http-target-tasks#handler
type JsonPostTask ¶
type JsonPostTask struct { // OIDC の Audience // // IAPに向けて投げる時は、IAPのClient IDを指定する // https://cloud.google.com/iap/docs/authentication-howto#authenticating_from_a_service_account // // Cloud Run.Invokerに投げる場合は RelativeUri と同じものを指定する Audience string // Task が到達する Handler の URL RelativeUri string // ScheduledTime is estimated time of arrival ScheduledTime time.Time // HandlerのDeadline // default は 10min 最長は 30min Deadline time.Duration // Task Body // 中で JSON に変換する Body interface{} // Name is Task Name // optional // Task の重複を抑制するために指定するTaskのName // 未指定の場合は自動的に設定される Name string }
JsonPostTask is JsonをBodyに入れるTask
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service is Cloud Tasks Service
func NewService ¶
func NewService(ctx context.Context, taskClient *cloudtasks.Client, serviceAccountEmail string) (*Service, error)
NewService is return Service
func (*Service) CreateGetTask ¶
CreateGetTask is Get Request 用の Task を作る
func (*Service) CreateJsonPostTask ¶
func (s *Service) CreateJsonPostTask(ctx context.Context, queue *Queue, task *JsonPostTask) (string, error)
CreateJsonPostTask is BodyにJsonを入れるTaskを作る
Click to show internal directories.
Click to hide internal directories.