|
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