StepFunctionをlambda(Go 1.x)からキックするようなコードを書いてる時に、StartExecution
を呼び出すと次のようなエラーが出た。
operation error SFN: StartExecution, https response error StatusCode: 400, RequestID: xxxx-xxxx-xxx-xxxx, api error MissingAuthenticationTokenException: Request is missing Authentication Token: OperationError
lamdbaのロールを変更してみても解決せず、ggってもそれらしいのが出てこないのでなんだこれってなってた。
原因
clientをこのように定義していた。
client := sfn.New(sfn.Options{
Region: "ap-northeast-1",
})
正しくはこう。
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("ap-northeast-1")) if err != nil { log.Fatalf("unable to load SDK config, %v", err) } client := sfn.NewFromConfig(cfg)
sfn.New
は返されるクライアントのカスタマイズ性がより高く、一方で環境からクレデンシャルを取ってくれないようだ。
ちゃんとドキュメントは読もうな!