Skip to content

Create the stream

Progress checklist

Delivery channels require On-Demand Standard
On-Demand capacity mode tier that supports S3 delivery. Provisioned streams cannot host a channel.
or On-Demand Advantage
On-Demand capacity mode tier that supports S3 delivery. Provisioned streams cannot host a channel.
. Provisioned streams are not supported. Delivery does not consume the stream’s read throughput or enhanced fan-out slots.

  1. Create an On-Demand stream with the lab tag.

    Terminal window
    export AWS_PROFILE=sandbox
    export AWS_REGION=ap-southeast-2
    export LAB_SUFFIX=${LAB_SUFFIX:-$(date +%Y%m%d%H%M%S)}
    export STREAM_NAME="kds-s3-demo-${LAB_SUFFIX}-stream"
    aws kinesis create-stream \
    --stream-name "$STREAM_NAME" \
    --stream-mode-details StreamMode=ON_DEMAND \
    --tags Project=kinesis-s3-delivery-walkthrough

    Create returns with no body when it succeeds. On CLI 2.36.38, StreamMode is only ON_DEMAND or PROVISIONED.

    Or let the wrapper create stream, bucket, role, and channel together (it sets LAB_SUFFIX if you have not):

    Terminal window
    ./scripts/demo.sh up
  2. Wait until the stream is ACTIVE, then capture the ARN.

    Terminal window
    aws kinesis describe-stream-summary \
    --stream-name "$STREAM_NAME" \
    --query 'StreamDescriptionSummary.{Status:StreamStatus,Mode:StreamModeDetails.StreamMode,Arn:StreamARN}'

    Looks like (verified in ap-southeast-2, CLI 2.36.38 — first poll ~2 s after create):

    {
    "Status": "ACTIVE",
    "Mode": "ON_DEMAND",
    "Arn": "arn:aws:kinesis:ap-southeast-2:ACCOUNT_ID:stream/kds-s3-demo-LAB_SUFFIX-stream"
    }
CheckExpect
StreamStatusACTIVE
StreamModeON_DEMAND
Namestarts with kds-s3-demo-
TagProject=kinesis-s3-delivery-walkthrough