|  | 
| 2 | 2 | 
 | 
| 3 | 3 | # Table of Contents | 
| 4 | 4 | 
 | 
| 5 |  | -1. [Overview of AFI Build process] (#buildoverview) | 
| 6 |  | -2. [Build procedure step by step] (#stepbystep) | 
| 7 |  | -3. [Build strategies and parallel builds] (#strategies) | 
| 8 |  | -4. [About Encrption during build process] (#buildencryption) | 
| 9 |  | -5. [Advanced Notes] (#buildadvanced notes) | 
| 10 |  | -6. [Build Frequently Asked Questions] (#buildfaq) | 
|  | 5 | +1. [Overview of AFI Build process](#buildoverview) | 
|  | 6 | +2. [Build procedure step by step](#stepbystep) | 
|  | 7 | +3. [Build strategies and parallel builds](#strategies) | 
|  | 8 | +4. [About Encrption during build process](#buildencryption) | 
|  | 9 | +5. [Advanced Notes](#buildadvanced notes) | 
|  | 10 | +6. [Build Frequently Asked Questions](#buildfaq) | 
| 11 | 11 | 
 | 
| 12 | 12 | 
 | 
| 13 | 13 | <a name="buildoverview"></a> | 
| @@ -139,89 +139,7 @@ You need to prepare the following information: | 
| 139 | 139 | **NOTE**: *The PCI IDs for the example CLs should be found in the README files in the respective CL example directory. | 
| 140 | 140 | If you are building a custom CL, then you need to incorporate these values in your design as shown in the [AWS Shell Interface Specifications](./../../../../docs/AWS_Shell_Interface_Specification.md#pcie-ids).* | 
| 141 | 141 | 
 | 
| 142 |  | -To upload your tarball file to S3, you can use any of [the tools supported by S3](http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html)). | 
| 143 |  | -For example, you can use the AWS CLI as follows: | 
| 144 |  | - | 
| 145 |  | -    $ aws s3 mb s3://<bucket-name>                # Create an S3 bucket (choose a unique bucket name) | 
| 146 |  | -    $ aws s3 cp *.Developer_CL.tar \              # Upload the file to S3 | 
| 147 |  | -             s3://<bucket-name>/ | 
| 148 |  | - | 
| 149 |  | -Now you need to provide AWS (Account ID: 365015490807) the appropriate [read/write permissions](http://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example2.html) to your S3 buckets. | 
| 150 |  | -Below is a sample policy. | 
| 151 |  | - | 
| 152 |  | -**NOTE**: *The AWS Account ID has changed, please ensure you are using the correct Account ID listed here.* | 
| 153 |  | - | 
| 154 |  | -    { | 
| 155 |  | -        "Version": "2012-10-17", | 
| 156 |  | -        "Statement": [ | 
| 157 |  | -            { | 
| 158 |  | -                "Sid": "Bucket level permissions", | 
| 159 |  | -                "Effect": "Allow", | 
| 160 |  | -                "Principal": { | 
| 161 |  | -                    "AWS": "arn:aws:iam::365015490807:root" | 
| 162 |  | -                }, | 
| 163 |  | -                "Action": [ | 
| 164 |  | -                    "s3:ListBucket" | 
| 165 |  | -                ], | 
| 166 |  | -                "Resource": "arn:aws:s3:::<bucket_name>" | 
| 167 |  | -            }, | 
| 168 |  | -            { | 
| 169 |  | -                "Sid": "Object read permissions", | 
| 170 |  | -                "Effect": "Allow", | 
| 171 |  | -                "Principal": { | 
| 172 |  | -                    "AWS": "arn:aws:iam::365015490807:root" | 
| 173 |  | -                }, | 
| 174 |  | -                "Action": [ | 
| 175 |  | -                    "s3:GetObject" | 
| 176 |  | -                ], | 
| 177 |  | -                "Resource": "arn:aws:s3:::<dcp_bucket_name>/<dcp_filename>" | 
| 178 |  | -            }, | 
| 179 |  | -            { | 
| 180 |  | -                "Sid": "Folder write permissions", | 
| 181 |  | -                "Effect": "Allow", | 
| 182 |  | -                "Principal": { | 
| 183 |  | -                    "AWS": "arn:aws:iam::365015490807:root" | 
| 184 |  | -                }, | 
| 185 |  | -                "Action": [ | 
| 186 |  | -                    "s3:PutObject" | 
| 187 |  | -                ], | 
| 188 |  | -                "Resource": "arn:aws:s3:::<log_bucket_name>/*" | 
| 189 |  | -            } | 
| 190 |  | -        ] | 
| 191 |  | -    } | 
| 192 |  | - | 
| 193 |  | -You can verify that the bucket policy grants the required permissions by running the following script: | 
| 194 |  | - | 
| 195 |  | -    $ check_s3_bucket_policy.py \ | 
| 196 |  | -	--dcp-bucket <dcp-bucket-name> \ | 
| 197 |  | -	--dcp-key <tarball-name> \ | 
| 198 |  | -	--logs-bucket <logs-bucket-name> \ | 
| 199 |  | -	--logs-key <logs-folder> | 
| 200 |  | - | 
| 201 |  | -To create an AFI execute the following command: | 
| 202 |  | - | 
| 203 |  | -    $ aws ec2 create-fpga-image \ | 
| 204 |  | -        --name <afi-name> \ | 
| 205 |  | -        --description <afi-description> \ | 
| 206 |  | -        --input-storage-location Bucket=<dcp-bucket-name>,Key=<tarball-name> \ | 
| 207 |  | -        --logs-storage-location Bucket=<logs-bucket-name>,Key=<logs-folder> \ | 
| 208 |  | -	[ --client-token <value> ] \ | 
| 209 |  | -	[ --dry-run | --no-dry-run ] | 
| 210 |  | - | 
| 211 |  | -The output of this command includes two identifiers that refer to your AFI: | 
| 212 |  | -- **FPGA Image Identifier** or **AFI ID**: this is the main ID used to manage your AFI through the AWS EC2 CLI commands and AWS SDK APIs. | 
| 213 |  | -    This ID is regional, i.e., if an AFI is copied across multiple regions, it will have a different unique AFI ID in each region. | 
| 214 |  | -    An example AFI ID is **`afi-01234567890abcdef`**. | 
| 215 |  | -- **Glogal FPGA Image Identifier** or **AGFI ID**: this is a global ID that is used to refer to an AFI from within an F1 instance. | 
| 216 |  | -    For example, to load or clear an AFI from an FPGA slot, you use the AGFI ID. | 
| 217 |  | -    Since the AGFI IDs is global (by design), it allows you to copy a combination of AFI/AMI to multiple regions, and they will work without requiring any extra setup. | 
| 218 |  | -    An example AGFI ID is **`agfi-01234567890abcdef`**. | 
| 219 |  | - | 
| 220 |  | -After the AFI generation is complete, AWS will put the logs into the bucket location provided by the developer and notify them | 
| 221 |  | -by email. | 
| 222 |  | - | 
| 223 |  | -**NOTE**: *Attempting to associate the AFI to an AMI before the AFI is ready will result in an `InvalidFpgaImageID.Unavailable` error. | 
| 224 |  | -Please wait until you receive a confirmation email from AWS indicating the creation process is complete.* | 
|  | 142 | +[Refer to step 3 for instructions on how to submit the Design Checkpoint to AWS](./../../../../cl/examples/README.md) | 
| 225 | 143 | 
 | 
| 226 | 144 | <a name="buildstratgies"></a> | 
| 227 | 145 | ## Build Strategies and Parallel Builds  | 
|  | 
0 commit comments